00:00:00 --- log: started forth/02.04.02 00:39:26 --- join: emp (~emp@216.187.134.149) joined #forth 00:46:02 --- part: emp left #forth 01:20:57 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #forth 03:42:45 --- join: Soap` (flop@210-55-87-31.dialup.xtra.co.nz) joined #forth 03:45:51 --- quit: Soap- (Read error: 113 (No route to host)) 04:57:31 --- quit: Soap` (Read error: 110 (Connection timed out)) 06:38:58 --- join: tathi (~tathi@wsip68-15-54-54.ri.ri.cox.net) joined #forth 08:40:18 --- join: I440r (~mark4@1Cust253.tnt1.bloomington.in.da.uu.net) joined #forth 08:42:55 Hi 08:43:01 hi!! 08:43:04 just got up :P 08:43:06 heh 08:43:18 At 17:40? :) 08:45:33 11:34 here 08:45:36 am 08:45:37 hehe 08:49:05 :) 08:55:30 well i just got online to check mail and CLF heh 08:55:35 i cant stay online tho 08:55:38 ties up the fone 08:55:43 ill bbl mayber :) 08:55:45 maybe 08:55:51 :) 08:58:54 =) 09:16:06 --- quit: I440r (No route to host) 12:16:48 --- join: futhin (thin@h24-64-174-2.cg.shawcable.net) joined #forth 12:18:39 onetom 12:52:22 --- join: XeF4 (mrwvmz@12-245-116-85.client.attbi.com) joined #forth 12:52:31 'lo 12:55:27 --- join: gilbertbsd (~gilbert@max2-90.dacor.net) joined #forth 12:55:42 hello ? 12:55:47 hello .' 12:55:48 is this *the* forth channel? 12:56:00 as in the language forth? 12:56:01 yes 12:56:05 wooo hooo :D 12:56:08 there is no such thing, but it is the most active these days 12:56:25 XeF4: so this is it :) 12:56:27 is there a primitive set of forth words? 12:56:40 a core set from which all others are derived? 12:56:55 yes, but it varies much from forth to forth 12:56:56 eForth determines such 12:57:17 I keep hearing that forth can be built in forth. 12:57:22 and its a quite stirct set 12:57:29 so I was wondering what that core was that could generate all others. 12:57:35 but there is no standard recommendation on it 12:57:39 and then there is Moore's Machine Forth 12:57:54 which has 27(?) primitives from which all words are derived 12:58:04 yes, & ther is machine 4th 12:58:14 what i still dont know :) 12:58:17 is this the same as color forth? 12:58:24 no 12:58:46 was that the very first forth then? as in 'Then there were 27, and god rested'? 12:58:50 color 4th is the next milestone of chuck 12:59:19 currently the only forth I have (which happens to run on freebsd is gforth 12:59:21 no 12:59:32 ithink it wasnt the 1st one 12:59:37 oh okay. 12:59:52 the 1st 1 must b a "real" vitual machine 13:00:03 virtual 13:00:09 I don't have leo brodies book... are there any good online guides to read through? 13:00:33 u can find some good book 13:00:42 I have thus far managed to understand RPN ... 13:00:50 what discuss 4th from some different view points 13:01:03 no I want to learn the language. 13:01:07 gforth has a tutoral with the info docs. It isn't wonderful, but it is good enough for a start 13:01:09 1 is the tutorial of pForth 13:01:28 I think I've gone through gforths tutorial already. 13:01:51 and this channel says pforth tut is better then the tut of gforth 13:02:02 pforth ... mkay 13:02:05 :) 13:02:05 does it run on freebsd? 13:02:27 hhmmm, dunno 13:02:33 probably its a mac 4th 13:02:41 but it doesnt matter @ all 13:03:17 4thes r highly similar despite the lack of really good standards 13:03:35 there is a good ANS standard no? 13:03:45 personally i recommend "tile" 2 u 13:04:22 its not fast, not maintained anymore, probably, but i think 13:04:37 it has a pretty clean design 13:04:47 has wonderful man pages 13:05:03 so after reading the pforth tutorial I should start writing forth? 13:05:09 delivers useful tools @ ur hand 13:05:41 and its all written in C - afaik - so it should run under bsd 13:06:15 what do you use forth for? 13:06:24 personally i havent read pforth tutorial, but ithink, yes, u can try coding after reading it 13:06:51 okay I'm halfway through it . 13:07:02 but i highly recommend u the "Forth: An Underview by Peter Knaggs" 13:07:13 its not a tutorial is it? 13:07:28 it shows u the very simple internals of a 4th environment 13:08:00 and it should help change ur way of thinking about programming 13:08:47 and after it u can write code what is close enough 2 the philosophy of forth 13:08:58 and its very important 13:09:10 its very different from other languages 13:09:13 so the pforth tutorial and forth underview? 13:09:23 yeah I can do RPN and I can define a few words in forth 13:09:35 probably... both, in this order :) 13:09:56 the underview is not too long 13:10:03 I've never really programmed but I keep hearing forth has an easy syntax and is easy to learn once you are comfortable with RPN 13:10:19 thats why I wanted to know what the 'core primitives' of forth were. 13:10:21 an the pforth tut is similar 2 the 1 in the beginning of the gforth doc 13:11:17 how did you learn forth? 13:11:35 :) thats a uniqe story 13:11:47 so i wont start telling it now 13:11:50 I have time if you do. 13:12:00 and i use 4th 4 embedded programming 13:12:17 who needs embedded programming? 13:12:24 im doing a building control app in it 13:12:43 this is my 4th serious 4th app 13:12:44 so something like an elevator, temperature, alarm etc? 13:13:26 ive also written a midi-flute control program in 4th 13:13:35 yes, exactly 13:13:48 and controling the lights and swithes 13:13:51 how long did it take you to learn forth? 13:13:54 and lil keyboards 13:13:55 5 years? 13:14:13 u ask the wrong man, i still dont really know 4th 13:14:26 is use a very basic subset of it, coz 13:14:38 writing programs 4th microcontroller 13:14:49 I see. 13:15:02 doesnt allow me 2 use all its features 13:15:13 i use it actually, instead of assembly 13:15:52 an every 4th program i write can easily b transformed into assembly 13:15:59 really? 13:16:08 how would you transform 2 2 + to assembly? 13:16:16 and it is one of the strength of 4th 13:16:43 --- join: herkamire (~jason@wsip68-15-54-54.ri.ri.cox.net) joined #forth 13:16:49 decf FSR,1 13:17:00 movwf INDF 13:17:06 movlw 2 13:17:09 decf FSR,1 13:17:11 movwf INDF 13:17:12 movlw 2 13:17:17 call plus 13:17:21 PICs onetom? 13:17:21 thats it 13:17:24 thats not terribly easy. 13:17:25 yup :) 13:17:28 it takes about an hour to get the basics of forth 13:17:38 believe me, it is 13:17:44 herkamire: thats what it seems like 13:17:56 but what do I use to get to that one hour? 13:18:16 is the pforth tutorial adequate? 13:18:17 it helps to have someone over your shoulder who knows forth :) :) 13:18:31 yeah. 13:18:32 u can program such a compiler in a simple macro language 13:18:41 I haven't seen the pforth tutorail 13:18:53 herkamire: how did you learn forth? 13:19:04 I think it was "real time forth" that got me started. it's on the net somewhere, in PDF or something 13:19:26 * qless wakes up and mentions the tutorial in f-pc (msdos) 13:19:36 f-pc? 13:19:44 I am on a freebsd system 13:19:47 Dos is a big no no :D 13:19:58 gilbertbsd: yes, there r plenty of 4th implementations out there :) 13:20:13 yes indeedy. but the text files in the f-pc .zip file are a good tutorial 13:20:15 hum. is the M68k Bigforth public? 13:20:42 but I already have a forth implementation in gforth. 13:20:51 gilbertbsd: would u try 2 compile TILE for me under bsd? 13:20:55 this is what I need though: a clear intro to it, with steps as to what to do next. 13:21:01 TILE? 13:21:02 whats tile? 13:21:09 XeF4: what do u mean by public? 13:21:24 one: I mean is it freely available? 13:21:29 TILE is Threaded Interpreted Language Environment 13:21:44 and where is it at? 13:21:44 XeF4: the binary or the srces? 13:21:48 is it written in C? 13:21:53 eg, @ me ;) 13:21:57 yes 13:22:00 so its slow 13:22:11 but its beautiful 13:22:12 btw herkamire what did you read after "real time forth"? 13:22:20 and probably hihgly portable 13:23:45 gilbertbsd: http://hermantom.homeip.net/~tom/forth/tile-forth-2.1.tar.gz 13:23:53 -rw-rw-r-- 1 tom tom 149007 DEC 5 18:31 tile-forth-2.1.tar.gz 13:23:57 its that small 13:24:45 you call that small? :P 13:24:48 okay hold on lemme see what I can do. 13:24:58 one: both. 13:25:40 tathi: :))) 13:26:22 so can I gain access to X via forth? 13:26:25 tathi: it has many tools and documentation for everything 13:26:56 gilbertbsd: well, i u do some hooks in its srces, yes :) 13:27:59 its not downloading 13:28:00 but personally i used tcl i conjunction w 4th 13:28:01 its just sitting there. 13:28:09 hmmm 13:28:13 can u ping me? 13:28:34 I just did. 13:28:36 nooo :) 13:28:44 --- Ping reply from onetom : 0.7 second(s) 13:28:44 ping hermantom.homeip.net 13:29:10 tho, its should b the same machine 13:29:17 yeah its working now 13:29:29 23 packets transmitted, 18 packets received, 21% packet loss 13:29:29 round-trip min/avg/max/stddev = 430.123/1348.834/4460.221/1471.803 ms 13:29:31 ive detected it :) 13:29:36 what is it? 13:29:37 so 13:29:44 what is what? 13:29:52 the ping summary 13:30:06 gilbertbsd: nothing much really, I just experimented and mostly only found useful information in the ANS draft standard for forth. 13:30:51 gilbertbsd: umean, why r there so many packets lost? 13:31:05 Its hard to believe that after reading just one tutorial, I should be ready to implement various algorithms 13:31:08 where are the tomes? 13:31:13 I haven't done a heck of a lot in forth. I know the basics, and I'm more interested in making my own forth 13:31:19 onetom no, is it working now? 13:31:29 63.171.164.90 - - [02/Apr/2002:23:30:09 +0200] "GET /~tom/forth/tile-forth-2.1.tar.gz HTTP/1.1" 200 27146 13:31:41 this seems a faulty transfer 2 me.. 13:31:51 gilbertbsd: what is working? 13:31:55 the basics are really enough to do anything. 13:32:06 onetom initially it wasn't pinging. 13:32:30 herkamire how long have you being dabbling in forth for? 13:32:40 gilbertbsd: "where are the tomes?" hey, its not java :))) 13:33:04 gilbertbsd: ~ 2 years I think 13:33:04 gilbertbsd: and i dont know what was wrong @ the 1st time 13:33:19 I see... 13:33:46 onetom: if he was getting 21% packet loss that might have caused problems... 13:33:53 gilbertbsd: im also working on my own forth. or even.. on a Forth OS 13:34:02 cause I'm almost done reading the pforth manual and I don't know whether or not thats really all there is to it. 13:34:30 and if its that simple, it seems even simpler than python. 13:34:31 gilbertbsd: consider 4th as a philosophy 13:34:45 gilbertbsd: its mainly not a mere language 13:34:47 and whats the philosophy? minimalism? 13:35:08 gilbertbsd: its rather a way of thingink 13:35:09 g 13:35:11 okay ... here is the thing. I can do RPN. is that a good thing? 13:35:27 no, thats not true 13:35:38 u *cant do* RPN 13:35:47 ? 13:35:49 rpn arithmetics 13:35:53 I understand how it works 13:35:55 its just seems as if it was rpn 13:36:02 and I understand how to transform from infix to rpn 13:36:24 it look like rpn becuse 4th is a stack machine 13:36:52 okay can anyone clearly tell me what to do/read after the pforth tutorial? 13:37:01 go write something in forth :) 13:37:12 hmmm is that really it? 13:37:15 tathi: i mean, it wast designed as: "u should do arithmetics in forth in an rpn format" 13:37:23 onetom 13:37:26 ah 13:37:50 gilbertbsd: i definitely recommend that underview 2 read 13:37:51 gilbertbsd, subscribe to comp.lang.forth and read the kind of things that other people are using 4th for. danger: steep learning curves here 13:38:02 gilbertbsd: b4 doing too much in 4th 13:38:31 ... but much more fun than reading dry tutorials 13:38:32 I don't intend to control missiles with it. I just want a language with which to implement algorithms with 13:39:19 gilbertbsd: aha, then mind that 4th is *just* a kind of assembly 13:39:27 gilb: after completing the gforth tutorial, I experimented for a few days, read over the ANS docs and thought some about how to implement a useful 4th with the machine-4th primitives 13:39:41 gilbertbsd: its not the best 4 prototyping arithmetic algorithms 13:39:43 (and looked over the Bigforth/i386 sources .. what a mess *those are) 13:39:44 gilbertbsd: I'm of the opinion that the only way to learn programming is by doing it...so I'd say probably next you should play around with it for a while to get a feel for what you still don't know... 13:39:53 i liked the pygmy tutor (dos) 13:40:09 gilbertbsd: coz u have 2 pay a lot of attention on the machine representation of the numbers 13:40:36 onetom I don't intend to delve that deeply into arithmetics :D 13:40:43 my needs are really very simple. 13:41:07 its okay, then 13:41:32 --- join: Soap` (flop@210-86-40-61.dialup.xtra.co.nz) joined #forth 13:41:40 so if forth is this simple ... how come its not more widespread? 13:41:58 XeF4: how do ANS & machine-4th primitives r related? 13:42:06 I mean, you can teach anyone to program if all it takes is a simple tutorial! 13:42:28 one: hm? 13:43:05 gilbertbsd: coz its too lowlevel for the usual "programmer" 13:43:05 gilbertbsd: yes, thats right :) 13:43:14 gilbertbsd: but that lucky 1 who meets 4th as its very 1st programming "language" 13:43:35 gilbertbsd: will have 2 understand the internals of a computer quite well 13:43:47 hmmm 13:44:03 gilbertbsd: k, not the internals of the comp, but 13:44:21 one: I didn't understand what you said. 13:44:24 gilbertbsd: read the articles on www.ultratechnology.com if you are looking for more stuff to read 13:45:23 it's not exactly "too lowlevel" it just hasn't been supported well, and it's not verys standardized in the extensions.. forth hasn't been extended very well.. 13:45:43 she should know about bytes, 2's complement 13:45:43 stacks 13:45:43 he should b able 2 imagine the dictionary byte-by-byte 13:46:04 without these he wont b able 2 do too much useful in 4th 13:46:29 coz it doesnt support programmers w a lot of convenience stuff 13:46:30 the dictionary is a key:value nonordered thing no? 13:46:41 no 13:46:48 what is the dictionary? 13:46:58 i was talking about the 4th dict 13:47:00 you really shouldn't need to know that much about the dictionary, should you? 13:47:18 what holds threaded code + data mixed up in a 13:47:27 onetom: you lie, one doesn't need to know 2's complement to use forth, unless you are coding your own forth 13:47:28 an amazing way :) 13:47:43 gilbertbsd: dictionary is the list of words that the forth interpreter knows about, basically 13:48:05 futhin: believe me, futhin, u should 13:48:28 well there are conditionals, loops, and sequences. 13:48:40 what more do I need to understand to write a useful program in forth? 13:49:00 onetom: yeah, but knowing about 2's complement isn't necessary _right_ when you start off... 13:49:04 how could u explain the s>d wo explaining 2's complement? 13:49:32 tathi: if u wanna more serious dataprocessing 13:49:54 this page claims something about forth primitives: is that what I should know? http://www-2.cs.cmu.edu/~koopman/stack_computers/appb.html 13:50:03 tathi: u have t use the unused room in the dict 4 temp data storage instead of defining 13:50:28 tathi: temp vars, what is a really bad tactic/programming style/way of thinking 13:50:29 you don't need to know about all that crap to write forth code. 13:50:39 okay 13:50:46 it's cool, and you can maybe write code better if you know all that, but that can come later 13:51:03 what would you guys tell a total newbie who just dropped from the surface of lower Mars to earth? 13:51:05 you can read for 10 minutes and use forth as a calculator 13:51:15 what would you tell her about programming in forth? 13:51:31 onetom: what is s>d 13:51:41 "I can get you going in an hour" 13:51:44 futhin: lol 13:51:50 futhin: he's an embedded programmer :) 13:51:51 <_MrReach_> I would tell a Martian to carry Mace(R) and not be afrraid to use it. 13:52:14 on humans? 13:52:15 herkamire: and where would you point? 13:52:16 i agree 13:52:27 said person from lower mars can write pseudocode ... algol style. 13:52:29 lol 13:52:45 or pascal style... 13:53:31 gilbertbsd: Read the begining of "real time forth" or any forth tutorial, learn the primatives and *try them as you read*. 13:53:32 <_MrReach_> the reverse notation takes some getting used to ... once you've got the hange of it, forth usually lets you do things at a level MUCH lower than most languages 13:53:38 gilbertbsd: just read the tutorials and code simple stuff.. like draw a pyramid of asterisks 13:54:07 yeah thats what I'm doing... i'm having a little trouble interpreting this in gforth though: ok 10 0 do i 1+ . cr loop 13:54:11 gilbertbsd: thats the point. wo the knowledge of the internals of 4th 13:54:12 gilbertbsd: and find leo brodie's Starting Forth book at your local library (if they don't have it, do an interlibrary loan) 13:54:39 gilbert: you can't use DO LOOP unless it is inside a word 13:54:40 futhin: is it still possible to get hold of Thinking Forth? I haven't been able to find a copy _anywhere_? 13:54:41 gilbertbsd: and if I could I'd do it in person and make them type. I'd explain the stack and give them words to try one at a time :) 13:54:49 gilbertbsd: u can only produce code what is actually written in an other lang and just has been represented in 4th 13:54:54 : test 10 0 do i 1+ . cr loop ; 13:55:03 gilbertbsd: dont forget: 4th is an assembly 13:55:04 <_MrReach_> also of note, forth coders tend to evolve a style of writing and of breaking their projects into pieces that is unique. I GOOD forth coder can analyse and complete a project incredibly quickly 13:55:10 oh I see. inside a word. 13:55:18 then the author of that thing needs to be told! 13:55:28 the author of what? 13:55:32 gilbertbsd: so u can write a pascal compiler what compiles pascal code 2 this special asm 13:55:42 http://astro.pas.rochester.edu/Forth/loops.html 13:55:48 that author 13:56:07 heh 13:56:19 onetom: what do you mean it's an "assembly"? 13:56:32 yeah, in most forths, the compiler words can only be executed from inside a word 13:56:45 herkamire: forth words resemble bytecode 13:56:46 * tathi goes back to trying to get recurse to work... 13:56:49 gilbertbsd: thats the reason why u should have a clean vision about the 4th internals 13:56:50 <_MrReach_> herkamire: most of the fancy software tools are generally not present in forth 13:57:06 ugh! 13:57:08 forth resembles assembly 13:57:11 not because it's low-level 13:57:14 ok 13:57:18 gilbertbsd: if u have such a vision u wont try 2 write loops in interpreter mode :) 13:57:23 <_MrReach_> and it allows direct access to memory w/o much or any type checking 13:57:37 onetom: i was following the tutorial. 13:57:42 I do like that it's low level. the really impressive bit is that you can make it as high-level as you need it to be for your project 13:57:45 forth isn't low-level, it just isn't well supported and hasn't been extended out. and that's why forth coders need to get off their asses and EXTEND FORTH! 13:57:46 the tutorial told me to do that. 13:57:59 herkamire: just what it means. assembly is the native language of a processor 13:58:01 --- join: Etaoin (~david@ljk23.sat.net) joined #forth 13:58:19 <_MrReach_> this is perfectly legal ... somevar c! somevar @ 13:58:20 gforth isn't 13:58:26 would it be easy to have something like tkForth ? 13:58:27 <_MrReach_> greets, Etaoin 13:58:27 there are tons of forths that are not native 13:58:29 futhin: no, 4th doesnt resembles asm. it is one! 13:58:49 onetom: i know 13:58:56 on some hardware :) 13:59:07 onetom: but telling newbies can confuse them :P 13:59:15 on desktop machines it just includes a simple assembler 13:59:19 <_MrReach_> gilbertbsd: yes it would 13:59:30 how? 13:59:41 herkamire: no, it _is_ assembly.. it's kind of like bytecode, you can code a forth in forth.. 13:59:57 <_MrReach_> gilbertbsd: if you start from scratch, it would require about as much work as Tk itself 14:00:15 <_MrReach_> the tk work is rather straightforward ... but there's a lot of manhours there 14:00:17 herkamire: no, not "on some hw" 14:00:23 I see. 14:00:31 machineforth (the assembly lang of some chips that chuck moore built) is assembly lang because forth is an assembly lang.. you can code stuff on top of it.. 14:00:42 herkamire: its the asm of a type of processors 14:00:46 it's kidn of like bytecode.. 14:00:48 <_MrReach_> however, you *CAN* link directly to the tcl/tk libraries 14:00:58 herkamire: a family of processors 14:00:59 spam alert: these are the books available from my local library 14:01:03 1 14:01:04 Discover FORTH : learning and programming the FORTH language 14:01:04 2 14:01:04 Invitation to FORTH / by Harry Katzan, Jr 14:01:04 3 14:01:04 FORTH fundamentals / C. Kevin McCabe 14:01:06 4 14:01:08 FORTH programming / by Leo J. Scanlon 14:01:10 5 14:01:12 Mastering FORTH / Anita Anderson, Martin Tracy 14:01:14 <_MrReach_> but then there's some translation between forth conventions and tcl/tk convention 14:01:15 6 14:01:16 All about FORTH : an annotated glossary of common FORTH ideo 14:01:19 7 14:01:20 Library of Forth routines and utilities / by James Terry 14:01:24 which from that list would you recommend? 14:01:40 herkamire: tho, usually u cant have such a processor, but u simulate it 14:01:57 herkamire: coz, its pretty easy 2 write a simulator 14:02:12 <_MrReach_> Invatation to Forth was good, if I recall 14:02:18 <_MrReach_> been many years for me 14:02:29 <_MrReach_> check them all out, read a couple 14:02:30 herkamire: for a 4th processor. far more easier then writing a simulator 4 anything else 14:02:37 mrereach did you learn forth from leo brodies book? 14:02:46 gilbertbsd: get all of the books 14:02:50 all? 14:02:53 <_MrReach_> erm ... yes and no 14:02:54 gilbert bsd: i liked Mastering FORTH 14:03:05 <_MrReach_> the Brodie book was one of my first, yes 14:03:11 but if forth is so simple then won't it be redundant to get them all? 14:03:21 <_MrReach_> but I also had a team of professional forth coders for friends 14:03:28 gilbertbsd: Mastering FORTH, FORTH Fundamentals, and FORTH programming 14:03:30 ah I see. 14:03:52 I shall get them this evening then. 14:03:53 <_MrReach_> gilbertbsd: different books focus on different areas 14:04:27 <_MrReach_> "Library of Forth ..." for example, will have tons of code ... but not talk about the system very much 14:05:01 gilbertbsd: most of them suck, so you read them all to piece together a picture :P 14:05:07 gilbertbsd: i still recommend not b afraid of trying out 4th 1st 14:05:22 <_MrReach_> yeah, go grab a forth and start playing 14:05:23 gilbertbsd: and buy any books just after it 14:05:24 4th? is 4th different from forth? 14:05:35 I *am* already playing in forth. 14:05:36 gilbertbsd: no 14:05:37 hence the tutorial. 14:05:43 good :) 14:05:50 gilbertbsd: im just an abbreviator maniac :) 14:05:51 I am currently on loops 14:06:07 <_MrReach_> ".4th" is a file extension that I often use ... much to I440r's dismay 14:06:15 experiment and play a lot. if you get stuck ask us :) 14:06:16 gilbertbsd: !read the underview then! 14:06:35 (and you'll get at least five solutions depending on how many of us are online ;)) 14:06:38 yeah I shall read the underview. 14:06:41 gilbertbsd: herkamire speaks well! 14:06:44 but the underview is not a tutorial is it? 14:06:56 nope 14:07:00 forth is in no way like perl is it? 14:07:03 just an intro 14:07:08 not really.. 14:07:10 nope 14:07:13 gilbertbsd: its more fascinating learnin 4th through irc, then from a book 14:07:20 as in TIMTOWODI ? 14:07:32 gilbertbsd: unless u can manage 2 buy "starting forth" 14:07:38 <_MrReach_> gilbertbsd: that loop you wrote earlier could be optimised to ": test 11 1 DO i . cr LOOP ;" 14:07:58 gilbertbsd: sure forth is like perl. they are both computing languages 14:08:12 yes that worked .. the test thing 14:08:13 gilbertbsd: hehe, im a hungarian, so not so good @ expanding abbrevs, coz english is not my native lang 14:08:33 Hey do you know Simonyi? 14:08:38 s/through irc/via irc/ 14:08:58 Simonyi Who? 14:09:13 simonyi the hungarian? 14:09:22 :D 14:09:32 gilbertbsd: : test 11 1 do i . cr loop ; is different from : text 10 1 do i 1+ . cr loop ; 14:09:38 gilbertbsd: and the underview is also a tutorial 14:09:57 okay what does the 1+ do that the other version does not do? 14:10:13 gilbertbsd: it help understandig why the lang looks like as it looks like 14:10:26 <_MrReach_> ok ... 14:10:37 okay I see... 14:10:45 it starts it from 2 instead of 1 ? 14:10:46 gilbertbsd: "okay what does the 1+ do " ... 14:10:57 <_MrReach_> correct 14:11:03 no 14:11:05 it starts from 1 14:11:08 instead of 0 14:11:09 <_MrReach_> in the first version, the starting index was "0" 14:11:09 gilbertbsd: u can also get answers 4 such questions from the underview 14:11:12 gilbertbsd: the 1+ adds one before it prints. futhin's point is that you could just have the numbers you're looping through be one higher in the first place. 14:11:16 the 1+ increments the index by 1 14:11:18 <_MrReach_> and then one was added each time 14:11:23 <_MrReach_> correct 14:11:31 gilbertbsd: : test 11 1 do i . cr loop ; is different from : text 10 0 ( note the 0 ) do i 1+ . cr loop ; 14:11:32 or the 1+ increments the value of . by 1 no? 14:11:44 . displays the number 14:11:47 <_MrReach_> I used a different set of loop params to get rid of the extra addition 14:11:58 '.' displays the topmost element and destroys it too no? 14:12:13 yes. 14:12:22 <_MrReach_> yep 14:12:24 I've been reading. 14:12:25 gilbertbsd: ehh, ive told u! READ the Undeview! 14:12:27 i puts the loop counter on the stack 14:12:38 1+ increments the number on the top of the stack. 14:12:56 okay I only need to know basically 2 looping constructs no? 14:13:03 or will one do? 14:13:05 <_MrReach_> so long as 'i' is not used in some other calculation ... the two bits of code should be equivalent 14:13:16 gilbertbsd: u r pretty misleaded by those tutorials :) 14:13:21 brb 14:13:22 thanks . 14:13:30 gilbertbsd: there's BEGIN REPEAT, BEGIN UNTIL, DO LOOP, FOR NEXT 14:14:10 the cool thing about forth is that it's usually easy to break down. you don't have to understand syntax (because there isn't any). you can just know what each "word" does, and anylize from left to right :) 14:14:28 so what does begin do? 14:14:31 <_MrReach_> I only use four branching mechs myself ... DO/LOOP ... BEGIN/WHILE/REPEAT ... BEGIN/UNTIL ... and CASE/OF/ENDOF/ENDCASE 14:14:45 DO LOOP and BEGIN UNTIL are the only ones I use 14:15:11 _MrReach_: IF... 14:15:18 <_MrReach_> futhin: I'm very fond of FOR/NEXT ... but it's not ANS ... and NEXT usually conflicts with a system word 14:15:34 okay ... 14:15:37 <_MrReach_> oh! DUH! ... Yeah ... IF/ELSE/THEN 14:16:01 I am a minimalist and I prefer to keep things simple 14:16:10 do i *have* to use case at all? 14:16:14 <_MrReach_> that is a good thing, usually 14:16:23 no. 14:16:24 <_MrReach_> of course not 14:16:25 good 14:16:26 :D 14:16:34 I think you'll like forth :) :) ) 14:16:47 yeah I use ed and vim as text editors 14:16:55 ed a little more often than anyone really should. 14:17:03 <_MrReach_> there are times when my logic tree as distinct "regions" that are pretty seperate ... that's when I choose CASE 14:17:29 but case can be implemented with a good if/else? or can't it? 14:17:38 <_MrReach_> yes, it can 14:17:51 once you get : CREATE DOES>> IF/THEN/ELSE DO/LOOP REPEAT/UNTIL and the stack manipulation stuff down you'll be good to go :) 14:17:54 I have been spoiled a little by my tiny exposure to python. 14:18:03 <_MrReach_> however, that is likely to _appear_ more complex than a CASE statement 14:18:16 it has if/elif/else and thats it. with the elif optional 14:18:50 <_MrReach_> ELSEIF doesn't work well with reverse polish notation 14:18:51 they key to forth is making your words very small 14:19:23 gilbertbsd: i also used ed, instead of sed ;) 14:19:53 I just wrote myself an infinite loop. 14:19:54 gilbertbsd: i replace serial numbers in postscript files b4 printing 14:20:19 : range do i . cr loop ; 14:20:21 <_MrReach_> a (very loose) rule of thumb ... "exactly one flow control structure per word" 14:20:22 whats missing ? 14:20:48 oh I know or do i? 14:20:52 really the trick to learning forth is wrapping your brain around the concept of doing everything with a stack, and memorizing the symbols ( \ / * ! @ c! c@ , : ; . ." .( c, etc. 14:20:53 <_MrReach_> gilbertbsd: nothing, but the stack must have two items on it before that word is invoked 14:20:58 gilbertbsd: the stack effect comment! 14:21:13 : range ( to from -- ) do i . cr loop ; 14:21:29 <_MrReach_> try "9 5 range" 14:21:54 yeah that worked 14:21:59 gilbertbsd: you must remember to put the high number in the range first 14:22:00 <_MrReach_> that will cause the interpreter to put 9 and 5 on the stack first 14:22:02 but as soon as I type 0 10 it gets sick 14:22:04 herkamire: I've found breaking myself of the habit of writing larger functions is much harder than memorizing those 14:22:26 Etaoin: me too 14:22:37 <_MrReach_> gilbertbsd: that's because the FIRST number is the limit, and the SECOND number is the starting index 14:22:48 I still find myself writing long functions that take me forever to get working. 14:23:12 <_MrReach_> heh, I tend to build up words incrementally 14:23:24 okay that works now... 14:23:25 <_MrReach_> then prune them after they're working and complete 14:23:38 _MrReach_: interesting 14:24:02 hey the 'see' command beautifies the ugly one liner i wrote for range. 14:24:05 thats neat. 14:24:09 <_MrReach_> the complex functions, that is ... stupid stuff I just write 14:24:24 are any of you familiar with apl ? 14:24:25 or j? 14:24:27 <_MrReach_> gilbertbsd: what forth are yoiu on? 14:24:33 gforth? 14:24:35 <_MrReach_> not I 14:24:39 no 14:24:40 or was that the wrong answer? 14:24:40 <_MrReach_> ok, just wondering 14:24:54 <_MrReach_> no, there's no "correct" forth 14:25:04 oh, j is sometimes the loop index of the outer nested loop (one level up from the loop you are in) 14:25:05 <_MrReach_> the answer was fine 14:25:07 heheh its the only one i could find for freebsd. 14:25:29 what about arrays? 14:25:39 <_MrReach_> what about them? 14:25:42 no mention has been made of it in the staff I have seen so far. 14:25:50 how would an array be created? 14:25:52 <_MrReach_> generally not supported in forth, but simple to do manually 14:26:10 an array is an indexed variable no? 14:26:12 address array_index + @ 14:26:15 <_MrReach_> do you want the array in the dictionary or in the memory heap??? 14:26:18 gilbertbsd: do u know any asm? 14:26:27 no I don't know assembler 14:26:30 I can barely program 14:26:39 <_MrReach_> (dictionary means fixed maximum size) 14:26:40 and I don't know where I want things as of now. 14:26:43 oh okay. 14:26:52 grr, gdb is such an awful asm debugger... 14:26:53 dynamic array will be fine thank you. 14:27:08 gilbertbsd: you must learn no manipulate memory addresses. 14:27:13 how? 14:27:21 I know of the ! and the @ 14:27:46 ! for setting, @ for revealing no? 14:27:55 gilbertbsd: It seems very simple to me, but I remember it taking me a while to realize how to use memory addresses 14:28:23 okay so how do I learn that? 14:28:26 gilbertbsd: yeah, pretty much. 14:29:17 gilbertbsd: I can explain it to you pretty quick. but I have to go. I'll be home in 20 minutes and I'll explain it then. 14:29:36 <_MrReach_> ok, then some variables: ary# (number of elements) arysize (number of elements currently allocated) aryadr (address of the actual array) and maybe arybytes (the size of a single element) 14:29:37 sure thats fine 14:29:57 --- quit: tathi ("Client Exiting") 14:30:20 --- quit: herkamire ("Client Exiting") 14:30:29 is it pretty easy to understand asm after forth? 14:30:34 gilbertbsd: use that 20 mins 14:30:46 <_MrReach_> 0 ary# ! 0 arysize ! 0 aryadr ! 15 arybytes ! 14:30:47 to read underview? 14:30:48 gilbertbsd: 4 reading th e underview ;) 14:31:12 gilbertbsd: actually 4th is a very primitive assembly 14:31:21 <_MrReach_> to allocate the array with an initial 10 entries ... 14:31:37 gilbertbsd: so learning the asm of a cisc processor is still a tedious task 14:31:49 gilbertbsd: but 4th could help a lot in it 14:32:07 does anyone need asm that knows forth? 14:32:10 <_MrReach_> 10 arybytes @ * allocate throw aryadr ! 14:32:25 throw ? 14:32:32 <_MrReach_> gilbertbsd: most forths come with a built in assembler 14:32:41 <_MrReach_> throw dispatches errors 14:32:51 <_MrReach_> allocate returns an error code 14:32:52 can executables be created with forth? 14:33:01 okay . 14:33:03 <_MrReach_> yes, generally 14:33:52 _MrReach_: *khm* *khm* r u teaching dyn mem handling 4 a newcommer!?! 14:34:23 mrreach that is all not terribly obvious 14:34:29 :D 14:34:35 _MrReach_: and, hey, dont confuse him w such things as "most forths come with a built in assembler" 14:35:17 <_MrReach_> he wanted to do an array 14:35:25 _MrReach_: and not even confuse him w it, when i try 2 learn him 2 look 2 4th as an asm... >-/ 14:35:56 yes I wanted to see how arrays looked in forth 14:36:15 <_MrReach_> well, I showed you how to set one up 14:37:04 <_MrReach_> apparently I went too far too fast 14:37:06 gilbertbsd: u can allocate static arrays a bit more simple 14:37:09 * _MrReach_ shrugs. 14:37:27 I think i have understood the do / loop thing. 14:37:28 its End, start do blah blah loop ? 14:37:38 <_MrReach_> yes, that is correct 14:37:50 <_MrReach_> that screws me up, too 14:37:59 or rather To From Do loop 14:38:10 <_MrReach_> I often get them crossed and crash my forth 14:38:21 create anArray count elemsize ( in bytes ) * chars allot 14:38:32 <_MrReach_> yes, it is (limit index DO ... LOOP) 14:38:48 okay cool. I understand that now. 14:38:57 anArray index elemsize * + 14:38:59 where will i find info on moving raw memory around? 14:39:24 and u can get elemsize bytes from this address 14:40:29 <_MrReach_> the words CMOVE CMOVE> and MOVE 14:40:34 gilbertbsd: in the underview? ;) 14:40:38 --- quit: XeF4 ("pois") 14:40:46 yes i'm in underview 14:41:07 * onetom happy, then :) 14:42:46 <_MrReach_> http://www.taygeta.com/forth/dpans6.htm#6.1.1900 14:43:07 --- quit: qless ("Download Gaim [http://gaim.sourceforge.net/]") 14:43:17 they say there is an editor in forth 14:43:20 where the heck is it? 14:43:36 <_MrReach_> erm .... 14:43:46 <_MrReach_> it varies widely from forth to forth 14:44:06 <_MrReach_> most forths still have the old block editor, try ... 0 edit 14:44:15 0 edit 14:44:18 or ... 0 edit? 14:44:24 <_MrReach_> the first 14:44:45 0 edit 14:44:46 *the terminal*:1: Undefined word 14:44:46 0 edit 14:44:46 ^^^^ 14:44:46 Backtrace: 14:44:46 $2812A158 throw 14:44:47 $281341B8 no.extensions 14:44:48 it complained 14:45:02 <_MrReach_> ok, gforth doesn't have it built in 14:45:15 <_MrReach_> I'm not sure at all where the gforth editor is 14:45:19 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 14:45:24 Hi 14:45:54 <_MrReach_> I usually open three consoles ... one to run an editor in, one to have a shell, and one running the forth 14:45:59 <_MrReach_> wb, qless 14:46:10 rehihi, mrreach with 2x4's 14:46:47 <_MrReach_> "2x4s" ??? 14:46:58 <_MrReach_> construction materials? 14:47:07 oh, not 2x4's? are those ski's on your feet? 14:47:24 <_MrReach_> haha! 14:47:29 what asm is the forth asm written in? 14:47:29 --- nick: _MrReach_ -> MrReach 14:47:30 :-) 14:47:51 gilbertbsd: the asm included with the forth is usually written *IN* forth 14:48:01 and is often reverse polish, too 14:48:12 oh I see. 14:48:15 5 # EAX MOV 14:48:32 EAX EBX MOV 14:49:14 CODE ( stack -- effect ) ... END-CODE 14:49:21 have you tried colorforth? 14:49:26 i understand it sits on a floppy. 14:49:31 no 14:49:40 I think it does, yes 14:49:46 in place of the boot loader 14:50:05 freebsd uses forth somewhere too. 14:51:14 couldn't say 14:51:33 the BIOS for either Apple or Sun machines is written in forth 14:51:44 * qless wakes up and mentions that sun's smartboot startup routines were written in forth 14:51:50 (can't remembr which ... it's called Open Firmware) 14:51:56 yes, open firmware 14:52:31 /boot/loader.4th 14:52:31 /boot/support.4th 14:52:49 also, those hand held signature delivery thingies that the fedex people carry were programmed in forth 14:53:17 I wonder where the 4th interpreter for freebsd is hiding at. 14:53:22 yes, they are ... a great success story for forth 14:53:44 what made the fedex people adopt 4th? 14:53:53 at Fedex, they originally tried to write that with C, and failed, and failed 14:54:13 the project was going overtime and overbudget 14:54:18 but c is pretty natural for that kinda thing 14:54:38 --- join: herkamire (~jason@ip68-9-58-81.ri.ri.cox.net) joined #forth 14:55:02 a forth coder came along and offered to do the project for X dollars and Y weeks, only to be paid if he succeeded, but he needed hardware first 14:55:08 if you don't have any c library on an embedded device, forth is much more useful than c 14:55:13 hi herkamire 14:55:25 hi :) 14:55:38 so they gave him some hardware, and he and a couple of friends (his company) put it together on time and on budget 14:56:14 so do they still handle that thing for fedex? 14:56:40 I *THINK* so ... but the software industry changes so rapidly that it's hard to say 14:56:58 I also heard forth is popular at nasa is that still so? 14:57:39 yes, NASA still uses forth ... especially after the Arianne V blew up in France 14:57:54 erm, the French Arrianne V blew up, rather 14:58:06 why did that happen? 14:58:14 or why do they use forth because of that? 14:58:34 --- join: tathi (~tathi@ip68-9-58-81.ri.ri.cox.net) joined #forth 14:58:37 I can't remember what language they used, but it was Algol or APL or something ... anyway, it had automatic error reporting 14:59:27 one of the processors reported an error because it's design had been exceeded, not enough bits to hold total weight 14:59:46 or something like that 14:59:54 it reported the error and shut down 15:00:28 the other processors then started reporting errors because they weren't getting input from that processor 15:00:48 the processor dedicated to logging errors got overloaded 15:01:11 so the processors reporting errors were held up waiting for errors to be logged 15:01:21 (normally a zero-time operation) 15:01:46 so the nervous system had a seizure, in essence 15:01:56 I see. 15:02:27 everything was slowed down so much that the various processors could run on "best guess" ... which probably would have gotten it to its destination just fine 15:02:40 could NOT run on "best guess" 15:03:30 and ground control could not manually take control of the vessel, either, becuase everything was all stuffed up 15:04:37 so are forth jobs easy to come by? 15:04:55 I bet they were sweating as to whether the delf-destruct would work at all ... we now know it did 15:05:11 I don't know, frankly, I don't do it for a living 15:05:23 as to why NASA continues to use Forth ... 15:05:40 probably because it has a large and well-tested code base 15:06:41 also, forth is very easy to test 15:06:51 todays markert seems 2 require simple php & java programmers usually 15:07:10 yes thats right. what about a PHforth? 15:07:34 gilbertbsd: "forth is very easy to test" <- but thats also mentioned in the underview.. 15:07:42 incidently, NASA will not allow Intel microprocessors beyond the 80486 on any of the space hardware 15:08:01 PHat is PHforth? 15:08:03 url? 15:08:13 no I was wondering 15:08:22 can it not be done? 15:08:24 onetom: I think it was an idea 15:08:40 payson wrote a web server in forth 15:09:02 aha, a forth replacment 4 php? 15:09:13 yes indeed. 15:09:19 s/4/of/ 15:09:26 gilbertbsd: url? 15:09:37 there is no url. 15:09:48 it was an idea like Mrreach said. 15:10:02 ah :) 15:10:42 gilbertbsd: how do u proceed in readin the underview? 15:11:02 well, Ime for me to go 15:11:08 --- nick: MrReach -> MrGone 15:11:18 I've read to the end 15:11:28 it told me about dictionary and about a few other things. 15:14:18 great! any questions? 15:14:27 not yet. 15:14:29 :D 15:15:05 did u understand the "do .. loop in interpreter mode" problem? 15:15:30 I understood it. the thing was that I was typing it in from the tutorial i was reading 15:15:34 thats why it caused a problem 15:15:46 do u know how does flow control (if/then/else or repeat until) work? 15:16:35 yeah i know about those. 15:16:53 does the return stack as a temp storage is also clean? 15:17:17 I think so. 15:17:42 infact it doesnt speak about the brach and ?branch words 15:17:57 no i didn't see those. 15:18:03 flow control words compile those into the threaded code 15:18:21 and the do uncoditional and conditional jumps 15:18:41 they definition is very straightforward 15:19:36 brach simply does an ip += *(ip+cell) 15:20:13 * onetom tends 2 mistype branch all the time... 15:20:28 gilbertbsd: what langs do u already know? 15:21:48 ?branch does an (*sp == 0 ? ip += *(ip+cell) : ip += 2*cell) 15:22:30 and it also eats up the flag from the top of the stack, so 15:22:53 i should probably modify it as: *(sp++) == 0 15:30:10 gilbertbsd: have u tried 2 compile TILE? 15:38:26 --- quit: gilbertbsd (Read error: 113 (No route to host)) 15:50:26 --- quit: rob_ert ("(:") 15:55:30 --- join: I440r (~mark4@1Cust145.tnt2.bloomington.in.da.uu.net) joined #forth 15:56:04 hi 15:56:23 ! 15:56:31 hi guys 15:56:43 hiya 15:57:08 nah, whats up? 15:57:14 any news? 16:09:25 --- join: gofuchelo (~kirk@user-1121m4f.dsl.mindspring.com) joined #forth 16:09:45 hello gofuchelo 16:09:56 Hello Onetom 16:10:14 hi gofu 16:10:24 u a forth coder ??? :) 16:10:31 lotsa new ppl coming in here now hhe 16:10:39 :) 16:10:46 I'm not a forth coder... yet. 16:10:55 I thought I'd see what you guys talk about :) 16:11:27 :) 16:11:33 cars 16:11:33 we talk about cars :) 16:11:38 fast ones!!! 16:11:42 I440r: hehe. strange days... im about 2 do a "show" about 4th 2 my friends 16:12:10 cool 16:12:15 convert them to forth! 16:12:30 a "show"? 16:12:30 I440r: probably some of them will also visit #forth sometime (ihope so @ least :) 16:12:33 cars suck. 16:12:47 herkamire: use bikes then :) 16:12:56 herkamire: just as i do :) 16:12:58 ok 16:13:08 tathi: a lecture? 16:13:10 work is too far though. so I use a sucky car 16:14:01 the bike is the forth of vehicles :))) 16:15:57 w its simplicity 16:16:04 two wheels 16:16:15 ... ;) 16:17:08 anyway, its a poor analogy 16:17:19 yeah. it's not effecient 16:17:40 for example :)) 16:18:03 Tathi and I are looking at a picture of a covered recumbant trike :) :) 16:18:47 lol 16:23:30 wow, ive just found a very important fact about the stack nature of 4th: 16:23:53 stack, 16:23:58 which holds the arguments being passed between words. 16:24:07 This replaces parameter 16:24:07 lists used by conventional languages. It is an efficient internal mechanism 16:24:08 which makes definitions intrinsically re-entrant. 16:24:17 *reentrant*!!! 16:24:45 thats a serious reason why should we use the stack mainly... 16:24:47 if you have a stack for each process... 16:25:07 no 16:25:28 right sorry 16:25:45 u always forget, that we r talking about the 4th processor level 16:26:00 where the fetch cycle and stack manipulation 16:26:06 --- quit: davidw (Read error: 113 (No route to host)) 16:26:19 primitives r noninterruptable tasks 16:27:10 coz those r the machine intructions (the opcodes) of the forth processor 16:27:35 herkamire: do u know x86 asm? 16:27:59 herkamire: (coz i dont know 68k asm yet..) 16:28:31 no 16:28:41 I know 2% of ppc assemply :) 16:29:07 but how sad it would b if a task switch could occur in the middle of a say push operation 16:29:09 ok, maybe 12% :) 16:29:45 * onetom opens up a m68k datasheet suddenly ;) 16:30:08 thwhat do you need to know about m68k 16:30:20 its been a while but i prolly know it :) 16:31:09 I440r: noting serious infact, i just wanted 2 say an example mnemonic in 68k instead of x86 16:31:53 move.l do, a0 16:31:55 hehe 16:31:57 er d0 even 16:32:02 herkamire: so, do u agree now with that reentracy statement? 16:32:23 if it doesn't interupt the primatives, yeah 16:32:53 certainly that statement presumes it 16:34:04 yeah, no good on desktops :-| 16:34:20 why not? 16:34:51 if the only process is 4th u run on the comp 16:35:07 uter, then what could interrupt it? 16:35:17 yes, eg an interrupt :) 16:35:53 but u can simply embrace the primitives in 16:36:20 interrupt disable/enable instructions 16:36:47 ceratainly it hits performance a bit 16:36:51 a bit? 16:36:56 (a lot infact :) 16:37:17 but its a fast solution 16:37:44 and u can defer the probelm of dealing w interrupted primitives 16:38:11 later, and u can still have a fuckin ace multitasking 16:38:46 and probably the ability of composing ur programs 16:39:27 in a multitasking way, could pay back this drawback (imean the performance penalty) 16:41:26 not many programs use multithreading 16:41:33 I don't think it would be worth the speed hit 16:41:40 it could be 30% slower 16:41:51 hmm hmm 16:42:00 and 30% bigger compiled code 16:42:12 maybe 10% on each 16:42:13 im not sure of it, but i will do experiment.... 16:42:15 but still 16:42:15 WHAT? 16:42:35 why the hell should the code b more terse? 16:43:03 code would be longer 16:43:08 terse means short 16:43:22 oops, sorry :) 16:43:39 s/more terse/logner/ 16:44:06 because you are sticking in the "don't interuput" instructions 16:44:08 dont u know a nice sysnonym 4 longer, then? 16:44:34 I asume those are implemented as processor intsructions... 16:44:45 vebose means longer 16:44:57 ah, thats it 16:45:02 verbose and terse are nice oposits 16:45:04 thx 16:45:27 they are usually used when talking about language. 16:45:29 and u dont have to put those instructions 16:46:00 around every "word utterance" 16:46:31 oh, I was thinking the basic words like that would be immediates that compile a few assembly instructions. 16:46:54 ah, thats not a real 4th system 16:47:08 thats a compiled 4th 16:47:10 it's twice as fast though 16:47:34 sure, the natively compiled code is always faster... 16:47:34 is it possible to have a "real 4th system" on this hardware? 16:48:18 why not? because of the separate caches? 16:48:58 what do you mean by "real forth"? 16:49:02 i dont think it would b a problem i u use the simple indirect threading method 16:50:30 in case of a direct threaded 4th 16:51:11 u cant do a fine grained, custom task scheduler 16:51:28 er 16:51:40 how does the threading have any bearing on the multi tasking ? 16:52:03 imean, its really hard 2 implement 1, and it will but terribly platform specific 16:52:37 I440r: in the direct threading scheme 16:52:58 --- part: gofuchelo left #forth 16:53:31 I440r: there is no such a routine that is called 16:53:49 I440r: all the time when a 4th word is executed 16:54:46 do u all know how does a processor works??? 16:54:56 am i the only embedded programmer here? 16:55:29 onetom yes there is - if you use jmp next 16:56:37 I440r: how does the thread looks like in that jmp next case? 16:56:47 exactly the same 16:56:57 ??? 16:57:02 the same as what? 16:57:06 still direct threaded but instead of having an inline next at the end of every coded definition 16:57:09 you have a jmp _next 16:57:24 you could also use nest or unnest for task switching 16:57:43 or you can set up a timre and do preemptive multi tasking :) 16:59:29 I440r: u dont speak 2 clear... 16:59:55 u blur things often 17:00:51 onetom er. no - i stated it distinctly 17:01:07 code + 17:01:10 but stated what? 17:01:11 pop eadx 17:01:12 pop ebx 17:01:15 add eax, ebx 17:01:16 "you have a jmp _next" 17:01:17 push eax 17:01:18 where? 17:01:20 NEXT 17:01:23 where next is either 17:01:25 lodsd 17:01:28 jmp eax 17:01:29 or its a 17:01:31 jmp _next 17:01:34 _next: 17:01:36 lodsd 17:01:37 jmp eax 17:01:51 you either have the code for next INLINE with every single coded definition 17:02:01 or you have every coded definition jump to a single instance of next 17:02:24 _next can be expanded to run the task switcher 17:02:25 or 17:02:28 nah, c? that was clear :) 17:02:40 you can use nest and unnest to to do task switching 17:02:54 yeah, what you said before wasn't particularly clear to someone who hasn't looked at the isforth sources :) 17:02:59 or you can have a timer interrupt kick in and THAt interrupt does preemptive task switching 17:03:02 i havent heard about nest/unnest yet 17:03:10 thats not isforth 17:03:11 thats forth 17:03:27 nest and unnest are how you run colon definitions 17:03:39 nest is called docolon in fig forths 17:04:45 aha, so its a fig terminology 17:04:49 I'd never heard of it before...not that that means anything... 17:04:49 oookaay 17:05:17 probably ive already heard, but forget is very soon :) 17:05:49 s/heard/heared about it/ 17:05:52 no 17:06:02 fig calls it docolon 17:06:18 nest - nests into a colon definition 17:06:30 unnest/exti unnests from a colon definition 17:07:13 nest docol = ? 17:07:21 yes 17:07:30 Soap`: -1 ok ;) 17:07:37 Soap`: -1 ok ;) 17:07:46 so: -1 ok ;) 17:07:54 hehe damned nick completion :) 17:08:03 (shit on my irc client :PP~~~) 17:08:39 but what terminology uses nest/unnest instead of docol/exit? 17:09:42 I440r: and would recommend doing the interrupt handling into docol 2 herkamire 17:10:33 I440r: so he shouldnt do the int enable/disable all the time 17:11:00 eh, forget it 17:11:13 I don't think forth code needs to be interupted 17:11:25 except to kill it if you have an infinite loop or something 17:11:49 but it should b 17:11:55 eg, in my case 17:12:18 i have 2 run a bunch of timers 17:12:47 why a bunch. why not one timer with multiple granularity 17:12:55 and i have 2 handle a lot of different devices 17:13:00 simulteniously 17:13:03 i.e. every time it interrupts it decrements multiple variables 17:13:09 infact i have 2 poll them all 17:13:15 when one of those hits 0 it executes that counters function 17:13:29 and track their status separately usually 17:13:43 but they should interact time by time 17:14:34 I440r: eh, u r very sticked w the pc architecture... 17:15:39 er ive used that technique on 8051 17:15:42 68k 17:15:45 68hc11 17:15:49 x86 17:15:51 u name it 17:15:58 so, i was wrong :))) 17:18:09 I think you should have a seperate execution environment (stacks...) to deal with devices. 17:19:01 it can be called on the interupts, and your regular forh programs can check for device activity or whatever when it get's around to it. 17:19:05 i will b more polite next time and say sg like: "u seem being sticked..." - as i usually say, anyway 17:19:43 herkamire: i have a polling structure 17:20:02 herkamire: and its sufficient except 17:20:19 herkamire: i have 2 take the real time into account also 17:20:27 herk i agree - but i would say you should have TWO system stacks 17:20:39 one for parameters - the other for return 17:21:19 every process should also have its own stack area 17:21:46 and i simply use the following "timers": 17:21:51 : timer 2variable ; 17:21:52 : windup! ( d.ms timer -- ) 17:21:52 >r d>s &1000 um* ( convert to [microsec] ) 17:21:52 utime d+ r> 2! 17:21:52 ; 17:21:52 : windup+! ( d.ms timer -- ) 17:21:54 >r d>s &1000 um* ( convert to [microsec] ) 17:21:56 r@ 2@ d+ r> 2! 17:21:58 ; 17:22:00 : stopped? ( timer -- flag ) 17:22:02 2@ utime du< 17:22:04 ; 17:23:20 example: 17:23:25 timer t1 17:23:44 2000. ( 2sec ) t1 windup! 17:24:05 t1 stopped? if ... then 17:25:05 or i should even write: 2.000 instead of 2000. hmm :) 17:25:24 but its just a trick 17:27:32 * onetom thinks about sleeping a bit 17:28:22 this way, i dont have 2 alter the timers all the time, c? 17:29:17 certainly its only suitable in a pc environment 17:29:46 and i have 2 rethink it when porting it into a smaller device 17:30:16 but ithink i ll also implement utime in that environment 17:30:53 I don't think you need multiple timers. 17:30:57 coz a clock ic is not avoidable anyhow 17:31:29 herkamire: k, tell me what do u think 17:31:45 like I440r was saying, you just have a timer on the event that will happen soonest, then when that goes off you set it for the time left on the next soonest. 17:32:18 :) 17:32:28 aaah, sure, but how do u know what will b the next 17:32:37 but it depends on how you want your program to work. 17:32:39 that only works if they have the samr time base 17:32:45 k, imagine the following setup: 17:33:06 u have a CD (change device) word 17:33:18 if you are always getting the clock in usec, you will have to translate time base anyway right? 17:33:26 and a KEY ( -- keycode ) 17:34:39 herkamire: "translate time base"? but probably u r right :) 17:35:03 so imagine that u have several numeric keyboards 17:35:31 and u have 2 implement various keyboard routines for them 17:36:09 the only tools u have is the CD or we could name it SK (select keyboard) for the sake of the example 17:36:59 and KEY what tells the code of the latest key pressed 17:37:30 if u dont have 2 do much, but simply detect the various numbers and 17:37:40 do thing according to them 17:37:52 ur program just look like: 17:38:00 keyboard1 CK 17:38:21 1 KEY = if ... then 17:38:24 2 KEY = if ... then 17:38:31 6 KEY = if ... then 17:38:38 keyboard2 CK 17:38:43 5 KEY = if ... then 17:38:46 0 KEY = if ... then 17:38:48 ... 17:39:10 right? 17:39:17 use case 17:40:03 I440r: eh, its not easy 2 extend the metacompiler recognise case.. 17:40:22 uknow, im keeping the metacompiler simple :P 17:40:59 k 17:41:16 now, lets create a keyboard routine what 17:41:28 recognise various key-sequences 17:41:57 heh 17:42:05 well ive not even started my meta compiler yet :P 17:42:14 but because of the lack of "talkback" 17:43:03 u have to reset the keyboard routine after some time of inactivity 17:43:55 and here enters the timer 17:44:12 every detected keypress winds up a timer 17:44:31 a timer belonging to that keyboard routine 17:44:59 and the expiration of that timer resets 17:45:23 the input buffer of that keyboard 17:45:36 right? 17:46:54 nokey KEY = if ( dont touch timer ) else T0 timer windup +! 1 KEY = if ... then .... then 17:47:40 'to' is another fucked up name 17:47:45 wtf is wrong with !> 17:47:49 ! = store 17:47:51 > = to 17:47:57 why SPELL it out "to" 17:48:02 !> 17:48:17 i fucking hate the ans fucking standard 17:48:20 why not? 17:48:24 they are fucking all over forth 17:48:33 because its NOT fucking forth 17:48:39 its fucking pissing me off BIG time 17:48:40 just for being more chatty 17:48:43 realy annoys me 17:48:46 not you 17:48:47 versus being cryptic 17:48:48 ans 17:48:54 :)))) 17:48:55 !> is not cryptic 17:49:03 unless your a non forther 17:49:08 thx (not *just* me :) 17:49:10 who gives a fuck about non forth coders 17:49:15 :P 17:49:26 :)) 17:49:38 let me quote u sg, right? 17:50:35 whats "sg"? 17:50:52 SomethinG 17:50:59 k 17:51:03 sy = SomebodY 17:51:03 I think TO should not be a standard word 17:51:47 herkamire: eg, english-hungarian dictionaries use these notations... but ithink all the others also do 17:52:23 ... 17:52:25 As a result of this extensibility, developing an application has the 17:52:25 collateral result of developing a special "application-oriented language" 17:52:25 for that type of application which may be applied to a similar application 17:52:25 or used to modify this one. 17:52:27 ... 17:53:24 I440r: c? 4th is also should b good 4 programmers, not only coders.... 17:55:30 :) 17:59:44 well i gtg zzz 17:59:49 nite all 17:59:59 nite, I440r 18:00:02 --- quit: I440r ("Reality Strikes Again") 18:00:33 well said 18:00:55 I apreciate high level when it helps me get the job done quick. 18:01:09 but only if the high level language is well suited to what I want to do 18:02:19 with forth I can have fun "twittling bits" and stuff, and make myself some high level stuff that makes it a breeze to write nice apps. 18:03:31 aha 18:04:12 herkamire: what 4th did u used so far? 18:04:36 sometimes it's nice to code inside a high level API that takes care of the details for you. 18:04:48 with forth you can have that AND be able to have low level access. 18:05:31 not much. I wrote that lame excuse for an editor, and I started writing a music synthesiser 18:05:46 ya, ya, but it lacks a lot of standard highlevel stuff 18:05:47 I haven't done that much in Forth 18:06:00 forth? 18:06:08 you can build the high level stuff 18:06:10 any graphics in 4th, hm? 18:06:42 sure, i can build, but i miss already bulit, standardized stuff 18:06:48 like oop 18:06:56 oop is for sissies :) 18:07:01 ugh :) 18:07:23 ah, its not the #oop channel? :)) 18:07:36 though I do agree that forth should have some already written high-level stuff, graphics especially 18:08:02 yeah, it would be very cool if there was a standard API for doing graphics in forth. 18:09:14 like opengl, but for 2d graphics... 18:09:42 SDL :) 18:09:46 like flash... 18:09:56 flash makes my ass twitch 18:10:04 ah, do u know sdl, herkamire? 18:10:15 no 18:10:24 I think it's cool though 18:10:53 whats wrong w it? 18:11:16 the scripting. I haven't seen flash 5 though. 18:11:26 I heard it didn't really work too well though. 18:11:28 certainly its not a good idea 2 make info only accessible via flash on the net 18:11:58 flash is a closed proprietary technology. 18:12:13 aaaand???? 18:12:23 they're software is CRAP 18:12:34 i dont say "use flash, maaan!!" 18:12:38 have you ever tried creating a flash script? 18:12:59 i say its a well performing piece of sw 18:12:59 flash is not an API 18:13:27 ive seem many atracting user interfaces written in flash 18:13:29 the flash 4 plugin for windoze works pretty well. that's about all the goodnes I have to say for flash 18:14:06 flash 4 plugin also worx fine 4 me from inside opera 2 18:14:10 under linux 18:14:24 but now, not thats the point 18:14:29 I got payed lots of money to try to make an attractive user interface in flash becaues the head programmer at my former place of employment wasn't sure if it was possible. 18:14:35 as it turns out it was just barely. 18:14:54 it won't work on my linux. 18:15:04 because it's closed 18:15:20 they don't bother making a binary for ppc 18:15:44 closed because its good ;) 18:15:50 no. 18:16:00 but the company behind it is evil, tho 18:16:01 closed because they are trying to make money 18:16:20 coz they have invested a lot of money 18:16:23 into the development 18:16:40 if it were open people would either rip them apart for how crappy and insecure the implementation is, or they'd fix/improve it and make something better. 18:17:19 the software that they sell to create flash content is really really really really crappy 18:17:23 it was hell 18:17:29 sure, but the design cant b stamped bad just because of its closedness... 18:17:47 and not just because it crashed my computer regularly every day 18:18:06 but the results ive seem all around the net was very attracting... 18:18:11 it doesn't even do bezier curves... 18:18:34 well, then the development tool was a crap 18:18:53 the only thing they did well was make the plugin work nicely 18:19:02 but it still doesnt measures the concepts in flash... 18:19:14 what concepts? 18:19:50 handling the graphics, and the mouse, and probably various timers. 18:20:02 it doesn't have timers 18:20:10 and so on... dont know the internals of flash 18:20:15 you could fake one sortof 18:20:22 i just do extrapolation :) 18:20:37 belive me, the internals are hedeous 18:20:52 but ive seen many nice dynamics in it 18:21:11 but now, i gotta go 18:21:33 bb 1.5hrs l8r 18:21:44 later 18:21:45 tho, probably i go 2 bed then :) 18:22:21 bye (and flash is nice! ... from outside @ least :) 18:23:11 --- quit: tathi ("Client Exiting") 18:32:51 --- quit: herkamire (carter.openprojects.net irc.openprojects.net) 18:32:51 --- quit: qless (carter.openprojects.net irc.openprojects.net) 18:32:52 --- quit: Etaoin (carter.openprojects.net irc.openprojects.net) 18:32:56 --- quit: Soap` (carter.openprojects.net irc.openprojects.net) 18:32:56 --- quit: MrGone (carter.openprojects.net irc.openprojects.net) 18:32:56 --- quit: onetom (carter.openprojects.net irc.openprojects.net) 18:32:56 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 18:33:38 --- join: ChanServ (ChanServ@services.) joined #forth 18:33:38 --- join: herkamire (~jason@ip68-9-58-81.ri.ri.cox.net) joined #forth 18:33:38 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 18:33:38 --- join: Etaoin (~david@ljk23.sat.net) joined #forth 18:33:38 --- mode: carter.openprojects.net set +o ChanServ 18:36:13 --- quit: qless (carter.openprojects.net irc.openprojects.net) 18:36:13 --- quit: herkamire (carter.openprojects.net irc.openprojects.net) 18:36:14 --- quit: Etaoin (carter.openprojects.net irc.openprojects.net) 18:38:40 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 18:39:03 --- join: ChanServ (ChanServ@services.) joined #forth 18:39:03 --- mode: carter.openprojects.net set +o ChanServ 18:42:00 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 18:42:24 --- join: ChanServ (ChanServ@services.) joined #forth 18:42:24 --- mode: carter.openprojects.net set +o ChanServ 18:42:31 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 18:42:37 --- join: ChanServ (ChanServ@services.) joined #forth 18:42:37 --- mode: carter.openprojects.net set +o ChanServ 18:43:27 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 18:43:51 --- join: ChanServ (ChanServ@services.) joined #forth 18:43:51 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 18:43:51 --- join: herkamire (~jason@ip68-9-58-81.ri.ri.cox.net) joined #forth 18:43:51 --- join: Etaoin (~david@ljk23.sat.net) joined #forth 18:43:51 --- mode: carter.openprojects.net set +o ChanServ 18:44:16 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 18:44:53 --- join: ChanServ (ChanServ@services.) joined #forth 18:44:53 --- mode: carter.openprojects.net set +o ChanServ 18:51:21 --- join: Soap` (flop@210-86-40-61.dialup.xtra.co.nz) joined #forth 18:51:21 --- join: MrGone (~mrreach@209.181.43.190) joined #forth 18:51:21 --- join: onetom (tom@adsl52235.vnet.hu) joined #forth 19:34:16 * onetom is back, but still seriously winks into the direction of the bed 19:34:18 --- quit: Etaoin ("raise SystemExit") 19:38:34 I didn't get booted 19:38:44 ? 19:39:02 everybody but me just left and came back. 19:40:11 [04:52] *** Joins: herkamire [~jason@ip68-9-58-81.ri.ri.cox.net] has joined #forth 19:40:30 recently? 19:40:31 uve also left & came back immediately... 19:40:45 but... I saw you come on 19:40:50 [04:24] *** Quits: tathi:#forthos [~tathi@ip68-9-58-81.ri.ri.cox.net] ("Client Exiting") 19:40:50 [04:24] *** Quits: tathi:#forth [~tathi@ip68-9-58-81.ri.ri.cox.net] ("Client Exiting") 19:40:50 [04:34] *** Quits: futhin:#forthos [thin@h24-64-174-2.cg.shawcable.net] (devlin.openprojects.net irc.openprojects.net) 19:40:50 [04:34] *** Quits: futhin:#forth [thin@h24-64-174-2.cg.shawcable.net] (devlin.openprojects.net irc.openprojects.net) 19:40:50 [04:34] *** Quits: clog:#forthos [nef@bespin.org] (devlin.openprojects.net irc.openprojects.net) 19:40:52 [04:34] *** Quits: clog:#forth [nef@bespin.org] (devlin.openprojects.net irc.openprojects.net) 19:40:54 [04:34] *** Quits: herkamire:#forth [~jason@ip68-9-58-81.ri.ri.cox.net] (devlin.openprojects.net irc.openprojects.net) 19:40:56 and my whois just told me that I was idle for over an hour 19:40:57 [04:34] *** Quits: qless:#forth [~cerberus@clgr000977.hs.telusplanet.net] (devlin.openprojects.net irc.openprojects.net) 19:41:00 [04:34] *** Quits: Etaoin:#forth [~david@ljk23.sat.net] (devlin.openprojects.net irc.openprojects.net) 19:41:02 [04:34] *** Quits: ChanServ:#forthos [ChanServ@services.] (devlin.openprojects.net irc.openprojects.net) 19:41:04 [04:34] *** Quits: ChanServ:#forth [ChanServ@services.] (devlin.openprojects.net irc.openprojects.net) 19:41:08 [04:50] <=-S-=> You're lagged 5secs to yourself. cool, huh? 19:41:10 [04:52] *** Joins: ChanServ [ChanServ@services.] has joined #forthos 19:41:14 [04:52] *** Joins: clog [nef@bespin.org] has joined #forthos 19:41:14 [04:52] *** Joins: futhin [thin@h24-64-174-2.cg.shawcable.net] has joined #forthos 19:41:17 [04:52] *** Mode change for #forthos by devlin.openprojects.net: +o ChanServ 19:41:18 [04:52] *** Joins: ChanServ [ChanServ@services.] has joined #forth 19:41:20 [04:52] *** Joins: clog [nef@bespin.org] has joined #forth 19:41:20 sssssssssh 19:41:22 [04:52] *** Joins: futhin [thin@h24-64-174-2.cg.shawcable.net] has joined #forth 19:41:24 [04:52] *** Joins: qless [~cerberus@clgr000977.hs.telusplanet.net] has joined #forth 19:41:26 [04:52] *** Joins: herkamire [~jason@ip68-9-58-81.ri.ri.cox.net] has joined #forth 19:41:28 [04:52] *** Joins: Etaoin [~david@ljk23.sat.net] has joined #forth 19:41:39 --------- 19:41:39 thats what i saw 19:41:51 it happens regular, anyway 19:42:14 almost every day 19:43:12 Netsplit :/ 19:43:46 did it dissconnect us, or just close this channel? 19:43:54 does irc protocol do routing? 19:44:26 Kinda. IRC servers are arranged in a tree. 19:44:35 One branch got disconnected from the rest and had to reconnect 19:47:03 --- part: qless left #forth 19:49:14 wierd 19:50:10 what's the tree for? can people who are on different servers chat with eachother? 19:51:19 yes 19:52:22 if a branch of the tree dies, -ithink- the others on 19:53:19 ^H^H connected 2 other branches could still continue chatting 19:53:51 coz, the virtual room still exists 19:55:01 and this way u can split netload into smaller fractions, iguess 19:57:01 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 20:05:44 --- join: gilbertbsd (~gilbert@m178.max3.dacor.net) joined #forth 20:05:51 hi, gilbertbsd 20:05:54 hi 20:06:10 my ISP decided to kick me off line this evening 20:06:34 how does one write recursive programs in forth? 20:06:39 eg... factorial? 20:07:21 there r 2 usual recursion implementations 20:07:48 1, there is a word *recurse* 20:07:55 so far I have : factorial 0= if 1 else 20:08:00 aahhhh 20:08:09 and the other one? 20:08:21 2, u can use the word itself from inside its definition 20:08:52 but u have 2 do some things probably... 20:09:11 how would you write the factorial in the second method? 20:09:37 some thing that makes the word under construction searchable by the word "find" 20:11:26 : fact 1 over < if 1- fact then * ; 20:11:29 or what :) 20:11:53 sureeee 20:12:24 : fact 1 over < if 1- fact then * 20:12:24 ^^^^ 20:12:24 Backtrace: 20:12:24 $28129158 throw 20:12:24 $2813318C no.extensions 20:12:33 ah, the stack effect: ( n -- n! ) 20:12:36 certainly 20:12:52 probably gforth uses the recurse method? 20:12:58 try rec 20:13:25 ihope u know gforth has a tab-completion feature... 20:13:33 i just found out :D 20:13:38 do you use gforth? 20:14:42 well... actually... i still use *that*... 20:14:59 what is *that*? 20:15:00 gforth? 20:15:06 yup 20:15:12 i dont really like it 20:15:23 whats wrong with it? 20:15:27 its too complicated & 2 underdocumented 20:15:46 imean, the implementation is 2 complicated 20:16:02 so what would you recommend then? 20:16:16 for one that works in freebsd or perhaps linux? 20:16:20 it took me several hours 2 find out how can i implant some port handling into it 20:16:51 how long should it have taken? 20:16:54 well, im not that experienced if i could recommend, but 20:17:16 id like 1 ask u 2 try compiling TILE 20:17:36 sure give me the url again. 20:18:10 :))) well, can recall it. id did it just after half a year of linux experience 20:19:19 i havent even been able 2 use linux decently those days 20:19:38 and its was my very first programming experience under linux 20:20:00 had you programmed in other languages/platforms before? 20:20:15 so it took me probably 2 or 3 days 2 map the gforth src tree 20:21:04 only under dos in turbo pascal (tvision) & in delphi under windows 20:21:35 and x86 asm in the dos era 20:21:42 so what made you start using forth? 20:21:53 ah so you already knew asm 20:22:23 it was quite inconvenient 2 program the microcontrollers in assembly 20:22:48 so you program microcontrollers for a living? 20:22:56 and my father has found a 4th to PIC asm compiler on the net 20:23:00 yes 20:23:19 what experience does one need to start doing that? 20:23:28 i met w forth the very 1st time when i was ~7yrs old 20:23:46 oh its been a long time. 20:23:59 it was a "4th forth" programmed by a friend of my fater 20:24:11 for a ZX Spectrum 20:24:39 a zx spectrum 20:25:19 thats an old machine 20:25:32 yes, a rather old :) 20:26:12 it must have happend round 1984 20:27:50 do you know postscript? 20:28:12 hehe, ask futhin :)) 20:28:17 yeah 20:28:20 postscript is leet 20:28:24 hi futhin. 20:28:37 do you know postscript? 20:28:37 i think we need forth extended to something that is like postscript 20:28:48 i call it Forth Graphic Script ;) 20:28:52 really? 20:28:53 so the files would be .fgs :P 20:28:57 so its quite like forth? 20:29:00 it doesn't exist yet 20:29:01 but yes 20:29:08 postscript is _very_ similar to forth 20:29:22 so its not a very difficult hop from forth to postscript? 20:29:25 forth could be extended to the same level postscript is 20:29:46 nope, not a difficult hop at all.. and it would be much more interactive :) 20:30:20 gilbertbsd: would u b so kind as to issue a make command in the tile directory? :) 20:30:28 so what do you use postscript for? 20:30:39 onetom yeah. where is TILE? 20:31:08 gilbertbsd: well i'm working on a job for a company that involves printing out schematics 20:31:26 so i'm doing the code that draws the schematics in postscript 20:31:53 [11:24] gilbertbsd: http://hermantom.homeip.net/~tom/forth/tile-forth-2.1.tar.gz 20:31:54 [11:24] -rw-rw-r-- 1 tom tom 149007 DEC 5 18:31 tile-forth-2.1.tar.gz 20:31:54 could you create a wysiwyg word processor of the Latex caliber with knowledge of postscript? 20:32:50 onetom: no luck 20:32:53 its just sitting there 20:33:25 gilbertbsd: pardon? 20:33:35 it says Time out on python 20:33:39 oops time out 20:33:56 gilbertbsd: eh? postscript is mostly just for drawing pictures on paper.. it can be used for drawing guis, but it hasn't really gone that way, except for NeWS and other software.. 20:34:43 but things like dvips exist 20:34:47 from dvi to ps 20:34:53 and you print the resulting ps file 20:35:29 reprash your earlier question.. 20:35:33 er, rephrase 20:35:35 not for drawing guis but for describing something like Word... just like latex is used in lyx 20:35:36 gilbertbsd: Time out on python??? how does python relates 2 tile? 20:35:49 onetom it was an error 20:35:54 its simply 'time out on server' 20:36:24 try it again, or i could try 2 upload it 2 u somewhere 20:36:28 gilbertbsd: i'm not familiar with latex. are you saying that latex is used to code a wysiwyg word processor ? 20:36:40 onetom: email it to him 20:37:37 I know postscript is the printer descripting language. 20:38:17 when you create a latex document and it 'compiles' well... in order to print it, you convert it to .ps 20:38:23 and then print the .ps file 20:38:53 so i was wondering if it were possble to create .ps files directly 20:39:09 gilbertbsd: i'm not 100% familiar with postscript, i just read up on the reference material over a period of a week, and now i'm 90% familiar with it : 20:39:37 okay you are familiar with MSword aren't you? 20:40:12 yeah sure it would be pretty simple to have an editor that produces a postscript file. but that wouldn't be taking much advantage of it.. 20:40:19 gilbertbsd: so, whats ur mail addr? so i could mail tile 2 u. 20:40:22 postscript can draw a lot more 20:40:31 gilbert_aka_gilbert@yahoo.com 20:40:44 * onetom is familiar w msword 20:41:10 well i was wondering how hard it would be to create a program that saves something like MSwords output as .ps files 20:41:16 that is my question :D 20:43:41 --- nick: MrGone -> MrReach 20:43:49 hi MrReach 20:44:08 heh, I was just propositioned to buy a computer store. 20:44:33 gilbertbsd: it must b l8 or 2 early, but i still cant understand the question 20:44:54 onetom the question? 20:45:18 oh dun worry about it. 20:45:52 tile must have been arrived... 20:45:58 2 u imean 20:46:11 I have dial up... 2 more minutes 20:46:12 gilbertbsd: did you know you can open a doc in Word, print to a PS printer, and then direct the output to a file? 20:46:41 Mrreach yes I know that... I've seen it on some mswords. 20:47:14 but WordPerfect had a 'reveal codes' mode... 20:47:18 yea I've got it! 20:47:51 just like when you 'view code' on a webpage, you see html ... is it possible to write an app that does the same thing but shows PostScript codes instead? 20:48:32 ps is _NEARLY_ human readable ... it is a language unto itself ... based on Forth, incidently 20:48:45 why did they base it on forth? 20:48:58 the authors were more exposed to smalltalk than forth. 20:49:01 I don't know why 20:51:35 I'm not sure how to respond on this computer store thing 20:51:50 Luckily, I'm an economics major 20:52:03 it has rather caught me by surprise ... I may not be moving to Seattle this year, after all 20:52:35 heh, can you apply economics via IRC 20:52:41 gilbertbsd: plz send me a mail about ur success w tile! 20:53:11 gilbertbsd: it refers to 1 or 2 signals that dont exists under linux 20:53:36 gilbertbsd: just comment them out from the sources and it should work 20:54:08 I am not using linux 20:54:11 freebsd. 20:54:41 postscript is a terrible way to store document data, incidently 20:54:55 excellent for doing graphic layout, though 20:56:02 --- nick: MrReach -> MrGone 20:56:25 gilbertbsd: sure, iknow, its also in yr nick! aah :) 20:56:25 onetom how am I s'posed to run it? 20:56:52 gilbertbsd: but ithought it could help u in compiling it 20:57:05 compiling what? 20:57:09 gilbertbsd: run it? have u managed 2 compile it? 20:57:22 i can type gmake again to show you. 20:57:24 hold on. 20:57:24 compiling tile 20:57:35 k 20:58:06 cd src ; make 20:58:06 gcc -O -pipe -o forth kernel.o io.o error.o memory.o forth.o 20:58:06 mv forth ../bin 20:59:37 --- quit: MrGone () 20:59:59 ah it works now 21:00:07 gilbertbsd: yes, but whats the question? 21:00:11 k 21:00:19 u can say words in it 21:00:28 no question. 21:00:39 it shows u the current wordset 21:01:07 how? 21:01:27 bin/forth 21:01:29 words 21:01:33 what how? 21:02:43 okay I see. 21:03:00 :) great 21:03:28 now u know an other 4th working under bsd 21:03:45 yeah its pretty small. 21:04:21 and pretty :) 21:05:17 have a look @ the libs and the man pages! 21:06:15 TILE compiles without modification in Freebsd. 21:06:20 lemme do something. 21:06:26 k 21:06:41 FreeBSD 4.5-RELEASE FreeBSD 4.5-RELEASE #0: Sun Feb 17 10:07:09 GMT 2002 root@ijahman.levi:/usr/src/sys/compile/ABBEYLINCOLN i386 21:06:54 so thats what it certainly works on. 21:07:22 does it have an editor? 21:07:47 bsd? sure it has :P 21:07:51 hehehe 21:07:52 no tile 21:08:03 I use ed ... the best editor on the planet. 21:08:12 forget that editor stuff, its a bit deprecated 21:08:20 tho, chuck still uses it 21:08:22 in forth? 21:08:25 yes 21:08:26 how do you invoke it? 21:08:37 ithink forth filename.fs 21:08:41 or 21:08:44 forth 21:08:50 gforth doesn't come with the forth editor that chuck moore uses :) 21:09:05 is the forth editor anything like ed? 21:09:09 include source.fs 21:09:10 ed is just so sweet. 21:09:23 well... 21:09:27 gilbertbsd: go to www.colorforth.com and download colorforth 21:09:29 it has an editor 21:09:30 there r ed like 1s 21:09:37 futhin its only for dos. 21:09:43 not for freebsd. 21:09:48 gilbertbsd: no, you run it off a floppy disk 21:09:58 you can dd it to a disk 21:10:00 yeah i can, but my floppy doesn't work 21:10:03 but the usually mentioned "1 edit 1 load..." 21:10:05 I already have it on my computer. 21:10:22 is a fullscreen 1, but its still a special 1 21:10:25 install dosemu! :P 21:10:35 yeah .. mebe. 21:10:54 futhin: probably it wont run under dosemu.... 21:11:19 um, the last time i used the linux dosemu, it actually ran the command.com or something weird 21:11:21 futhin: it refuses runnig under vmware... 21:11:22 so colorforth should work.. 21:11:35 dosemu ran command.com .. 21:11:37 haaahaaa :) 21:11:43 does forth have 'see'? 21:11:56 plz refer it as tile... 21:12:05 so far I have made tile produce 100 '??"'s 21:12:09 i havent found see 4 it 21:12:21 tile probably isn't forth, it's a forth-like language 21:12:22 so there is no equivalent 'see' for tile? 21:12:27 but use grep on the srces instead :) 21:12:33 TILE Forth version 3.33, Copyright (C) 1990, by Mikael Patel 21:12:50 so? probably isn't forth :P 21:12:55 futhin: pssst! tile is absolutely a 4th 21:13:09 MUF = multi-user forth isn't a forth 21:13:15 has forth in its name 21:13:25 onetom: how is tile a 4th? what threading is it? 21:13:39 onetom: what standard? fig? f83? 21:14:00 i don't know tile 21:14:07 just assuming it isn't a forth 21:14:14 many "forths" aren't forths.. 21:14:28 futhin: dont ask that much, dl it instead! 21:14:33 heh 21:14:52 worth 2 dling it... 21:14:56 worth dling it... 21:15:05 yeah, i will sometime 21:15:11 now! 21:15:14 naw 21:15:15 heh 21:15:16 its just ~200k 21:15:21 going to bed right now :) 21:15:40 or i can email it 2 u... ;) 21:17:18 so onetom do you use tile? 21:21:45 gilbertbsd: i plan 2 use it instead of gforth 21:21:55 why? 21:22:28 coz i plan 2 make my building control system 2 b able 2 run on a palmtop 21:22:58 are you doing this for fun? 21:23:03 or *gasp* Profit! 21:23:04 and tile seems the most proper choice 4 porting a 4th onto palm 21:23:56 and it also have multitaskin capabilities which i also *plan* 2 use in my program 21:24:11 i do the buildind control sys 4 money 21:24:31 I see. 21:24:39 but i plan 2 release all the other utils 4 free 21:24:56 going to bed, good night all 21:24:58 --- quit: futhin ("sleep") 21:25:01 actulally i need some company 2 help writing those 21:25:37 eg, id like 2 expand mary - an optimizing native 4th compiler for pic micros 21:26:05 so it could compile larger code than 2k 21:26:33 then i plan this port of tile 2 palm 21:27:29 and i also want 2 make several tutorial quality implementations 21:27:31 --- quit: gilbertbsd ("xchat exiting..") 21:29:20 --- join: gilbertbsd (~gilbert@m178.max3.dacor.net) joined #forth 21:30:09 of the various parts of a 4th/4th-like system 21:30:43 do you know python? 21:30:58 just a lil bit (harder :) 21:31:47 python is harder? 21:31:58 loll 21:32:14 its a joan baez song 21:32:26 ...just a lil bit harder... 21:32:49 so, why did u ask me about python? 21:33:00 its the other language I'm learning. 21:33:20 c. worth 2 learn 21:33:40 i also plan 2 implement 4th in python 21:33:55 yeah I did a few of the stack manipulation words in it. 21:34:05 its pretty simple to do... but i didn't write a parser for it though. 21:34:08 but probably it could also b a nice homework 2 u 21:34:09 I don't know how to yet. 21:34:36 well for something like swqp its simply def swap(a,b): return b a 21:34:39 i could give u some pointers on it 21:34:49 sure i'm listening. 21:34:56 what words should i absolutely have in it? 21:35:25 1st of all u need that "address interpreter" b implemented 21:35:42 (as the underview article refers 2 it) 21:35:56 i made some sample code for it 21:36:12 u can find those 21:36:44 ftp://guest:x@hermantom.homeip.net/home/guest/www/forth 21:37:48 http://hermantom.homeip.net/~guest/forth 21:37:48 or u can even ssh in 21:37:48 but dont confuse my system, plz 21:37:54 this is an account for my friends 21:38:04 how would I confuse your system? 21:38:22 and currently its also the "official" account 4 doing 21:38:28 the "Forth OS development" 21:38:45 so, eg, futhin uses it 2 21:38:54 what system is it on? 21:38:57 an now u also can 21:39:31 so u can find some sample code there about threaded code execution 21:40:10 is it going to be in python or c? 21:40:45 implemented in 4th, awk 21:41:10 and i will also put some python code there, what was done by a friend of mine 21:41:32 in awk? 21:42:08 gilbertbsd: dont know how could u confuse, but u shouldnt try 2 figure it out :D 21:42:28 its a debian potato, anyway 21:43:11 --- quit: herkamire ("Client Exiting") 21:43:14 well i've not being able to connect but thats okay. 21:43:48 how come?! 21:44:03 try it via my ip 21:44:44 it works but it doesn't ask for my username 21:44:49 but thats fine though. 21:46:24 ? 21:46:49 what doesnt ask 4 username? 21:46:52 the ssh? 21:46:56 yes yes 21:47:06 u should say 21:47:15 ssh guest@hermantom.homeip.net 21:47:36 or 21:47:44 ssh -l guest hermantom.homeip.net 21:47:50 ah yes 21:49:07 is there a password? 21:49:35 aaarrrghh 21:49:37 sure 21:49:38 x 21:49:55 but ive told u all these previously 21:50:06 when ive given u the ftp address 21:50:31 no there was no password. 21:52:03 [07:37] ftp://guest:x@hermantom.homeip.net/home/guest/www/forth 21:52:16 there it is, c? 21:52:32 ah yes right thereeeeeeeeee^ 21:53:12 ;) 21:53:34 so u can also see the python stuff there 21:53:43 (ive found it finally) 21:58:39 the 4th version is the only 1 what works 21:58:48 the awk version is not far from working 21:59:11 the py version dont even has an example embedded into it 22:01:09 u can try the 4th version under gforth 22:01:11 so are you working on the awk version as well? 22:01:26 by issuing the "test run" words 22:02:02 yes, i plan 2 debug also the awk version in the following few days 22:03:28 i plan 2 write a smart 4th kernel 22:03:59 so the kernel contains the absolute necessary 4th words? 22:04:01 what is optimized 4 "students" and not 4 size or speed 22:04:19 well... 22:05:40 why do you use a list and not a dict for the dict part in forth? 22:06:05 probably we could include the primitives into the definition of the kernel.. 22:06:24 in which implementation? 22:06:48 brb 22:06:57 the python thing 22:12:11 :) it was made by a python beginner 22:12:27 who doesnt really understood 4th yet 22:12:56 but still the array (list) is the perfect choice 4 the dict, iguess 22:13:26 coz the 4th dict is a simple raw memory arena 22:14:44 I don't see the 'or' 'and' 'xor' bits 22:15:19 ? 22:19:33 the logic operators 22:19:44 whats up w them? 22:20:05 where cant u see them? 22:21:21 in the kernel.fs 22:22:26 still cant understand 22:22:42 u can find logic operators in kernel.fs, right? 22:22:53 s/can/cant/ 22:23:29 why should u c 1s? 22:24:44 these kernel.* stuff doesnt do anything else but runs threaded code from a dictionary 22:25:02 oh and where is the dictionary? 22:25:14 and the dict is made up of primitive & threaded words 22:25:25 in kernel.fs? 22:25:37 hmmm :D 22:25:38 variable dict dict-size cells allot ( this is the dictionary ) 22:25:41 i have a lot to learn. 22:25:50 but its not populated is what i'm saying. 22:26:18 hey, did u really read the underview article? 22:26:56 i will make some ascii graphics for kernel.* 22:27:08 what shows the structure of the dict 22:27:22 but now, i think im gonna sleep 22:27:58 now 22:28:51 yes I read it. 22:29:02 more like skimmed it. it started going 'blah blah blah blah' 22:29:06 but I shall read it again. 22:29:07 my sample-simple implementation lack many fields 22:29:54 the header of the words doesnt contain anything else but a cfa-like word-type descriptor 22:30:18 --- quit: Soap` () 22:30:19 and i use the host language 2 implement word-name handling 22:31:23 u definitely should read it sentence by sentence & word by word... 22:31:32 Certainly. 22:31:44 and it has quite good schemas also 22:31:55 those really should help 22:33:04 * onetom hits the bed 22:33:17 good night onetom 22:33:23 --- quit: gilbertbsd ("xchat exiting..") 23:22:59 --- join: Soap` (flop@210-86-40-12.dialup.xtra.co.nz) joined #forth 23:59:59 --- log: ended forth/02.04.02