00:00:00 --- log: started forth/02.05.21 00:31:19 --- join: Serg_penguin (~z@nat-ch0.nat.comex.ru) joined #forth 00:31:38 hi 00:32:33 hi 00:34:03 --- join: I440r (~mark4@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 00:35:49 --- join: Forth (~Forth@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 00:36:03 wow :) 00:36:16 Forth: 1 . 00:36:19 its still a dumb bot tho 00:36:26 it doesnt do anything yet 00:36:38 --- quit: Serg_penguin () 00:42:56 --- join: davidw (~davidw@adsl-42-101.38-151.net24.it) joined #forth 00:43:35 --- join: Serg_penguin (~z@nat-ch0.nat.comex.ru) joined #forth 00:44:27 --- quit: Serg_penguin (Client Quit) 01:12:30 --- join: vorsprung (~jamie@195.89.251.166) joined #forth 01:12:42 welcome to my humble abode :) 01:12:46 hi :) 01:13:10 so what do people use forth for these days? 01:13:32 last I heard it was mostly embedded 01:14:26 it is and it isnt 01:14:36 ever use fedx to ship anything? 01:14:46 ever trackk something you shipped or was shipped to you by fedx? 01:14:52 the tracking system was coded entirely in forth 01:14:59 was? 01:15:03 or is? 01:15:15 IS 01:15:30 --- quit: gforth (Read error: 104 (Connection reset by peer)) 01:15:33 their entire tracking system was coded by forth inc 01:16:00 nasa use it. industrial light and magic used it on the originall star wars 01:16:07 --- quit: onetom (Read error: 104 (Connection reset by peer)) 01:16:09 which is where i think yodaspeak originated 01:16:29 it's kinda bizarre that there is a lot of effort trying to put java in pdas/browsers etc etc when they could use forth. Anyone doing stuff with a forth plugin for the web? 01:16:50 chuck moore :) 01:17:06 one of the things i want to do with my compiler is write a web browser 01:17:15 how about opengl+forth? 01:17:27 this way i can see exactly what sort of things i woud need to do FORTh web scripting 01:17:59 opengl ? 01:18:04 sounds interesting :) 01:18:23 im working on some sockets code for the compiler now so i can do all the web shit 01:18:39 Forth in here is my forht compiler running my sockets extension + irc bot extension 01:18:45 it dont do shit but its connected :) 01:19:00 i suppose forth wouldn't have sockets 01:19:18 it doesnt but im working on it 01:19:28 skip carter has a tcp/ip stack written in forth 01:19:41 isforth (my forth) uses syscalls for everything 01:19:50 ah 01:20:00 rob_ert came up with a basic sockets interface with it in like 2 days :) 01:20:20 you can do ANY syscall you want. all you have to do is define the syscall 01:20:35 but that would make it less portable 01:20:35 #parameters #syscall syscall 01:20:47 forth web scripting sounds about as fun as hitting yourself in the nuts with a hammer 01:20:51 i could care LESS about theKERNEL being portable 01:21:02 davidw ill take your word for that :) 01:21:28 davidw, let me put it this way...you could do it in java instead 01:21:36 vorsprung: I wouldn't do that either - or C 01:21:36 my forth compiler is strictly LINUX only, and this version of it is strictly X86 ONLY 01:21:51 I would use a scripting language that is good for working with strings - like Tcl 01:22:07 davidw, you mean "like perl" :) 01:22:10 actually -if people would LIMIT themselves to html and PHP the net would be a happier place 01:22:23 no, I don't like Perl, although even perl would be better than a low level language 01:22:39 I don't care for PHP either - Tcl is a more general language (kind of like forth) 01:23:14 I think it makes sense to use a general language and create specific commands (or words:-) for your particular domain 01:23:31 davide forth allows you to do just that though 01:23:44 php/tcl/perl all run server side. Stuff running client side is interesting too 01:23:45 i DO have to admit though - forth SUCKS at strings 01:23:49 il have to fix that 01:23:52 I440r: sure, but... yeah, exactly 01:23:59 I440r, PCRE 01:24:04 pcre ? 01:24:05 you could use forth, but you would practically have to build tcl on top of it;-) 01:24:13 perl compatible... 01:24:18 ...regular expressions 01:24:28 I440r, pcre is a perl regexp package designed to hook into other programs 01:24:32 davidw i dont know tcl but how difficult would it be to have a tcl interpreter written in forth ? 01:24:44 I don't know - it would be a fun project, though, I think 01:24:50 vorsprung isforth makes NO use of anything external to itself :) 01:24:53 it will allow doing that 01:25:00 eventually - of corse.... 01:25:08 but not yet 01:25:20 maybe not do *all* of tcl, but a good subset... Tcl is cool in that you have very little syntax - but enough to make things easy for the beginning programmer 01:25:37 davidw maybe i shud leran tcl :) 01:25:47 how about english? 01:26:08 learn - erm - english is over rated 01:26:30 tcl makes a good complement to a low level language like C or Forth 01:26:31 i SHOULD prolly learnt to TYPE better tho 01:26:32 heh 01:26:53 i tried to learn tcl once 01:27:07 the docs I downloaded didn't make any sense 01:28:04 heh 01:28:53 if I wanted to learn another language just for fun I'd look at ruby i think 01:29:51 i like asm and forth - i have c more and more every day 01:29:57 and i mean i TRUELY hate c 01:30:00 with a passion 01:30:51 vorsprung: check out elastiC 01:30:55 www.elasticworld.org 01:30:59 I think it's cooler than ruby 01:32:53 i used to do a lot of C, C is ok 01:33:06 ok - c isnt bad 01:33:12 its the idiots who think they can code it that are bad 01:33:27 but c encourages some damned nasty coding practices 01:33:33 heh true 01:33:35 it encourages extreeeeeeeemly bad style 01:34:16 and the language has turned into one HUGE gordian knot with all those librareis full of obfuscated #defines 01:34:39 that's one good thing about forth, it's easier to write good code 01:34:42 i direct you to the linux kernel source for a good definition of a GORDIAN KNOT 01:35:08 easier, faster, better debugged so therefore more stable 01:35:15 but "any idiot" cant code forth 01:35:22 they take one look at it and go crying to mommy 01:35:24 the only C I do now is the odd bit of fiddling with apache 01:35:39 so what do you do these days ? 01:36:14 I'm the in house perl expert at a web development place 01:37:06 cool. i wouldnt mind learning perl 01:37:13 i think larry wall is cool 01:37:35 i am told that the inner workings of the perl compiler use some very forth like threading mechanisms 01:37:47 plus larry wall is a real character heh 01:37:55 his quotes in UGF show that heh 01:38:09 yeah, larry wall rulez 01:38:37 vorsprung - you wouldnt happen to BE larry wall now would you lol 01:38:37 heh 01:39:17 heh, no I'm english 01:39:26 heh where is larry wall from ? usa ? 01:39:32 where in england are you ? 01:39:35 * davidw doesn't really like perl any more 01:39:40 I440r: he lives in the bay area 01:39:44 california, www.wall.org 01:40:11 perl does have a too steep learning curve 01:40:20 the OO could be better 01:40:33 it has too much clutter in general, IMO 01:40:36 vorsprung: i LIKE languages that have a steep learning curve 01:40:38 the syntax for complex data structures is terrible 01:40:47 I really do like the idea of simpler languages - scheme, forth, tcl... 01:40:49 yeah and lots and lots of clutter 01:40:52 c's learning curve doesnt go steep till you already know enough to do stupid code 01:41:24 vorsprung: i hate clutter. check out my isforth sources for examples of non cluttered sources 01:41:30 and i FULLY comment my ode 01:41:32 code 01:41:56 I440r, no the problem with perl clutter is that there is always 101 ways to do stuff 01:42:02 lol he looks gay :P 01:42:51 actually, he's very christian 01:42:56 I440r, so unless you really know all the weird wrinkles sometimes these bizarre bugs occur 01:43:11 yeah, larry wall trained as a missionary to china 01:43:26 then it turned out he was allergic to rice 01:43:27 I'm not really sure how off the deep end he is with it, but... 01:43:35 lol 01:44:08 davidw i didnt say i thought he was gay - i said he LOOKED it - go look at the shirts he is wearing in that web page lol 01:45:06 owww - cornea transplant ? 01:45:12 think it's the moustache 01:45:26 he used to have a beard too 01:46:52 :) 01:47:05 i used to have a tache - when i was like 19/20 01:47:50 i've never had a moustache 01:47:57 brb - need food :) 01:48:09 vor - i asked where you were located in england btw 01:50:59 south west, devon. I live on the border with somerset and work on the north coast 01:51:47 i lived in england most of my life 01:51:53 blackpool mostly 01:51:55 ugh 01:53:12 where do you live now? 01:53:46 indiana 01:53:58 usa - im originally from upstate ny 01:54:23 --- join: ult (rfsg@0-1pool7-218.nas10.nashville1.tn.us.da.qwest.net) joined #forth 01:55:20 * I440r slaps ult arround with the isforth kernel 02:08:21 ult is in nashvilel tn? im in nashville in :) 02:08:22 lol 02:13:14 --- join: ult_ (~saturn@0-1pool7-145.nas10.nashville1.tn.us.da.qwest.net) joined #forth 02:29:33 --- quit: ult (Connection timed out) 02:41:23 --- quit: Forth (Remote closed the connection) 02:41:54 --- join: Forth (~Forth@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 02:56:34 --- join: Serg_penguin (~z@nat-ch0.nat.comex.ru) joined #forth 02:56:41 hi again 03:14:28 hi :) 03:16:49 --- quit: Serg_penguin () 03:21:26 --- quit: ult_ (Read error: 110 (Connection timed out)) 03:28:29 Hey all 03:30:44 so, brain teaser of the day 03:30:56 how to write a function that mimics infix; 03:31:03 2 add 4 03:31:10 which leaves 6 on the stack... 03:31:31 Why not make the add parse? =) 03:32:07 I want to see the cleverest solution... 03:32:25 Hehe 03:33:05 add would have to be parsing 03:33:19 Well... unless you have something to terminate the expression. 03:33:27 2 add 4 calc; 03:33:31 Or somehting like that. 03:33:42 : add bl word number literal [compile] + ; immediate 03:34:22 hehe what you end up with is 03:34:33 literal 2 literal 4 + 03:34:55 i converted your 2 add 4 to a 2 4 + 03:34:56 lol 03:35:34 :) 03:35:49 You can modify constants with !>, right? 03:36:09 And vars... 03:36:25 yes 03:36:30 that code doesn't work in gforth 03:36:45 : !> ' >body ! ; 03:36:54 erm immediate 03:37:03 tho !> is usually state smart immediate 03:37:26 : !> state @ if compile %!> , eles ! then ; 03:37:31 Hehe 03:37:39 immediate of corse 03:39:03 Hmm 03:39:14 Can I send data to the parallel port from within Linux? 03:39:31 With the out instruction, that is. 03:39:35 you have to allocate the port or open the device 03:39:48 if you want direct PORT access you probably need to be root 03:39:53 I want to send to an IO port... 03:39:53 Oh 03:40:01 How can I get into a mode so I can do that? 03:40:07 I have a cool idea :) 03:40:08 su - 03:40:08 ? 03:40:09 root can do that 03:40:23 or make the program SUID :) 03:40:27 bad idea heh 03:40:55 I though about connecting a few LEDs to the parallel port. 03:41:07 And let connect my IRC bot to them :) 03:41:23 So people here can send morse messages to me when I'm trying to sleep :D 03:41:26 hehe 03:41:30 rob looked at my code yet >? 03:42:03 Yeah, I took a look at it. 03:42:11 I would prefer it if you gave us access to your pc speaker 03:42:12 Was disconnected then, so I couldn't try it. 03:42:18 we would have more fun 03:42:20 davidw: Hmm... "nice" idea. 03:42:21 :D 03:42:23 Haha 03:42:26 I bet you would. 03:42:52 Hmm 03:43:24 I could also let you play music for me... /me imagines the soviet national anthem with max. volume 03:20 in the morning. 03:50:07 http://www.google.com/search?q=linux+parallel-port+ioperm 03:50:23 :D 03:50:39 * rob_ert pets deltab with his google. 03:52:27 --- quit: air ("AIRC v0.2.0pre -- http://www.qzx.com/airc") 03:52:37 --- join: air (brand@12-254-199-50.client.attbi.com) joined #forth 03:53:56 you could write a program that gets access to the port then drops root 03:54:18 Okay. 03:54:32 Goed, dankje. 04:20:39 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 04:24:15 Hoi! 04:25:23 god dag the_rob 04:27:08 German class... 04:27:10 Bye all =) 04:28:48 hi bongo 04:30:19 hi i440r 04:30:25 morning all 04:30:37 wasn't aware there'd be that many people awake 04:30:59 t'is unusual time for your i4 04:31:12 heh 04:31:12 still or already up ? 04:32:05 already 04:32:26 went to bed at 5 pm, got up at 2 am :) 04:32:55 that's what i get when i didn't sleep the night before 04:33:31 thats what i didnt do :P 04:33:49 heya 04:33:57 so you are in some kind of productive spurt right now 04:34:43 i was last night, i made isforth work with fully hashed vocabularies 04:34:52 its a kludge what i did but its a neat kludge 04:35:02 and it will become a non kludge when i can metacompile 04:35:22 top line of the extend file is now a 04:35:22 rehash 04:35:25 isforth doesn't support forget ? 04:35:57 wasnt much point in writing forget till i had hashing working - any "non hashing" forget i wrote would be broken once hashing was implemented 04:36:03 NOW i can implement forget 04:36:04 i found forget somewhat more difficult to impl with hashed vocs 04:36:08 its on the immediate todo list 04:36:13 hrm 04:36:29 this remote control gate opener only has 1024 possible settings 04:36:32 forget is a little more difficult with hashed vocabs 04:36:38 lol 04:36:42 thats not ennuff! 04:36:47 nope 04:37:18 thats just 10 bits 04:37:21 bongo eventualy you will be able to do forgets on SPECIFIC vocabularies 04:37:24 yep 04:37:39 so if you do... 04:37:43 forth definitions 04:37:47 : foo .... ; 04:37:52 compiler definitions 04:37:55 : bar ..... ; 04:38:02 then forget FOO -bar will still exist 04:38:13 bercause its in a DIFFERENT vocabulary 04:38:20 I440r: consider a forget: construct, or name it how you want it 04:38:33 which allows you to do something like this: 04:38:45 empty everying to this point... 04:38:50 usually called empty :) 04:38:55 nope 04:39:08 er.. what then ? 04:39:10 explane :) 04:39:27 just building example ... 04:39:48 ok... i was ona different track to you tho - so continue heh 04:39:55 what would forget: do ? 04:40:25 variable foo 04:40:42 ' bar1 foo ! 04:41:02 forget: [ foo @ ] literal foo ! ; 04:41:24 : trash ' bar2 foo ! ; 04:41:36 actually, trash and forget the other way around 04:41:37 like 04:41:40 variable foo 04:41:43 ' bar1 foo ! 04:41:48 : trash ' bar2 foo ! ; 04:41:51 forget: [ foo @ ] literal foo ! ; 04:42:11 so when trash is forgotten, all forget actions behind are executed 04:42:24 in order to restore things when necessesary 04:42:33 such as execution vectors, 04:42:36 forw refs 04:42:43 bending defers 04:42:44 etc 04:42:53 to keep the system in shape even after forget 04:43:05 if someone is making a forward referene to something that they have forgotten thats THEM thats broken heh 04:43:28 there are more applications for forget actions 04:43:34 not just forw refs 04:43:36 for example, 04:43:52 you use source location pointers 04:44:06 --- quit: vorsprung ("Lost terminal") 04:44:19 per loaded file a you create a new word, filename 04:44:30 now you forget the words form that file 04:44:54 you'd want to discard filename form your soucefile list too 04:45:05 yes. fpc had each file create a word in the FILE vocabulary 04:45:12 easy with a forget: after the first word in the file 04:45:17 so you could see what had been and what hadnt been included 04:45:41 more examples: 04:45:50 loaded code bends interrupt vectors 04:45:59 forget restores interrupt vectors 04:46:40 i got such a forget, executing forget: code upon its removal 04:46:44 ooh thats nasty 04:46:55 worked great in many forget situations 04:47:02 its like a atexit for defined words 04:47:06 do this word before you forget me 04:47:24 because the action is given "locally", there where its known what to do upon forget 04:47:27 forget is a "development time" 04:47:29 thing 04:47:49 you can read vars, compile them as literals, right before you 04:47:54 modify their contents 04:48:14 unless you have the allication sealed into one vocabulary and allow new definitions at run time based on what the user does with the app 04:48:17 and restore them upon forget to what the contents where immediately before modifying it 04:48:23 i.e. some self modifying applicaiton... 04:49:07 i think old 6502 fysforth had a similar construct 04:50:00 technically, it's just "execute all forget: words with a higher address than the word to forget, in reverse order 04:50:03 " 04:50:21 that's true for words in one vocabulary 04:50:51 for multiple vocabularies, each voc might need an own anchor points for linked forget: words 04:51:01 (at least i needed that) 04:51:36 but that fits neatly into the vocabulary base structure 04:51:46 just a pointer to the next forget: word 04:51:49 or 0- 04:51:50 0 04:51:58 the forget: words link to each other again 04:52:32 that way a system could be set up to allow even forgetting "system words" 04:52:42 similar to the way vocabulaies like to each other 04:53:06 the alternative is of course to throw out forget altogether 04:53:15 ? 04:53:15 use some "mark" contruct 04:53:28 mark waterlevel 04:53:28 yes. mark and empty will be implemented 04:53:30 : foo ... ; 04:53:31 fence 04:53:34 : bar ... ; 04:53:36 waterlevel 04:53:38 foo 04:53:46 ??? foo not found 04:54:02 voc state snapshot 04:54:34 i found i don't need forget 04:54:41 especially with mark around 04:54:57 so recently, i haven't been implementing it anymore 04:55:06 yes - usually do mark empty 04:55:19 forget is stil useful 04:55:22 mark empty 04:55:25 .... 04:55:25 . 04:55:30 : foo ... ; 04:55:30 ... 04:55:30 ... 04:55:32 forget foo 04:56:34 mark empty1 04:56:36 ... 04:56:37 .. 04:56:43 mark empty2 04:56:48 : foo ... ; 04:56:51 ... 04:56:52 ... 04:56:54 emoty2 04:57:02 ?? emoty2 not found 04:57:05 ahem 04:57:09 empty2 04:57:11 ok 04:57:13 ah 04:57:14 thats better 04:57:23 marked words should still be retained 04:57:26 mark empty 04:57:29 blah blahy blah 04:57:30 empty 04:57:33 hmm 04:57:43 should forget everything AFTER the marked word 04:57:46 so you can then do 04:57:48 don't know what the standard says about that 04:57:49 blahblah blah empty 04:57:53 me either heh 04:57:57 i prefer the mark word to forget itself 04:58:19 a metaforetting word 04:58:23 metaforgetting 05:00:27 i just got a bounced email from an address i never sent email too 05:00:29 erm 05:00:32 WEIRD 05:02:57 some1 spoofed your email adress 05:03:14 or one of your programs called home 05:03:19 tried to, at least 05:05:52 no it was an email i sent but NOT to the address i sent it to 05:06:00 it bounced from n@aol.com 05:06:11 never emailed nobody called n. 05:06:29 an erroneous .forward maybe ? 05:06:42 maybe heh 05:08:47 will be going, cruising for filled rolls 05:09:36 done my 5 min worth of work for today already 05:09:38 custard!! 05:10:02 called "vla" here 05:10:25 in 20 different flavours 05:10:45 :) 05:11:01 even a "blank" flavour 05:11:07 its called crem englaise in france. its the only CREAM the french will admit the ENGLISH inventd :) 05:11:31 don't they call some illness after the english ? 05:11:44 same as english know the french disease 05:12:00 but forget what the french "english disease" was 05:12:54 ah 05:12:55 ok 05:13:04 couldn't call a disease "cream" 05:13:08 i never heared of english desease or french desease 05:13:29 french disease is some communicatable disease 05:13:55 it's some STD 05:14:23 legonaires desease ? 05:14:27 no 05:14:38 gonorroe i think 05:14:52 oh 05:15:01 didnt see STD there heh 05:15:11 so the french retaliated 05:15:28 oh yes, it is a STD 05:15:39 http://www.santafe.edu/~shalizi/reviews/subjects/french-disease.html 05:15:46 needed a moment to decipher the abbrev 05:15:57 --- quit: air ("AIRC v0.2.1pre -- http://www.qzx.com/airc") 05:16:10 --- join: air (brand@12-254-199-50.client.attbi.com) joined #forth 05:16:23 air: why don't apples fly ? 05:16:36 i am not a bot 05:16:46 hehe 05:16:47 air: ahem 05:16:48 you are so too! 05:16:51 i coded you :) 05:17:00 lol you been reading the logs ? 05:17:12 air: do you think only a bot knows the answer ? 05:17:19 --- part: I440r left #forth 05:17:19 --- join: I440r (~mark4@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 05:17:19 --- mode: ChanServ set +o I440r 05:17:22 --- mode: I440r set +v Forth 05:17:24 I440r: scrollback buffer 05:17:26 --- mode: I440r set -o I440r 05:17:27 hehe 05:21:05 air: 5 . 05:21:45 Speuler: -1 . 05:21:48 Speuler: -1 05:23:12 speuler do you know what an ackerman function is ? 05:23:27 recursive fn, time consuming on higher orders 05:23:38 yes - what does it do exactly 05:24:15 i posted my itterative fib on clf and marcel hendrix challenged me to do an itterative ackerman :P 05:24:25 ah 05:24:26 ok 05:24:55 take the recursive source of ackerman as template 05:25:09 easier than me trying to explain the algortihm 05:25:20 (would have to look at source again anyway) 05:25:24 the recursive sources is obfuscated 05:26:01 : ackf ( m n -- ack ) recursive \ ?ack 05:26:01 >> over 3 = IF 3 + >r 1 r> lshift 3 - nip exit THEN 05:26:01 >> over 2 = IF 2* 3 + nip exit THEN 05:26:01 >> over 1 = IF 2+ nip exit THEN 05:26:01 >> over 0= IF 1+ nip exit THEN 05:26:05 >> dup 0= IF drop 1- 1 ackf 05:26:07 >> ELSE >r 1- dup 1+ r> 1- ackf ackf THEN ; 05:26:16 remove the >> 05:26:22 its from a reply on clf 05:26:26 http://www.owlnet.rice.edu/~comp210/00spring/Labs/lab08/ 05:26:47 Given f, the area can be approximated by finding the area from xlo to the midpoint plus the area from the midpoint to xhi 05:26:59 One common mathematical problem is to find the area under some function f between some points xlo and xhi. I.e., given f, its integral is the area of the shape between f's curve and the x-axis. 05:27:39 woohoo 05:27:44 http://engineering.union.edu/csc140/outline140.html 05:27:45 yousers... ficl runs on ecos, too 05:27:57 hrm 05:28:06 I think I like ficl more than pforth, but we'll have to see 05:28:20 http://www.math.psu.edu/simpson/fom/postings/9912/msg00012.html 05:29:15 http://www.bumppo.net/lists/fun-with-perl/2001/06/msg00038.html 05:29:50 According to my reading of "Introduction to Automata Theory, Languages, and 05:29:50 Computation" by Hopcroft and Ullman, (1979) p. 175 Ackermann's function is not 05:29:50 primitive recursive, but is recursive. 05:30:31 http://math.holycross.edu/~csci262/assignments/homework4.html 05:30:39 I440r: 'nuff ? 05:31:06 prolly heh 05:31:10 A(0, n) = n + 1 for n " 0. 05:31:11 A(m, 0) = A(m - 1, 1) for m > 0. 05:31:11 A(m, n)= A(m - 1, A(m, n - 1)) for m > 0 and n > 0. 05:31:46 that's from the last url 05:33:52 non "practical" mathematics 05:34:01 no real life application what so ever heh 05:37:02 time to eat 05:37:59 good thunkin 05:54:31 --- quit: Speuler (Read error: 113 (No route to host)) 06:06:02 --- quit: I440r ("Reality Strikes Again") 06:06:09 --- quit: Forth (Remote closed the connection) 06:11:03 --- join: Serg_penguin (~z@nat-ch0.nat.comex.ru) joined #forth 06:11:36 re hi 06:13:38 --- quit: Serg_penguin () 06:15:14 I'm home, babe! 06:22:23 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 06:22:44 Hey ho 06:33:38 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:37:20 Hi tathi 06:42:45 --- quit: Speuler (Read error: 113 (No route to host)) 06:45:57 with 1.7k lines? 06:45:57 Yes? 06:45:57 then forth must be somewhat useless :/ 06:45:57 I mean, a compiler, interpreter and everything with only 1.7k lines? 06:45:59 !! 06:46:01 Bah :/ 06:46:10 He's used to VB being 1000MB 06:49:25 --- join: Serg_penguin (~z@nat-ch0.nat.comex.ru) joined #forth 06:49:35 hi... 06:52:36 Hi :) 06:53:42 what abt exexuting stack ? i tried but failed... 06:55:11 put cfa's of words by ' and exit, and called EXECUTE with adress of what "word" on stack... 06:55:13 afk.. 06:56:17 Uhm 06:56:23 Executing the stack itself? 06:56:44 Show me what you tried to do, heh. 06:57:33 no, it was at home... 06:58:20 yes, putting cfa's of words followed by ' EXIT and SP@ EXECUTE 06:58:39 or SP@ 4 CELLS - EXECUTE ... 06:59:08 but after what, execution pointer gone hell and box hanged... 06:59:11 k 06:59:38 k - means i listen, its from ham radio ;) 07:03:15 --- quit: tathi ("leaving") 07:03:39 --- join: I440r (~mark4@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 07:06:24 Hey. 07:06:47 hi 07:06:54 ive been searching for work online 07:07:01 is fucking depressing me :( 07:07:27 :-/ 07:07:47 Nobody wants to hire you? 07:07:59 not so far 07:08:43 Why? :) 07:09:26 market is dry 07:09:33 28947982354982 coders for every job opening 07:09:47 or i should say 2 REAL coders and 424376527462 wannabe's 07:09:47 Hehe 07:10:04 Well, like they said in #ypn yesteday, VB and Python is the future ;) 07:10:14 so if employers would just stop hiring wannab's i would have a 50/50 chance 07:10:30 what is #ypn ? 07:10:38 Young Programmer's Network ;) 07:10:42 aha 07:10:53 Also: 07:11:02 then forth must be somewhat useless :/ 07:11:03 I mean, a compiler, interpreter and everything with only 1.7k lines? 07:11:14 lol 07:11:31 A lot of people there think web programming is the future. 07:11:36 VB will rule the world, they sya. 07:11:37 say 07:11:49 did you tell him that included an assembler, debugger and interactive development environment ? :) 07:11:58 No :I) 07:12:03 Well 07:12:12 I hate web programming:-( 07:12:12 Only interactive development environment 07:12:16 davidw: Good boy! 07:12:20 oops, did I say that? 07:12:25 hehe 07:13:06 bleh 07:13:46 I440r: Where's your poll() syscall? 07:14:05 its probably defined in linux.1 :) 07:14:10 it has to be 07:14:27 Hrm... I'll check. 07:14:29 any syscall the KERNEL itself uses MUST be defined in the linux.1 file 07:14:37 and the kernel uses poll for key? 07:14:54 btw - if you REDEFINE poll its ok :) 07:15:06 Hm 07:15:07 have you made any syscall definitions ? 07:15:18 x y syscall z 07:15:24 Okie 07:15:31 where x = #parameters 07:15:36 y = syscall number 07:15:43 and z is the name of the forth word to do the syscall 07:15:51 Ugh... getting hot here, brb :) 07:20:04 arent you supposed to be at school ? 07:21:23 --- join: murrr (ammu@baana-62-165-189-112.phnet.fi) joined #forth 07:24:31 * Serg_penguin going home soon... 07:28:33 --- quit: Serg_penguin ("BELL WHISTLE dive,dive...") 07:32:49 --- quit: murrr ("MURR! end of file reached. continuing filling logs some other time.") 09:14:24 --- join: Herkamire (~Jason@AC9AE7C8.ipt.aol.com) joined #forth 09:19:36 Hey Herkamire! 09:19:37 :) 09:20:33 hey :) 09:21:06 Long time no see, mr AOL. 09:21:09 hi 09:21:29 I learned the basics of python (possibly most of it) the other night. very cool. 09:22:15 My girl is back :) we went camping 09:23:07 :) 09:23:21 heh 09:24:31 python is pretty neat :) do you guys know it? 09:24:37 yeah 09:24:42 I am still partial to tcl, though 09:25:17 what advantages does tcl have? 09:25:45 i know assembler... is that close ? 09:25:45 heh 09:25:46 I like how blocks in python are delineated by indentation only :) 09:26:12 I440r: I would have to go with a resounding "no" on that one :) 09:26:16 tcl has a simpler syntax 09:26:30 lol 09:26:31 kind of like forth 09:26:37 * I440r sulks :) 09:26:52 hehe 09:27:52 the python syntax didn't seem bad at all, but that's probably only because 90% of it was stolon from C which I've used a lot. 09:28:02 H, 09:28:14 I440r: I'm having a little problem with IsForth... 09:28:19 is there a tcl tutorial you recomend? 09:28:26 I do: blah blah sockaddr_in telnet.addr 09:28:27 www.tcl.tk has some 09:28:32 wiki.tcl.tk has others 09:28:34 But then it can't find telnet.addr 09:28:49 robert lol 09:28:49 what problems 09:28:55 Juat told you =) 09:29:01 food 09:29:02 brb 09:29:16 err do this 09:29:29 .current 09:29:29 .context 09:29:29 is current listed in context ? 09:30:24 btw. if your defining sockets things you should have the sockets vocabulary as current 09:30:34 sockets definitions <--- like that 09:30:45 only forth compiler sockets definitions <-- better 09:30:55 no need to use also - its a NOOP in isforth 09:43:02 Huh? 09:43:06 So, how should the code look? 09:43:29 af_inet swap sockaddr_in telnet.addr 09:43:38 That's what I have now. 09:44:19 err what does the swap do. look in the bot to see how i did it 09:44:24 its in msg.f i think 09:44:29 : telnet ( ip port -- ) 09:44:29 af_inet swap sockaddr_in telnet.addr 09:44:31 Okay 09:44:48 oh. do it outside of the : definition 09:44:55 not inside it 09:45:26 sockaddr_in just CREATES a named socaddr structure 09:45:35 that you can pass to the socket syscalls 09:45:50 what you did there is like doing 09:46:00 : foo variable x blha blah ; 09:46:07 trying to create variable x inside a : def 09:46:11 Uhm 09:46:13 Well 09:46:14 argh argh argh...stupid ficl...wtf is it doing, anyway 09:46:31 Heh...how should I do then? 09:47:05 the sockaddr_in is created at compile time. you COULD make a runtime version for it - i actually hadnt thunked of taht :P 09:47:14 Bah. 09:47:24 just use the compile time for now however 09:47:24 * rob_ert thinks about working at his own socket library instead ;) 09:47:28 Heh 09:47:30 Well 09:47:37 Bah ;) Quite a limitation. 09:47:39 no competing! 09:48:22 Concurrence scares you, aye? ;) 09:48:42 is tcl called td? 09:49:34 no - tclsh 09:50:09 Anyway, I'm going out... see you soon,. 09:59:54 --- quit: Herkamire ("later guys") 10:10:28 --- quit: _svara (Read error: 110 (Connection timed out)) 10:11:12 --- join: _svara (~svara@pD950B1D2.dip0.t-ipconnect.de) joined #forth 10:18:58 i modified the definiton for my ip: word - i simplified it :P 10:23:31 back :) 10:47:27 back :) 10:47:37 I440r: Any string parser yet? 10:47:57 I440r: You _really_ need to do some docs so I can find all useful words in that mess ;) 10:48:11 WHAT mess 10:48:19 j/k ;)( 10:48:24 I meant the source code. 10:48:27 parse and word are string parsers :) 10:48:29 exactly 10:48:32 WHAT mess :P 10:48:37 A reference would be good. 10:48:48 Like... categorized after name, function etc. 10:49:50 :) 10:49:52 thats what i want 10:50:10 So... go get it! ;D 10:50:53 err,,,, 10:50:54 heh 10:50:58 :) 10:51:08 You can do it! Go get 'em, boy ;) 11:00:09 --- join: mur (ammu@baana-62-165-189-112.phnet.fi) joined #forth 11:04:41 Hmm, I440r, IsForth segfaults when I try to compile my code :) 11:04:47 not when I run it, when I fload it. 11:06:32 robert show me your code 11:06:49 i know i need to be a little less sensative to SOME things heh 11:06:58 but if its segfaulting you got a prob heh 11:07:01 yiur doing somethign wrong 11:07:20 i would linke to know HOW you segfault it however 11:08:11 Hehe 11:08:16 I just found out what line 11:08:18 I'll paste 11:08:19 hmm 11:08:31 400 constant sock.buffersize \ 1kB buffer should be enough for now ;) 11:08:32 create sock.buffer sock.buffersize allot 11:08:32 create sock.pollfd 0 , 3f w, 0 w, 11:08:32 2 102 syscall 11:08:36 3rd of those lines 11:08:42 create sock.pollfd 0 , 3f w, 0 w, 11:08:50 That one seems to segfault. 11:08:56 Never had that problem before. 11:09:04 do this 11:09:06 ./isforth 11:09:08 0 w, 11:09:13 tell me if w, segfaults you 11:09:17 Without creating? 11:09:23 ya its safe 11:09:32 Yay, segfault. 11:09:37 you just LOSE 2 bytes 11:09:38 well 11:09:43 WHO wrote w, ??? :) 11:09:47 BAH 11:09:50 My first implementation worked. 11:09:54 lol 11:10:05 go fix it :P 11:10:05 lol 11:10:12 man do i have to debug everything you write 11:10:14 lol 11:10:35 lol 11:10:36 no next 11:10:40 Heh 11:11:17 nxt 11:11:20 its for/nxt 11:11:40 Now it works better. 11:11:41 I mean 11:11:41 NEXT is forths threader. in NOT defining a word that conflicts with that word 11:11:51 I forgot the NEXT in the w, definition :) 11:11:54 That was the bug 11:11:56 Fixed now 11:11:57 It works. 11:12:17 \ ------------------------------------------------------------------------ 11:12:17 \ parse in one item from a dotted quad - return its value 11:12:17 : (ip:) ( n1 --- n2 ) 11:12:17 '.' word hhere number \ parse to next dot and convert to number 11:12:19 0= ?missing \ abort if its not a number 11:12:20 dup 256 < ?missing \ abort if its out of range 11:12:23 8 u<< + ; \ shift n1 up 8 bits, add in new number 11:12:25 \ ------------------------------------------------------------------------ 11:12:27 \ create a constant ip address - note: does not convert to network order 11:12:29 : ip: 11:12:31 create ;uses doconstant 11:12:35 0 3 for (ip:) nxt , ; 11:12:37 change your sockets.f to that 11:13:16 i was sorta tired when i wrote the original code so it was a little silly heh 11:13:21 worked. but was still dumb :P 11:14:35 actually the comment above (ip:) is slightly wrong :P 11:14:40 but close ennuff heh 11:14:48 oooooops. 11:14:56 Now something went _really_ wrong 11:15:00 The screen is blue 11:15:02 lol 11:15:08 Yellow text 11:15:11 err. you got a blue screen in linux ???? 11:15:11 Beeping like hell 11:15:12 lol 11:15:14 >norm 11:15:14 D'oh 11:15:22 It's still running. 11:15:27 kill it 11:15:33 Now it stopped... 11:15:55 lol 11:15:58 what went wrong 11:16:07 Darn 11:16:10 btw i think i gotta publish this code :P 11:16:15 Whole fucking machine is fucked. 11:16:17 Well 11:16:24 ill make it free for non commercial use :) 11:16:32 did isforth fubar you box? 11:16:34 or something else 11:16:35 They'd only laugh at you if you tried to sell the old one ;) It's like 50 lines, heh... 11:16:38 Well 11:16:52 I suspect IsForth in combination with my....code...fucked it up 11:16:54 lol its work in progress heh 11:16:56 * rob_ert reboots it. 11:17:14 well you still shouldnt be able to fuck uop the whole machine 11:17:19 Hehe 11:17:19 nothing user space should 11:17:37 All terminals were totally fucked up. 11:17:47 Might have been able to SSH from this box or something 11:17:57 But I think it needed a reboot =) 11:18:02 were you doing any console stuff ? 11:19:29 WTF?! Now I got a billion Au-Revoir!s 11:19:37 lol 11:19:40 Damn... I think I screwed something up :) 11:19:48 * rob_ert checks all code he's modified again. 11:19:52 err did you chain into or modify atexit ? 11:19:58 No. 11:20:05 you modified the kernel ? 11:20:06 But maybe w, or something still is buggy. 11:20:09 Yeah :D 11:20:11 err 11:20:21 would appreciate you let me know what you changed and how 11:20:29 if i like it ill make it permanant :) 11:20:52 dont send me your whole kernel tho. just write up any changes you make and send me the changed words 11:21:05 show me the definition for w, 11:22:13 Uhm... OK 11:22:30 you realy shouldnt change the kernel :P 11:22:33 code 'w,', wcomma 11:22:33 mov eax, dword [dp] ;get next dictionary address 11:22:33 add dword [dp],2 ;allocate 2 bytes 11:22:33 mov [eax], bx 11:22:33 pop ebx 11:22:33 next 11:22:35 Why not? 11:22:52 I mean... it's safe - or would be if I knew what I was doing. 11:22:52 that looks fine 11:22:56 It is. 11:23:01 ADD to it - but dont change it :P 11:23:04 That's the fixed version. 11:23:05 Hehe 11:23:06 actually both are ok heh 11:23:13 That's what I'm doing 11:23:16 Adding shi. 11:23:17 t 11:23:32 if you change the code for some word let me knnow what you changed how and why. 11:23:38 YOU might be the one thats right :P 11:23:50 what have you added so far :) 11:25:50 Uhm... don't quite remember 11:25:52 I can check 11:25:58 But I'm really having weird problems. 11:26:07 how 11:26:12 what probs 11:26:21 Look at this code: 11:26:31 : run 11:26:32 create-socket 11:26:32 dup connect 11:26:32 dup login send-string 11:26:32 dup nick send-string 11:26:33 dup join send-string 11:26:34 dup msg send-string 11:26:37 11:26:39 bye 11:26:42 (some shit after that, but that's not run, I hope) 11:26:49 when I compile this, and execute 'run' 11:27:02 I get a million of bye mesages. 11:27:12 But of course I should only get one. 11:29:11 lol 11:29:18 Heeeeeelp! 11:29:25 erm im thinkin 11:29:27 What's going one here? 11:29:29 :) 11:29:40 comment out everything from create-socket to close 11:29:44 all of them 11:29:56 Sure 11:29:58 so you basicaly just have : run bye stuff ; 11:31:00 Then it just exits. 11:31:06 rite 11:31:18 so. something above the bye is fscking over atexit :) 11:31:26 or sys exit 11:31:39 show me create-socket 11:31:47 Might be my new syscall definition. 11:31:54 err very probably 11:31:56 erm 11:31:58 show me it 11:32:07 Earlier I added in linux.1 11:32:13 Now it looks like: 11:32:20 2 102 syscall 11:32:33 (That's stolen from your code...) 11:32:40 thats already defined in sockets.f lol 11:32:47 you cant do that inside socket.1 11:33:03 all .1 source files are assembled 11:33:06 not compiled 11:33:26 Uh 11:33:27 and socketcall shouldnt be defined in the kernel 11:33:34 Nah, I know, 11:33:37 the kernel doesnt USE the socketcall syscall 11:33:46 But before I knew of the word "syscall", I did. 11:33:49 it belongs in an extension 11:34:01 Now I'm adding with "syscall" 11:34:32 where 11:34:36 from what source file 11:34:49 socket.f (my one) 11:34:51 ok 11:35:02 well its not your socketcall syscall definition thats fucking up 11:35:06 its something else 11:35:13 Yay... 11:35:23 I could uncomment them one at the time 11:35:35 might be a plan :) 11:35:41 your learning to debug forth :) 11:35:56 Uhm 11:35:59 Now.. 11:36:05 When I uncommented create-socket 11:36:16 I get _one_ extra Au-Revoir! 11:36:26 well create-socket is wrong :) 11:36:29 show me its definition 11:36:36 is it a creating word ? 11:36:46 : create-socket ( -- ) 11:36:46 PF_INET SOCK_STREAM IPPROTO_TCP socket 11:36:46 ; 11:36:48 No. 11:36:48 if not - might be better to call it allocate-socket 11:36:55 : socket ( domain type protocol -- socket ) 11:36:55 3 1 socketcall 11:36:55 ; 11:37:04 btw, your allocate-socket = my socket 11:37:22 Hmm... 11:37:36 I remember I used 3 parameters to the socket syscall before. 11:37:47 WHen I had the definition in linux.1 11:37:53 I'll try that again to check. 11:38:04 LOL!!!! 11:38:07 102 is decimal 11:38:10 I'm doing hex 11:38:12 isnt that PF_INET supposed to be AF_INET ? 11:38:13 FUCK! 11:38:18 they are the same value so its not wrong 11:38:23 Doesn't matter, #define PF_INET AF_INET 11:38:27 Yeah... 11:38:38 s/102/66/ 11:38:41 but PF is not used 11:38:55 yes. you were in hex ? 11:38:56 lol 11:39:13 ALWAYS keep base in decimal 11:39:22 you dont need to change base to enter numbers of a different base 11:39:28 unless you are entering numbers in base 23 11:39:31 etc 11:39:36 $01 hex number 11:39:38 Bah 11:39:44 %0100110 binary 11:39:45 And you tell me that NOW? 11:39:47 Bah ;) 11:39:50 \777 octal 11:39:52 * rob_ert is ashamed. 11:39:55 lol 11:40:04 lol 11:40:25 another thing you should do. if you change current at the top of your source file 11:40:29 foo definitions 11:40:36 at the end of the source file you shouold always do 11:40:38 forth definitions 11:40:42 Okay. 11:40:47 "socket definitions" then? 11:40:53 yes 11:41:05 vocabulary sockets to create that vocabulary if you didnt already 11:41:12 then you could do 11:41:21 only compiler forth sockets definitions 11:41:32 that puts root compiler forth and sockets in context 11:41:42 with sockets at the top of the context stack 11:41:50 definitions copies top of context to current 11:41:58 im assuming you know what current is 11:42:26 Another thing... how do I allocate/deallocate memory? 11:42:42 "current"? 11:42:44 What's that? :) 11:44:08 its like a rasin but different :) 11:45:29 Oh... I see. 11:45:31 (...) 11:46:35 eh >? 11:47:23 Huh? 11:47:58 lol 11:48:04 does the code work now ? 11:49:11 No... still some error. 11:49:23 * rob_ert will check for more stupid errors. 11:50:25 Hehe 11:50:32 : connect ( socket -- ) 11:50:32 addr sockaddr.size connect 11:50:32 ; 11:50:40 Isn't that beatiful? 11:50:50 That really demonstrated my coding skills ;) 11:51:06 does it work ? 11:51:18 why define a "sockaddr.size" 11:51:31 just put 16 in the sources and comment what it is 11:51:44 making a definition for everything just visually clutters the sources :P 11:52:24 Heh 11:52:44 "does it work?" <-- Do you _really_ think a recursive connection word will work :)) 11:53:15 we store the value of PI in a variable so taht should the value of PI ever change... 11:53:18 its not recursive 11:53:24 it doesnt call itself 11:53:36 if that word compiled its calling a prior word called socket 11:53:49 to be recursive you would have to do 11:54:06 : connect ( socket --- ) addr sockaddr.size recurse ; 11:54:08 :) 11:54:43 : connect we have just crated a new dictionary header but its not revelaed yet so FIND knows nothing of it ; now its revealed so we can use it 11:55:05 Hehe 11:55:16 Anyway, you could see that was a mistake :) 11:55:20 so you have a p[revious definition called socket 11:55:23 rite ? 11:55:29 :) 11:55:40 Uhm... "connect", you mean? 11:55:47 And yes, I had. 11:55:51 yes i mean connect 11:56:34 Darn... I've spent the time I should have used for homework on this :) 11:57:32 lol 11:57:44 but did you get it WORKING yet!!! 11:57:45 lol 11:57:52 Well... forth > homework anyway ;) 11:57:56 Hehe 11:57:58 Nah, not yet 11:57:59 Soon ;) 11:58:10 sure.. sure... :) 11:58:19 hah 11:59:09 --- part: I440r left #forth 11:59:09 --- join: I440r (~mark4@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 11:59:09 --- mode: ChanServ set +o I440r 11:59:31 --- topic: set to ' Well... forth > homework anyway ;)' by I440r 11:59:37 --- mode: I440r set -o I440r 11:59:59 had to be done :) 12:01:02 Hehe 12:01:51 hey - you know your important when people start quoting you in the topic :) 12:02:36 How do I exit a colon definition? 12:02:39 lol 12:02:48 exit :P 12:02:55 unless you are inside a do loop 12:02:58 I know I said something stupid when people are quoting me in the topic ;) 12:03:02 Well 12:03:06 then you do undo exit 12:03:07 :) 12:03:08 lol 12:03:17 That gives me a stack underflow 12:03:26 what does 12:03:44 then you removed something you shouldnt have prior to the exit 12:03:50 hehe 12:03:58 : foo noop noop exit noop ; 12:04:05 the last noop never gets executed :) 12:04:14 I think I have something on the stack when exit is called. 12:04:34 put a .s before the exit 12:04:41 : foo noop .s exit noop ; 12:05:03 lol 12:05:04 I found it 12:05:08 I did, btw 12:05:16 you found what 12:05:17 I called the wrong word (again!!!) 12:05:20 THE bug ? 12:05:23 lol 12:05:34 stop confuzing yourself 12:05:37 :)) 12:05:38 use MY sockets lib :) 12:07:04 --- join: forthbot (~forthbot@h237n2fls31o965.telia.com) joined #forth 12:07:04 I440r: It's working better now :) 12:07:10 Finally! 12:07:19 Bah, mine works better ;) 12:07:30 But don't worry, I'll steal all the good parts from yours. 12:08:18 So... 12:08:19 ALL of mine is better :P 12:08:24 im just too lazyy to actully make my BOT do anything heh 12:08:33 Now I'll try to turn that piece of crap into something. 12:08:34 Hehe 12:08:36 Well 12:08:41 I'll play some. 12:08:44 i could do a 80 expect in the terminal the bot runs in and bot-type it 12:09:00 Oh, well... bbl =) 12:09:24 i'm bored 12:09:34 I440r: can I try something on your bot ? :D 12:09:52 it doesnt do anything 12:09:56 and its not in here :) 12:10:08 uhm 12:10:09 oh 12:10:23 I meant rob_ert's bot :D 12:11:04 --- quit: mur ("MURR! end of file reached. continuing filling logs some other time.") 12:11:30 lol 12:17:07 --- nick: _svara -> svara 12:17:16 hi 12:17:24 hang on brb 12:41:34 argh - forget is going to be a nightmare! 12:41:35 lol 12:41:47 i just realised a few problems ill have to figure out to do it :) 12:41:51 * I440r goes to think some 12:47:34 --- join: Gilbertyoda (~gilbert@max2-89.dacor.net) joined #forth 12:52:39 :) 12:53:07 so is isFORTH ready for the most important OS yet? 12:53:24 nope :( 12:53:33 and it wont be unless i can find a BSD coder! 12:53:53 i wish it was :( 12:53:54 * Gilbertyoda mumbles incoherently about programming 12:56:20 you could always install linux :) 12:56:25 bah 12:56:50 the Daemon shall squash the penguin 12:57:03 not possible 12:57:11 we steal too much of your code for that to happen :) 12:57:27 And when the penguin grows up, it will be like the Daemon ... and the multitude shall behold and declare 'the penguin is now like the daemon, our work is done'. 13:10:45 --- quit: forthbot (Remote closed the connection) 13:12:11 --- join: ^^^3l33t_b0t^^^ (~l33tbot@h237n2fls31o965.telia.com) joined #forth 13:12:12 <^^^3l33t_b0t^^^> i ph33r u, I440r!?$#?!!! 13:12:32 (forth bots can be lame) 13:12:39 Anyway..bbl again 13:12:48 :) 13:28:20 is everyone half asleep again? 13:28:28 im job searching 13:28:43 I thought you had a job smithing guns? 13:29:21 --- quit: Gilbertyoda (Remote closed the connection) 13:29:25 not paid 13:29:33 not till we have a gun we can sell 13:29:52 i need $45+ per hour just to stay afloat now 13:40:45 H3h3 13:40:49 Erm 13:40:49 hehe 13:40:55 That's alot of money., 13:41:03 You won't get that by cleaning someone's house. 13:41:12 :) 13:41:51 * rob_ert plays "Happiness is a warm gun" for I440r. 13:42:16 "...I need a fix, 'cause I'm going down..." 13:42:36 Hope it won't go that far with The Father Of IsForth though ,) 13:45:19 --- join: Gilbertyoda (~gilbert@m138.max3.dacor.net) joined #forth 13:45:42 Hey yoda. 13:45:52 hehe. Have you seen it? 13:45:55 --- join: geqo (~geqo@as7-1-5.kp.g.bonet.se) joined #forth 13:46:00 Now I have, 13:46:04 It's ugly! 13:46:07 Noooo! 13:46:10 (I suppose you mean geqo) 13:46:12 yes may be. 13:46:15 no. 13:46:17 hahaha 13:46:20 Oh 13:46:23 What then? 13:46:24 ^^^3l33t_b0t^^^: hi! 13:46:25 have you seen star wars 2? 13:46:30 geqo: :D 13:46:31 Nope. 13:46:49 * geqo has 13:46:52 geqo: Jag skall låta honom kontrollera LEDs sen =) 13:46:54 geqo: Fuskis... 13:47:09 rob_ert: okej.. vad gör han nu? idlar? 13:47:20 Japp... konstigt att han inte pingar ut. 13:47:33 Stått på en timme utan någon trafik. 13:47:41 Skumz0r. 13:47:49 mycketz0r 13:48:13 ja!$#!!! 13:48:29 * rob_ert points at topic. (apropå #ypn= 13:51:22 i think i can read the word skumz0r there :) 13:52:09 rob_ert: vilken forth använder du? gforth? 13:52:21 geqo: nanoforth 13:52:24 and isforth 13:52:30 because robertforth sux 13:52:44 Gilbertyoda: er, absolutely 13:53:01 :D 13:53:20 rob_ert: does that say what you were going to say? 13:53:23 ;) 13:54:22 rob_ert: did you copy those definitions for ip: etc i pasted here ? 13:54:29 into my sockets.f ? 13:55:17 if so - change the dup 256 < into a dup 255 > 13:55:18 heh 13:56:33 lol and the 3 for into a 4 for (lol i realy should test my code) :) 14:09:24 --- quit: rob_ert (Read error: 110 (Connection timed out)) 14:09:54 --- quit: ^^^3l33t_b0t^^^ (Read error: 110 (Connection timed out)) 14:19:14 --- part: Gilbertyoda left #forth 14:24:25 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 14:24:42 hihi! 14:26:11 howdy 14:26:35 davidw: are you currently writing a forth? 14:28:08 hi mrreach 14:28:09 trying to do forget now :) 14:28:40 hihi, I440r, was hoping you'd be here 14:28:56 :) 14:29:09 * I440r whistles innocently 14:29:35 I can't get the idea of a robust cross-platform forth out of my head 14:29:46 it's nagging at me 14:30:43 the idea to DO one? or - isforth <-- make it robust and cross platform ? 14:30:59 erm ... what's the difference??? 14:31:11 the only real way to do a cross platrorm forth is to code it in c :) 14:31:20 isForth is as good a place to start as any other, and better than some 14:31:28 fiddlesticks 14:31:29 thanx heh 14:31:49 hehe now thats a term ive not heared in a while :) 14:32:02 heh 14:32:03 what IS a fiddle stick anyway ? 14:32:16 haven't a clue 14:32:17 * I440r has never "fiddled" with sticks :) 14:32:22 me too :) 14:32:37 ok. so what is the idea 14:32:45 well actually 14:32:50 you've ehard me talk about it before 14:32:55 it just won't go away 14:33:03 isforth being cross platform (not cross architecture) was always planned 14:33:10 was getting the two mixed up above 14:33:21 i WANT it to work in fbsd too! 14:33:27 ok 14:33:27 but that might not be do-able 14:33:37 n : a bow used in playing the violin [syn: {violin bow}] 14:33:41 if it works in ms doze then thats fine :) 14:33:57 a fiddle stick ? 14:34:01 yes 14:34:10 another word for "bow" 14:34:33 so how did it become equivalent to "bullshit"??? 14:34:33 horse feathers is what i usually say :) 14:34:52 heh 14:34:54 maybe its related to the way some people play ? :) 14:35:01 ha! 14:35:20 erm ... I'm thinking of a rather larger project, I440r 14:35:29 define "larger" 14:35:37 isforth is already quite a large project 14:35:56 btw i was planning on making fload do the following (wouldnt work in all operating systems) 14:36:04 1: memory map source file 14:36:12 2: set tib to memory mapped buffer 14:36:19 3: set #tib to filesize 14:36:42 one 59824586232 gig source file compiled in .0001 of a second :) 14:36:42 linux, freebsd, bsdi, various unices, windows, MacOS, with full file interfaces, system services, sockets, windowing, etc etc etc 14:37:15 the important thing is that it is completely uniform across all platforms 14:37:21 mrreach i want ALL of the above (would live without windows tho :) 14:37:27 definatly 14:37:39 well, windowing apps are easier to use 14:37:41 does windows do memory mapping of files ? 14:37:47 and end-users have come to expect them 14:38:05 in linux when you read chars from a file the kernel BUFFERS those characters in kernel space and has to PASS them to user space 14:38:08 this all takes time 14:38:10 * MrReach laughs out loud, "They rather pioneered memory mapped files" 14:38:18 --- join: thefox (fox@adsl-209-182-168-45.value.net) joined #forth 14:38:18 --- mode: ChanServ set +o thefox 14:38:23 memory mapping the file is much faster 14:38:27 thefox!! 14:38:27 greetings, thefox 14:38:42 i see chanserv is paying attention :) 14:39:00 hello 14:39:01 heh 14:39:07 does windows BUFFER file reads in kernel space the same way ? 14:39:16 we were talking about my plans for fload 14:39:31 memory map the source file, set tib to memory map address, set #tib to file size 14:39:33 yes, all advanced (read beurocratic) OSs do that 14:39:41 lol heh 14:39:48 do file buffering, I mean 14:40:07 it's kinda hard not to, considering how hard drives work 14:40:08 yes. but they might buffer in user space for all i know heh 14:40:41 problem is i need to discover the file size so i can pass it as a parameter to the mmap syscall 14:40:54 even if they do ... it's not something you want to mess with with apps 14:41:01 but even if thats slow the overall compile time is going to be orders of magnitude faster i recon 14:41:16 --- quit: svara (Connection timed out) 14:41:30 yes, the same idea has occured to me ... in in DOS forths 14:41:38 even in DOS forths 14:41:42 yes 14:41:55 when >in = #tib i just unmap the file :) 14:42:08 of corse, if people nest floads too deeply..... 14:42:22 isforth only allows 5 levels of that sort of stupidity tho so... heh 14:42:29 by default i mean 14:42:42 anyway, I thought I might bring what's nagging up here, because I think it would be beneficial for Forth in general 14:42:50 it would 14:43:13 I440r: why impose an artificial limit? 14:43:14 trouble is Linux isforth is quite a large project just by itself 14:43:36 i havent even TOUCHED the dox side yet 14:43:46 its not artificial, YOU can change it 14:43:54 i just set a sane default 14:44:13 i also state in my source files why i consider it bad practice to nest includes too deeply 14:44:16 is there like a memory table that holds file descriptors or something? 14:44:19 i think i covered it with you once 14:44:26 yes, you did 14:44:30 theres an fload stack 14:44:42 need to save certain values for each nested fload 14:44:54 like #tib, 'tib >in etc 14:45:23 ok, when I wrote my forth, I nested by placing enough info on the return stack to restore the input source later, then just called recursively 14:45:43 so there were no limits on levels of stacking inputs 14:46:13 however, there was quite some overhead in restoring an input source, refilling buffers, etc 14:46:17 ; i shall probably rename fload when i can think of a better name but the 14:46:18 ; word 'needs' and its variants will never be part of isforth. add them 14:46:18 ; yourself if you realy gotta (sorry mrreach :) 14:46:18 ; 14:46:18 ; rationale... 14:46:18 ; 14:46:20 ; foo.c includes foo.h 14:46:22 ; foo.h includes bar.h and futz.h 14:46:26 ; bar.h includes whussit.h and bleh.h 14:46:28 ; futs.h includes the already included bleh.h and.... 14:46:30 ; 14:46:33 ; what you end up with is an include tree. you have absolutely no idea 14:46:34 ; which files included which files and it is highly probable that you 14:46:36 haha! 14:46:36 ; are totally oblivious to some of the files that 'were' included. 14:46:49 ; what you shoud have is a single load file including all the required 14:46:49 ; source files. if one of those files relies on some other file then 14:46:49 ; it should not include it itself. 14:46:59 ; if your compile aborts with "bleh ?" you should know which file it was 14:47:00 ; that you forgot to include. if you dont then grep is your friend 14:47:13 i actually toned down that last paragraph there heh 14:47:15 thanks, but I remember your rational 14:47:21 ah 14:47:40 well i dont LIKE forcing good practices on users - i just ENCOURAGE them 14:47:56 the only place so far i actually enforce it is with my case: 14:48:03 which btw i added a default to :P 14:48:06 I think you would have a problem in participating in the project I'm thinking about, though, because it probably cannot be done simply 14:48:24 cool, that's very useful 14:48:41 if it means adding alot of conditional compilation im against it 14:48:56 that's an implementation detail 14:49:02 what you get then is 50 different versions of the compiler with all the sources interleaved 14:49:19 well, probably not interleaved like your thinking 14:49:21 if it doesnt mean doing that sort of BS why would i be against it 14:49:36 I always felt the programmer should manage which files get loaded. Otherwise you need all those words like INCLUDED? REQUIRED POSSIBLY etc. 14:49:59 there would certainly be a primitives file for each platform 14:50:09 i already have some LIMITED conditional stuff in my macros.1 - (the fox - thats exactly my take) 14:50:19 the high-level words could probably be pretty straight forward 14:50:31 mrreach make linux copies linux.1 to syscalls.1 - the build includes syscalls.1 14:50:33 Just don't do what MPE did in the file interface in ProForth for Windows. 14:50:45 make freebsd copies freebsd.1 to syscalls.1.... 14:50:55 thefox: what did they do that bothers you so much? 14:51:04 what did they do??? 14:51:11 * I440r is curious 14:51:11 do you mean the "input descriptor blocks" sort of thing?? 14:51:36 one thing they did ... 14:51:49 was setup a table of vectors for each input device 14:52:31 so that when you did an EMIT to a serial port, it fetched and executed a different vector than when you did an EMIT to the console 14:52:53 thefox: is that what you're refering to?? 14:52:54 well emit is defered in isforth - so is key 14:53:13 When you included a file with an include or fload statement it would first save the file pointer to present file and close it before opening the next. Eventually it would reopen the first file, reread it, and reposition to the old place. When combined with corporate mandated virus scanning software some files had to be opened and reread hundreds of times instead of just once! Now that's optimization! 14:53:50 i dont think defered words should be used to do forward referencing tho 14:54:06 thefox - isforth leaves open files open till EOF 14:54:22 heh, yeah, that was obviously an unexpected side-effect of installing virus scanners 14:54:40 has anyone here actually seen a virus in the wild ? 14:54:41 i never have 14:54:49 yes 14:54:59 didn't do any damage, though 14:55:18 not that I could find, anyway ... I had to reinstall sindows 14:55:30 just a waste of time and energy 14:55:40 anyway, if we were to make isforth multi platform - where would we start 14:55:40 The anti-virus software only doubled the problem of reading hundreds of time more than needed. 14:55:52 lol 14:55:56 thefox: are you Jeff Fox? 14:56:01 --- join: Blandest (~blandest@h24-65-137-230.ed.shawcable.net) joined #forth 14:56:04 mrreach yes he is 14:56:11 Hello. 14:56:11 mrreach didnt yo know taht ? :) 14:56:16 hi bland 14:56:32 jeff skip carter comes on this network btw :) 14:56:42 in fact he is online now :P 14:56:50 say hello to skipC :) 14:56:54 I440r: let's not think "make isforth multi-plat" ... let's think "make a multi-plat forth" ... and rape isforth for source if convenient 14:57:14 greetings, Blandest 14:57:15 mrreach i am opposed to neither method :) 14:57:31 but you asked where to start ... 14:57:40 yes 14:57:57 I'd start with a list of capabilities that seem to be common to all platforms 14:57:59 the actual "core" words in isforth would be a piece of cake to port 14:58:28 that would take someone knowledgable about all proposed platforms methunks 14:58:43 for instance, you seldom see a "dir" command in forth, much less one that is unifoorm across platforms 14:58:47 knowledgable of ? erm 14:58:59 but at the same time, nearly all platforms have a filesystem 14:59:05 that topic came up on CLF not long ago i think 14:59:32 which? a "dir" command? 14:59:32 i would say make one word to read a directory and alias it to all the common names 14:59:48 i think so - might have been in CLA tho 14:59:55 which, btw, is rather distinct from being able to manipulate file lists in an apps 14:59:57 i ferget things.... its old age :) 15:00:05 yes 15:00:19 i NEED some string and file stuff for isforth actually 15:00:32 another one is uniform timer and clock functions 15:00:44 erm thats more difficult 15:00:57 different platforms store the date in different formats 15:01:16 right now isforth calculates current date/time based on seconds since epoch 15:01:17 the interface can be simple, but the underlying code only needs X hours of thought for each platform 15:01:20 but - unix epoch isnt the same as dos 15:01:27 right 15:02:02 in fact, the how the epoch is calculated shouldn't be important to the app 15:02:05 you could have a main source directory with the different platform specific sources under /dos /macos /linux /fbsd 15:02:06 etc 15:02:15 * Blandest wonders if any serious AI work has been done with Forth? 15:02:25 only that it can be stored, formatted into a string, and is repeatable 15:02:25 thefox would know 15:02:31 mrreach prolly too :) 15:03:05 yes, that is probably how I'd do it 15:03:30 isforth doesnt store the compiled date/time string... 15:03:36 it builds it on request... 15:03:37 and in each, a dir.4th file.4th time.4th timer.4th sockets.4th etc etc 15:04:00 yes. platform specific stuff. 15:04:18 It was an article in AI magazine in 85 that encouraged me that I was on the right track doing AI work in Forth. Personal Expert Systems in Forth is a good resource. 15:04:20 yes, but once you have it, you know what size it is, can store it, use it later ... add and subtract from it for relative calculations 15:04:35 if there was common code in all file.f's you could have a GLOBAL file.f with the OS specific one in the os specific dir... 15:04:42 this is a HUGE project mrreach 15:04:55 i think it would take more than just me :) 15:05:03 which is basically what isforth currently has 15:05:16 I know that ... that's why I've been trying to ignore it 15:05:28 but it won't go away ... it keeps nagging at me 15:05:33 heh 15:05:36 --- quit: geqo (Remote closed the connection) 15:05:59 That book has expert systems, a LISP, and some Prolog in Forth, add neural nets to the expert systems and integrate the compiler and OS and you can do the same sort of things are LISP on LISP machines on really cheap hardware. 15:06:10 you don't know how much I appreciate the uniformity in TCL ... and how I wish forth were similar 15:06:31 I see. I appreciate the reference and I will look into it -- thanks. 15:06:48 one forth that works the same on all platforms..... would be nice 15:06:57 but it would also take ALOT of work 15:07:03 I have been thinking of writing an article on Structures and Files the Forth way. 15:07:07 does the forth community have enough man-hours to contribute to realize the project??? 15:07:09 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 15:07:14 greets, Speuler 15:07:23 thefox i just added structures to isforth heh - mrreachy showed me his code :) 15:07:26 g'd evening mrreach 15:07:36 * davidw has got ficl running on ecos, now... I think I like it more than pforth 15:07:37 hi Speuler 15:07:37 hi all 15:07:41 hello Speuler 15:07:59 I440r: does the forth community have enough man-hours to contribute to realize the project??? 15:08:22 might the project get bogged down in disagreements about APIs? 15:08:35 this small part of it right here does. but unless i get PAID work real soon im going to lose this house :P 15:08:57 that's not good 15:09:05 mrreach i think a project like this should have a committee and NOT be a democracy 15:09:19 argh, damn forth mode...f(*&(* 15:09:22 i.e. we can have "meetings" but in the end it WILL be done the way "the master" says 15:09:23 yes, much open source is like that 15:09:49 we dont want a "cammel" like the ans standard 15:09:56 a cammel being a horse designed by a committee 15:10:04 how many forth coders would tolerate that kind of environment? 15:10:17 if they cant we can always show them the door:P 15:10:23 how many would support it? 15:10:47 only one way to find out. btw - im not suggesting "I" be the head honcho here heh 15:11:09 i have enough problems just "managing" isforth :P 15:11:37 you're going to devise a new forth standard ? 15:11:48 well, I'd take the job, but I need lots of input to help define what the actual needs are 15:11:57 speuler he was thinking of making a multi platform forth. 15:11:59 no, not exactly, Speuler 15:12:11 possibly using isforth as a starting point 15:12:22 I was thinking a robust cross-platform, uniform forth 15:12:32 a new standard wouldnt be a bad idea tho. i havent seen an existing one i actually like 15:12:39 it's an idea that just won't leave me alone 15:12:44 a minimalistic forth, i presume ? 15:12:51 yes and no 15:12:52 but the size of such a project intimidates me 15:13:05 no, not at all, Speuler, quite the opposite 15:13:08 isforth will probably end up HUGE if it gets the chance to 15:13:17 it would end up *HUGE* 15:13:21 but 99.99999999999999999% of it will be "options" 15:13:51 oh. another thing tho.... inter-source dependancies. 15:13:54 BAD 15:14:18 load manager handles that 15:14:23 x depending on y depending on z depending on a b and c.... same problem with fload 15:14:25 no 15:14:39 the LOAD manager is "the keyboard actuator" 15:15:00 Speuler: the idea is something like tcl ... VERY uniform across all platforms, lots and lots of system services available 15:15:14 MrReach: tcl has too much stuff in the core 15:15:21 --- join: Fare (~fare@samaris.tunes.org) joined #forth 15:15:22 Speuler: this is an idea completely seperate from isforth 15:15:29 mrreach isforth is already capable of ANY system service in linux. all you need to know is the syscall to handle it 15:15:29 * MrReach nods. 15:15:41 you can add handlers for any syscall at any time 15:16:03 I440r: syscalls are pretty low level - tcl abstracts that to provide a uniform interface 15:16:14 please show me how to load a shared library and call into it (.so file) 15:16:36 davidw so does isforth :) but without the need of some middleman or computer mommy to hold your hand :) 15:16:59 additional care needs to be taken concerning robustness of the system once it grows 15:17:00 i dont believe in "hiding the system" from the user. making it more managable is great 15:17:06 I440r: it doesn't abstract anything, really, because it just runs on one platform... you haven't dealt with the hard stuff 15:17:13 anyway, I'm thinking *WAY* high-level (i.e. abstract) APIs 15:17:13 hi Fare 15:17:20 there are cases when 'hiding the system' is beneficial 15:17:20 davidw er,,, what hard stuff:) 15:17:30 so one would need a small, robust forth first 15:17:34 davidw protecting the users from themselves.... 15:17:36 very c'ish 15:17:53 I440r: like how to get a file list on linux, windows, and macos in a uniform manner 15:18:07 no, making the system look the same whether it's linux, windows, freebsd, macosx, digital unix, or whatever 15:18:11 mrreach - one sends each through a filter :) 15:18:18 can we put headers into an sql database ? 15:18:42 Speuler: we *CAN* ... would that be benificial somehow? 15:18:50 heh 15:18:56 that's a cool idea, actually 15:19:00 MrReach: could be, could be 15:19:12 are you thinking distributed computing? 15:19:20 KISS <-- keep it simple... stupid 15:19:28 also, search/compilation time 15:19:32 simplifying code 15:19:45 how would it simpify code ? 15:19:49 modularizing functionality 15:20:04 I440r: you wouldn't need to implement hashing 15:20:21 right, FIND doesn't _have_ to search an in-memory dictionary 15:20:41 speaking of portability what provision is in the plans for systems on Forth chips? 15:20:49 speuler hashing is the perfect solution - having all headers in some database means having to open that database and search it using some external program... 15:20:51 hashing ... leverage developments in database theory 15:20:56 how is that simpler ? 15:21:00 --- join: tcn (tcn@tc2-login14.megatrondata.com) joined #forth 15:21:00 --- mode: ChanServ set +o tcn 15:21:03 hey 15:21:14 thefox ive never worked with any! wish i had! 15:21:19 thefox: was that to me??? 15:21:22 tcn good boy :) 15:21:33 tcn wheres my assembler :P 15:21:33 eh wtf? 15:21:53 for showing up i mean heh :P 15:21:57 thefox: uh... you tell us 15:22:07 hehe 15:22:10 whoever is planning this at this time. Will it require Unix/Linux/DOS/Windows/... ? 15:22:22 thefox - all of the above i believe 15:22:29 is the plan 15:22:29 thefox: parallelism ? 15:22:41 I had been presuming an underlying OS of some type 15:23:09 if no underlying OS - forth woudl have to be the os... 15:23:17 the idea being a forth that could be downloaded for whatever type of machine you happened to own ... and it would work as all other machines 15:23:34 now we just turned a huge project into one of astronomical proportions 15:23:39 MrReach: I have a bootable version of that:-) 15:23:50 also, a forth such that when writing an application, knowing it will run on all machines 15:23:50 more or less... 15:23:52 "would have too" ? i find that often preferrable. 15:24:13 does anyone here use Enth? I'm just curious. 15:24:14 i440r:if no underlying OS... 15:24:28 speuler sure on an embedded system - but try just supporting all the video devices linux supports 15:24:58 plug in low level code, have higher level words available 15:25:01 ahem 15:25:01 Blandest: I've tried it.. 15:25:05 write low level code 15:25:05 then you have ISA, PCI, USB.... little flees have smaller flees upon their backs to bite em... 15:25:08 why don't you just use gforth in place of init;-) 15:25:13 heh, one would use systems services whenever possible ... but at times they will have to be written from scratch 15:25:25 davidw not gforth! ISFORTH!!! 15:25:31 There are many ways to approach parallelism and distributed databases and a portable Forth layer on those platforms would be very nice. It would be even nicer if a cheap Forthchip platform could run a compatible version of the software and join in on the distributed effort. That is why I asked what the current plan included. Was this to be a layer on top of other OS, or a stand alone OS option? 15:25:35 heh my scripting is just as good as his :) 15:25:35 we are talking about portable, not isforth 15:26:02 tehfox - it could be both 15:26:04 thefox: a layer on another OS, basically 15:26:33 this is not something I'm building or planning ... it an idea that will *NOT* leave me alone 15:26:54 Blandest: I know a little about Enth. It is intended to be used as a source toolkit. 15:26:57 call it a rash, if you want 15:27:02 people in the mental health industry call that an 'obsession' 15:27:03 it would need alot of support - and possibly some financing 15:27:08 yes 15:27:28 * I440r goes to find a rich benefactor :P 15:27:56 at first glance, it would be immensely beneficial to the forth community ... but I wonder 15:28:06 you could write a forth to the java vm 15:28:16 I440r, bring one back for me, and I think Chuck could use one one too! 15:28:26 we do these things not because they are easy... 15:28:34 * davidw wants to go one step better - a rich wife 15:28:36 tehfox if i find one you and chuck can have him for sure :) 15:28:55 davidw! now THERES a plan! 15:29:34 I worked a project like that a couple of years ago for a few months writing design papers mostly. It was very nice to get paid to think about the problem. 15:29:41 the java vm is extremely tied up in oo-ness 15:29:42 anyway, would such a thing be useful to any of you??? 15:30:11 thefox errr... wanna write my dox ??? :) lol 15:30:25 Etaoin: oh... hrm.. pity... 15:30:26 I'm sure fox would if you were to pay him 15:30:35 :) 15:30:45 if i win the lottery.... 15:30:52 err... do i need to buy a ticket ? 15:30:54 hey I440r.. didn't you used to work for siemens? 15:31:01 yes 15:31:02 why 15:31:11 PT&D - no longer called that tho 15:31:14 MrReach: I think people not of the linus/rms caliber don't just go and start huge projects - they build on smaller ones 15:31:21 i think they are just metering division now or something 15:31:27 oh we saw a tape of a siemens machine w/ an embedded cpu 15:31:27 which means finding something to do *quick* that produces results 15:31:38 what sort of machine 15:31:46 elbow machine 15:31:56 never heared of it :) 15:31:57 davidw: heh, you're saying I'm not of Torvalds caliber??? 15:32:04 maybe expanders too.. for steel tubing 15:32:14 MrReach: no offense, but...;-) 15:32:20 * MrReach laughs. 15:32:26 oh rite - now i know what you mean - siemens makes those too ? 15:32:33 for one, linus doesn't hang out on irc - he's too busy coding 15:32:49 anyone used a transmeta cpu yet? 15:32:59 davidw linus is a great talker but his coding style sucks. his coding ability is of the finest 15:33:03 its his style that sucks 15:33:14 what is it with forth people and aikido? does using this language make you want to hurt people or what? sorry... cheap shot 15:33:33 i do wing chun:P <-- absolute beginner tho heh 15:33:34 yeah, hurt bill gates! 15:34:01 the term "rugged individualists" might come into play there 15:34:22 * I440r does his best wing chun (bruce lee) 1 inch punch 15:34:55 * MrReach picks up I440r's monitor and puts it back on his desk, "Stop that." 15:34:58 used no, explored conceptually with some architects and marketers. I think transmeta has been losing steam. 15:35:21 no market left 15:35:41 hmm.. I saw that sony was using it in some laptops.. extremely low power usage 15:35:44 who cares abuyt a gazillion transisters running at silly speed 15:35:59 thefox: what do you find most frustrating about the ways things are now, if anything? 15:36:04 davidw: what type of *quick* results do you think could be acheived that would then accelerate such a project? 15:36:27 MrReach: something useful to people in the real world 15:36:29 quick results == bad results 15:36:38 NOT TRUE! 15:36:41 davidw: aikido, karate, tae kwan do, and kung fu dojos are full of computer geeks, few of them do Forth. ;-) 15:36:43 I440r: go read the 'worse is better' paper 15:36:45 the cray super computer can come up with a WRONG answer faster than any other :) 15:37:10 fast, accurate, inexpensive ... pick two 15:37:18 lol 15:37:19 The selling of a new dark ages as a good thing. 15:37:20 Heh.. Who here finds that some problems are better solved by a language other than Forth? 15:37:33 tcn: I certainly do 15:37:39 tcn: I do 15:37:57 tcn forth isnt too hot at string manipulation.... 15:38:01 hehe 15:38:02 what does "multi-platform" in terms of "portable" mean ? would it mean running "make" or equ to generate the system for any supported platform ? 15:38:03 it's really irritating for me ... I use tcl/tk for most of my apps now 15:38:03 but theres no reason why it couldnt be 15:39:04 Speuler: I was thinking that the compilation would be in forth ... but there are system options that need to be drug in, I imagine 15:39:05 Of all languages I've used I was most productive in Pascal.. Forth second 15:39:10 thefox regarding that turing award thread on CLF - is it just me or do i sense a little resentment from some of those ppl ? 15:39:24 tcn for me its asm then forth 15:39:32 but only because ive used asm alot more 15:39:43 yeah, at this point I use mostly asm 15:39:45 tcn: probably everyone. Even Chuck is using Windows to surf the net rather than writing his own browser (yet). But it was doing it on Forth chip in Forth w/o and foreign code present. 15:39:53 as more portable a system, as less knowledge or assumptions about the host system is it allowed to have/make 15:40:08 or needs some api 15:40:24 openopenboot ? 15:40:26 Speuler: the apis are what the forth would be about 15:40:43 Speuler: have you don't any writing for TCL??? 15:41:03 my tcl xp is too tiny to be worth mentioning 15:41:08 tcn: I think so. Academic ivory-tower stuff vs practical engineering stuff. You know the story. 15:41:23 i can make buttons :) 15:41:50 I really appreciate that I can sit down at nearly any machine and use tcl exactly the same on each 15:42:07 including access to system resrouces 15:42:10 --- quit: Blandest ("brb") 15:42:14 resources 15:42:22 what i intended to use tcl for, i ended up using shell script 15:42:30 heh 15:42:48 * MrReach grumbles about Speuler shooting him in the foot. 15:43:27 Speuler: as to building with "make" ... I'd like to avoid it as an ideal, but it may not be possible 15:43:44 or it might make things vastly simpler 15:44:07 What's the point in use 'make' if your compiler is fast? 15:44:16 someone was toying with a bash implementation of forth. who was that ? 15:44:27 tcn make sux 15:44:37 sounds like Rich Hohensee.. he wrote that bash assembler 15:44:42 ah 15:44:43 i was gona make a forth interpreter in bash hehe 15:44:51 i like that idea 15:44:53 then write a bash interpreter in forth and have them do battle :) 15:45:03 the sql headers where derived from that 15:45:19 bash.. now there's a target for us. it sucks. 15:45:21 Speuler: derived from what? 15:45:28 no need to script all the puny details :) 15:45:43 tcn did i tell you i got hashed vocabularies in isforth now ? 15:45:50 yeah 15:46:00 from my thoughts about the possible approach writing a shell script based forth version 15:46:13 i should look at that.. I might want that in my compiler. 15:46:15 :) - its a kludge fix but once the fix is run its done... 15:46:19 ah! ok 15:46:26 do it once at extend time :) 15:46:34 --- join: Blandest (~Blan@h24-65-137-230.ed.shawcable.net) joined #forth 15:46:48 wb, Blandest 15:46:52 thanks. 15:47:16 gakuk 15:47:43 what we'd need to know about a target system is, how to implement the inner interpreter efficiently 15:47:43 so is there enough interest in the forth community to write a web page about such a thing?? 15:47:58 Speuler: that is correct 15:48:10 how could a shell based forth help us to find that out ? 15:48:25 huh?? 15:49:06 mrreach: such a what? 15:49:27 robust multi-platform forth 15:49:38 i assume, a portable forth would be used as starting point to generate a targeted version 15:49:39 robust, uniform multi-platform forth 15:49:51 it would need writing from scratch to support the target in some cases 15:50:06 I'm not sure I would make that assumption 15:50:23 it could be a specific forth to start development with 15:50:34 i'm not sure whether we want both aspects of a running system in one single interpreter 15:50:49 beg parden? 15:50:51 how would you make sure that a uniform multi-platform forth wouldn't make too many sacrafices inoder to be uniform and multi-platform? 15:50:59 *an 15:51:01 MrReach: Like FIGforth, with kernels written in assembly for various platforms? 15:51:17 well, some sacrifices would have to be made 15:51:34 but there are *SO* many things supported by all platforms 15:52:01 and Forths, as a rule, don't support them, and certainly don't support them uniformly 15:52:02 --- join: Forth (~Forth@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 15:52:07 :) 15:52:09 nice bot :) 15:52:18 tcn: yes, like that 15:52:29 tcn: but rather much larger, I imagine 15:52:47 its weird sometimes it just wont log in. it just keeps connecting and dying and repeating infinitly 15:53:26 Blandest: I was thinking "this idea seems common on systems, so implement it in the forth, possibly emulating it on systems that don't support it natively" 15:54:08 I see. 15:54:15 I would look at what various platforms have in common (filesystems, I/O, etc.) and standardize the words used to access them.. and for god's sake including some good string handling words. 15:54:21 am I answering the question you're asking? 15:54:35 tcn lol - strings! drool! 15:54:51 You answered what I wanted to know, ty. 15:54:51 Maybe a formula translator too :) 15:56:16 frankly, I don't know how to "promise" that too many sacrifices are made or not made 15:56:58 I'll be off to some chores, I'll stop by again sometime. 15:57:04 see ya 15:57:07 be well, thefox 15:57:17 Blandest: any thoughts on the matter? 15:57:22 --- part: thefox left #forth 15:57:35 None at this time. 15:58:10 tcn - about that assembler :) 15:58:16 We are currently seeking W2 candidates for a 4 month position in Northern Virginia. Position would be porting the Linux Kernel to various platforms. Candidate should have experience with SMP, Power PC, 774xx & 8240 processor, in a Red Hat environment. For consideration, Please contact us immediately. 15:58:23 heh anyone wanna go for that one ? :) 15:58:38 of course, the massive conditional compilation of C is a real risk in such a system, and not just in generating the kernel 15:59:16 geez! 15:59:35 wrong channel? 16:00:09 i440r: try 'system("nasm ..") 16:00:53 tcn lol Speuler was mentioning that method yesterday :) 16:01:06 have you done the exec syscall yet? 16:01:59 nope 16:02:10 i thought it would be a nice touch for my compiler to run NASM when it's done 16:02:15 whatsteh syscall number and how many parameters does it take 16:02:37 for you I think you want fork() 16:03:08 fork and excv 16:03:32 but that doesnt allow forth to get the return parameters from the program being run,... 16:03:54 it should, actually 16:04:11 fork() returns a process ID in the original process 16:04:18 yes 16:04:33 then you can get status and exit codes using other syscalls 16:04:35 and you run the programin the child process and - wait for your child to die. 16:04:38 if I recall correctly 16:04:41 I bet the asmutils "sh" does it 16:04:47 you dont know what the exit status of the program your child executed is 16:05:07 isn't there a seperate syscall to get that info??? 16:05:21 --- quit: Speuler (Read error: 104 (Connection reset by peer)) 16:05:29 a different "run this program here" that lets you get thyat info:? yes 16:06:33 rite now im more concerned withimplementing forget and memory mapping those source files :) 16:06:40 most languages have a method to get the exit code of a child process, sot he functionality must be in the kernel somewhere 16:07:15 proly :) 16:07:25 ive only glanced at the info... 16:07:41 fully threaded applications in forth would be cool 16:07:52 planned 16:07:56 that uses clone 16:07:59 not fork 16:08:11 and you can tell it what resources each theread shares 16:08:19 yep, it's generally provided by the application, rather than the OS 16:08:20 was thinking of having one master thread 16:08:36 any time another threaad needs to create new definitions he sends a request to the master thread 16:08:39 there's a library for it now, I think 16:08:52 not in forth i dont think 16:08:59 wait(*status) returns the child's exit status 16:09:11 no, I meant in /lib/*.so 16:09:22 the CHILDS status. not "the program the child ran" 16:09:26 i think theres a difference 16:09:40 no, there isn't 16:09:55 however 16:10:03 the problem with that is "the wait" 16:10:13 what's the next prime after 241? 16:10:15 youdont do a fucking thing till the child dies 16:10:15 use fork to create the child process, running the current prog ... then use execv to start running a new memory image 16:10:16 --- part: Fare left #forth 16:10:51 you can check to see if a child has exited, non-blocking 16:11:04 fork once. continue on your way. make child fork once. have its chil run an app 16:11:17 execve() takes over the process that calls it.. overwrites it 16:11:19 why would you do that? 16:11:25 have its parent WAIT on the external process 16:11:28 so I guess you fork() execve() 16:11:42 tcn: yes, thanks, that what I was recalling 16:11:43 soYOU can continue and STILl get the childs exit status 16:11:56 which iswhat i stated originally :P 16:12:08 I440r: it's possible to check if a child has finished, non-blocking 16:12:09 mrreach: thank man, not me 16:12:30 no need to spawn an intermediate process or thread 16:13:48 personally, i'd use an API like .... exitcode ( pid - n ) ... and have n=-1 if the child process is still running 16:14:11 0 if it's still running 16:14:22 no, because 0 is a valid exit code 16:14:22 --- join: geakazoid (JB@adsl-63-206-93-228.dsl.snfc21.pacbell.net) joined #forth 16:14:32 greets, geakazoid 16:14:34 oh eyah 16:14:39 hello 16:14:52 i think exit codes are only 8 bits, though 16:15:01 yup 16:15:05 so -1 in a 32bit int is impossible 16:15:24 so -1 is good 16:15:51 heh.. I like using carry flag for this kinda stuff :) 16:16:05 only the lower 8 bigs are significant 16:16:13 in high-level forth? that's a neat trick 16:16:18 weather the upper 24 bits are 0 or undefined i dont know 16:18:01 : exitcode ( pid - n ) dup running? IF drop -1 ELSE getchildstatus THEN ; 16:18:45 : getchildstatus ( pid - n ) do_syscall 255 AND ; 16:19:42 hmm.. clone() is a linux-only syscall 16:19:52 yes 16:20:07 does fbsd have anything similar ? 16:20:18 it must be a new syscall ... threads USED to be done via a shared library, or by the application itself 16:20:33 i don't know 16:20:50 it solves the evil copy on write problem 16:21:55 if course, threads implies an event-driven programming paradigm 16:22:01 oh, there ya go.. use it for linux then 16:22:19 and you won't need it for other unixes? (or non-x86 unixes?) 16:22:40 --- join: CrowKiller (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 16:22:53 most OSs now provide the concept of "threads" 16:23:00 greets, CrowKiller 16:23:19 hi mrreach and everyone 16:23:32 how threads are created, though, varies 16:24:55 I440r: one needs to be careful about stacks, though, most threads have a gigantic chuck auto-allocated for the thread ... not to mention the second stack that forth needs 16:25:13 chuck=stack 16:25:20 that's a wierd typo 16:25:34 hello CrowKiller 16:26:11 mrreach no - you can tell the syscall to share all that 16:26:19 and then set it up manually 16:26:37 ok 16:28:33 dont want linux to set stack addresses... 16:28:54 erm ... it has to 16:28:56 it will be ok to do it that way if the second thread doesnt DO anything with either stack till its set it up 16:29:02 nope 16:29:10 in order to pass the first parameter to the new thread 16:29:13 --- join: onetom (tom@adsl52056.vnet.hu) joined #forth 16:29:16 you tell linux "both threads share the same stack" 16:29:21 hi 16:29:25 then the child thread moves its stacks :) 16:29:25 arg! 16:29:30 what a nightmare! 16:29:34 nope 16:29:36 greets, onetom 16:29:41 not realy 16:29:59 heh, I understand that setting up stacks is pretty easy 16:30:02 r ya talkin bout multitaskin? 16:30:56 * onetom has just read http://ultratechnology.com/forth*.htm 16:31:19 thats the Thoughtful Programming and Forth by Jeff Fox 16:31:36 do u know that? 16:32:27 err can you give me a non globbed filename ? 16:32:34 forth*.htm not found :P 16:33:15 but clone passes a parameter to the new thread (on the stack, I presume) 16:33:16 forth3.htm 16:33:40 for example 16:33:51 i also have a question related 2 it 16:33:59 a simple question 16:34:08 shall i ... ? ask it? 16:34:16 ok, I've got some stuff to do, so I'm going to idle now 16:34:22 ask u about it? 16:34:25 ok 16:34:27 :( 16:34:29 ask away, though you may not get an immediate answer 16:34:40 its okay 16:34:42 --- nick: MrReach -> MrGone 16:34:47 read back the logs later plz 16:34:56 I440r: nah: 16:35:10 imagine a cycle like 16:35:38 ( from to count) 16:36:53 over + swap do dup @ i ! cell+ loop drop 16:36:59 a move routine 16:37:01 okay? 16:37:22 u can speed it up, by inlining 16:37:39 if u know that count cant b larger than - say - 800 16:38:33 hehe.. I call that 'rep movsd' 16:38:50 sleep 16:39:09 see ya 16:39:22 : move1 ( from to -- from+1 to+1) over @ over ! 1+ swap 1+ swap ; 16:39:53 tcn: we r talkin about 4th now, not a specific, usual CISC arch 16:40:02 davidw: bye 16:40:41 sleep well 16:40:57 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 16:41:07 hi 16:41:23 inlined: ( from to count -- ) negate + ip +! move1 move1 move1 ... 16:41:25 hi 16:41:29 hehe.. that "Worse is Better" article is all about LISP but it almost be Forth.. "how can our language get back in vogue?" 16:41:46 tcn: url? 16:41:52 dns problem 16:42:09 pianos falling 16:42:10 http://www.naggum.no/worse-is-better.html 16:42:25 we r not 2 comprehesive 2nite 2gether :) 16:42:30 tcn: thx 16:42:50 Q: how can i generate such a word as show above? 16:43:36 how do i use clog to tell me what i missed since " have you done the exec syscall yet?" ? 16:43:57 like: ( xt count -- ) compile negate compile + compile ip compile +! 0 do dup compile, loop drop ; 16:44:25 Speuler: u have 2 check the weblogs, i guess 16:44:34 ah 16:44:35 speuler: tunes.org/~nef/logs/forth/02.05.21 16:44:38 Speuler: clog is a read only bot, ithink 16:46:40 Q: so how can i do such a loop wo definig a word 4 it? purely in interperter mode? 16:47:00 you cant usually LOOP in compile mode 16:47:03 you COULD do 16:47:11 and certainly wo cluttering up the src w lots of repeated txt 16:47:12 : foo ..... ; foo forget foo 16:47:33 ??? 16:47:41 but foo also compiles 16:47:58 and forget also forgets those stuff 16:48:01 compiled by foo 16:48:13 tho, its getting closer ;) 16:49:14 davidw: 251 16:49:44 : rep ( xt -- ) 0 do dup compile, loop drop ; 16:50:15 it doesnt worth 2 bother w forgeting such a small piece of code 16:50:22 even if its dead :/ 16:50:41 imean, dead during runtime 16:50:53 so i could say 16:51:25 create move ] negate + ip +! [ ' move1 800 rep 16:51:31 how about it? 16:51:40 eh, its not good 16:52:35 You could relocate some code.. 16:52:44 : move ( from to count -- ) negate + ip +! [ ' move1 800 rep ] ; 16:53:15 tcn: and forget that relocated part later, right? 16:53:53 There are words like CASE that Chuck refers to as abominations.... man and I thunked it was juust me!!!! 16:54:04 heh 16:54:09 i never liked case :P 16:54:38 I440r: the only differenc is: he knows how 2 replace it in a readable way... ;p 16:54:55 hehe.. case is just an ambiguous version of IF.. ELSE.. ELSEIF.. THEN 16:55:24 tcn not mine :) 16:55:31 my case: is table driven 16:55:37 which is the fastest way to handle this kinda stuff besides a jump table 16:55:37 not nested if/else 16:55:41 but i still dont like it 16:55:48 ELSEIF doesn't nest 16:56:04 it's a great word 16:56:10 there is no elseif in forth :P 16:56:14 umean elsif? 16:56:16 it would be if blah exit then 16:56:23 x = if blah exit then 16:56:29 y = if foo exit then 16:56:30 onetom: yeah, that concept 16:56:39 with a few dups here and there of corse 16:56:40 I440r: yeah , i also never heard about elsif in forth 16:56:55 i got a brilliant idea!!!!!!!!!!!!! lets NOT code one :) 16:57:01 i like my ?: construct 16:57:10 I440r: over =, not simply = 16:57:42 i440r: what's your table-driven case do? rep scasb, then jump table? 16:58:43 yes 16:59:05 --- quit: davidw (Read error: 113 (No route to host)) 16:59:05 look in forthsrc/case.f 16:59:18 when you start a case: it switches you into INTERPRET mode!!! heh 16:59:25 ;case switches you back into compile :) 17:00:39 heh 17:02:43 I440r: i dont have case.f yet :) i have a rather old version, iguess :) 17:03:23 onetom what version you running ? 17:03:31 0.1b ? 17:04:36 I440r: im not running it, just haveing ;) i hold it for reference 17:04:54 I440r: 1.04b 17:05:12 its up to 1.06b 17:05:27 released yesterday 17:05:44 see ya all 17:06:07 what do u think about the circular stack techniqe? 17:06:49 circular stack == circular buffer> 17:06:50 ? 17:07:12 head and tail pointers ? 17:07:12 anyway, is there any "standard" interpret-mode repeating word 17:07:16 I440r: no, circular stack is circular stack 17:07:39 I440r: only 1 ptr 17:07:47 what shows the top 17:07:49 overflow wrapping i guess 17:07:54 yup 17:08:05 same method as a circular buffer.... 17:08:17 so u dont have 2 drop data sometimes... 17:08:37 makes it easier if your stack size is a power of 2 17:08:38 i dont know how can it b .... 17:08:49 utilized? 17:08:50 no.. 17:09:18 onetom: when i was using circular stacks, i found myself stuffing results into vars too often 17:09:38 hmmm 17:09:43 haha.. this robot games show is funny shit 17:09:54 onetom: relaxed stack discipline is paid by not being able to leave a result on stack, for later use 17:09:57 Speuler: i guess chuck did find himself that way ;) 17:11:53 tcn: where? 17:12:54 pbs or something.. maybe learning channel? 17:13:03 "scientific american" something or other 17:13:07 tcn: on tv? 17:13:29 yes! 17:13:37 :( 17:13:47 i dont have tv 17:14:12 tho, i can access 1 in the kitchen 17:14:17 --- quit: Speuler (carter.openprojects.net irc.openprojects.net) 17:14:43 but it mostly gathers dust beside some maverik radio waves 17:15:18 it can receive only 3 hungarian channels on it 17:15:22 hehe 17:15:30 oh well. i'm outta here 17:15:32 s/on it// 17:15:53 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 17:15:53 goodnight all 17:15:53 tcn 17:15:58 last words? 17:15:58 write me that assembler :P 17:15:58 nite dood :) 17:16:35 so the net is my tv 17:17:09 --- join: Speuler_ (~l@a161161.upc-a.chello.nl) joined #forth 17:17:39 --- quit: tcn ("Leaving") 17:18:54 lag: 28.75 17:18:55 lag: 0.06 17:19:00 --- part: geakazoid left #forth 17:19:10 --- part: Speuler left #forth 17:21:37 --- nick: Speuler_ -> Speuler 17:25:13 Speuler: have a look @ mine: 17:25:13 [02:23] <=-S-=> You're lagged 417secs to yourself. cool, huh? 17:26:14 im reading the conclusion @ the end of that forth3.htm 17:26:58 and i could bust 17:27:45 those magical numbers r repeated so many times 17:27:49 my main problem is that 1K 17:28:11 and "no wordlist" 17:28:13 s 17:28:28 1tom: so if i respond now, you'll return to me in 15 minutes ? 17:28:38 how can some1 create a system 17:28:40 :))) 17:28:46 Speuler: look: 17:28:50 [02:23] *** Speuler_ [~l@a161161.upc-a.chello.nl] is now known as Speuler 17:28:50 [02:23] <=-S-=> You're lagged 417secs to yourself. cool, huh? 17:28:50 [02:23] <=-S-=> You're lagged 242secs to yourself. cool, huh? 17:28:50 [02:23] <=-S-=> You're lagged 186secs to yourself. cool, huh? 17:28:50 [02:23] <=-S-=> You're lagged 130secs to yourself. cool, huh? 17:28:51 [02:23] <=-S-=> You're lagged 74secs to yourself. cool, huh? 17:28:53 [02:23] <=-S-=> You're lagged 19secs to yourself. cool, huh? 17:29:10 so im reachable fast again :) 17:29:31 how can some1 create a system 17:30:33 what gives such tools as a linux distro gives 17:30:33 no, thats not correct 17:30:33 what can solve all those problems what a linux distro can 17:30:55 and now, im just thinking of the terminal problems, like 17:31:13 networking & networking apps 17:31:35 like mail, irc, web 17:31:59 remote graphical apps like X 17:32:22 * Speuler isn't member of the os-written-in-forth fraction 17:32:42 actually web & X can b integrated just like the NeWS system was 17:33:06 Speuler: ??? where? 17:33:20 Speuler: fraction of what? 17:34:51 i mean to say, i'm not shouting "lets write an os in forth" 17:35:19 so if @ least the 10x factor is true 17:35:28 then that basic debian system w X interface 17:35:28 lets write a forth in os 17:35:47 I think the only way is to arrive to a sort of consensus, or standard on our own for the x86 17:35:50 ans unite our forces 17:35:59 by coding a little part 17:36:07 by our free time and peer reviewing code 17:36:14 on this chan 17:36:30 and im sorry but isforth is too complex for me ;p 17:36:56 so a 200M debian w X could cut 2 -say- 20M? 17:37:02 im trying to come up with something that even a 10 years old could understand 17:37:03 a bit weired 17:37:04 i'm proponent of virtual assembler 17:37:12 but lets dont count the fonts 17:37:22 what can b considered pure data 17:37:41 for the sake of simplicity 4 the rough calculations 17:38:17 so 50M a full system w all the above... 17:38:21 is that possible? 17:38:31 i call a virtual instruction set a Yellow Book in my standard, those are words that compile machine code with litteral optimization and suchs, the "real name" is a macro dictionary 17:38:55 CrowKiller: ah 17:39:53 CrowKiller: i've written a forth once, and ported to a different cpu architectur, with "virtual asm" for forth primitives, and inner interpreter 17:40:30 CrowKiller: 8086 to motorola-alike 17:40:30 Speuler: and? 17:40:34 did it worked great? 17:41:28 Speuler: what was that virt asm written in? 17:41:35 fine. the os interface i couldn't abstract that way 17:41:44 onetom: forth 17:41:58 actually, i used a "trick" 17:42:28 Speuler: werent u here when i was contemplatin about such an idea w futhin? 17:42:46 because the number of required cpu instructions could be limited, the virtual mnemonics didn't contain any spaces in their names 17:43:01 onetom: when ? 17:43:18 just about 2month ago... 17:43:20 roughly 17:43:37 onetom: that forth interpreter dates back to ... 1994...95 17:43:43 just b4 we formed the #forthos channel 17:44:12 Speuler: did u published it somewhere? 17:44:49 Speuler: tile (4th) also has an example 4th in 4th implementation 17:45:28 nope. spread a few copies around though 17:45:36 Speuler: we were debatin w futhin or i4oor about multitasking 17:45:42 dont u remember? 17:45:58 ive hacked up a threaded code execution example 17:46:01 online 17:46:19 Speuler: so do u still have it somewhere? 17:46:20 i remember having mentioned virtualizing assembler here and there 17:46:25 Speuler: would u share it? 17:46:29 just looking for it 17:46:38 Speuler: w us? 17:46:48 good night :) 17:47:00 oink: bye 17:47:03 bye 17:47:34 --- quit: Blandest ("bye") 17:47:39 i got an 8086 version here 17:47:55 hermantom@freemail.hu 17:48:10 im gonna put it under 17:48:11 looks a bit like this: 17:48:24 http://hermantom.homeip.net/~guest/forth 17:48:25 8086: rp+ $45 C, $45 C, ; \ inc bp inc bp 17:48:25 8086: -rp $4D C, $4D C, ; \ dec bp dec bp 17:48:25 8086: mov(i,tos) $8B C, $D9 C, ; \ mov bx,cx 17:48:40 aha 17:48:42 and their use: 17:49:09 DATA: DOCONST 17:49:09 l: doconst 17:49:09 mov([sp]+,temp) 17:49:09 mov(tos,-[sp]) 17:49:09 mov([temp],tos) 17:49:10 endcode 17:49:36 EXEC: DUP 17:49:36 code dup ( n -- n n ) 17:49:36 mov(tos,-[sp]) 17:49:36 endcode 17:49:38 c 17:50:28 DATA: 0BRANCH 17:50:28 code do0branch 17:50:28 test(tos) 17:50:28 nobranch bne \ jne nobranch 17:50:28 mov([sp]+,tos) 17:50:29 add([ip],ip) 17:50:31 endcode 17:51:05 TCELL 2 = QUALIFIES 17:51:05 DATA: DOARRAY 17:51:05 l: doarray 17:51:05 lsl(tos) 17:51:07 mov([sp]+,temp) 17:51:09 add(temp,tos) 17:51:11 endcode 17:52:24 DATA: DOCOL 17:52:24 l: docolon 17:52:24 mov(ip,-[rp]) 17:52:24 mov([sp]+,ip) 17:52:24 endcode 17:52:35 Speuler: its simpler 2 mail it 2 me 17:52:37 part of the vm 17:52:41 so i can share it :/ 17:53:02 coz, its nice ithink 17:53:09 and useful 17:53:14 the version i got here went on to implement forth words as primitives without the vasm support for those. do you mind ? 17:53:27 i dont mind 17:53:31 it is a meta compiler 17:53:37 no 17:53:43 thats just a perfect example 17:53:44 it is a meta compiling meta compiler 17:53:48 ahem 17:53:50 i mean 17:53:55 getting better :) 17:54:15 it is not forth, upon which you load the meta compiler to generate a forth 17:54:29 it is a meta compiler, which creates a meta compiler 17:54:37 which you can extend to forth :) 17:55:47 the meta compiler reads its source through output redirection from the os 17:55:58 (i got a script for that ...) 17:56:36 and, as long it is not extended with some forth words, it is hardly usable interactively 17:56:47 (but i got the forth words too of course) 17:57:26 as long it is not extended, only thing you can do is, extend it, or metacompile it again :) 17:57:36 does that make sense ? 17:57:57 sure 17:57:59 ok 17:58:11 i also did sg similar once ithink 17:58:16 i extended form, it has a number of (nice?) features too 17:58:34 but that used m4 for expanding 17:58:51 t'is not strictly adhering to any standard too 17:59:05 that asllo doesnt matter 17:59:10 also 17:59:40 you don't flame me for style ? 17:59:43 that doesnt matter either 17:59:56 <- ist a bit more grammatic this way, ithink :) 18:00:03 ok 18:00:15 iwont 18:00:29 i see that i put the sources on the web server, and tell you what you'd need to meta it 18:00:36 you got msdos ? 18:00:40 emulation would do 18:01:31 needs a86, because code: ;code calls upon a86 for assembling primitives 18:01:49 (not the metacompiler, but when extending it) 18:05:28 no, i dont have much dos env on my desk 18:05:47 but in the other room, i have even windowses 18:06:22 Speuler: im 2 tired 2 experiment w ur system this time 18:06:32 i should sleep now :( 18:06:56 fine 18:06:57 tho, i have lotsa things what should have been done 18:07:13 but thx 4 showin those parts 18:07:40 and letting me know that u did a thing like that 18:07:40 onetom: it has a url now 18:07:51 show it then! 18:08:01 clog is watching :) 18:08:06 http://topaz.wox.org/~l/elastic 18:08:19 but i guess i'd need to tell you what to look at 18:08:45 latest changes on those files is 1997 18:10:22 metastic.ms' / metastic.ms2 is the metacompiler 18:10:29 but not portable anymore 18:11:13 --- join: Herkamire (~Jason@AC861F42.ipt.aol.com) joined #forth 18:11:17 would need to be stripped of those primitives which are not using virtual assembly 18:11:26 and the os specifics 18:12:26 Speuler: will u leave those stuff on that server? 18:12:55 Speuler: i like it. probably im gonna browse it in more detail 18:13:07 but now its really time 2 sleep 18:14:18 i'll leave it there for now 18:15:03 there's no executable ... 18:15:25 will find it 18:20:02 oh 18:22:32 some files are unfinished sources, experiments and the like 18:22:58 for example the object oriented name space implementation is incomplete 18:24:33 and, by the way, the oo implementation isn't really oo, but more a model of it 18:24:46 limited 18:24:56 just for toying around with 18:25:22 doesn't distinguish between classes and objects ... 18:25:45 (done better than that later on :) 18:38:22 --- join: TheBlueWizard (~tbw@ip-216-25-202-231.vienna.va.fcc.net) joined #forth 18:38:22 --- mode: ChanServ set +o TheBlueWizard 18:38:29 hiya all 18:38:36 hi tbw 18:38:56 hiya Speuler 18:40:47 --- quit: Herkamire ("later") 18:46:29 --- join: thefox (fox@adsl-209-182-168-45.value.net) joined #forth 18:46:29 --- mode: ChanServ set +o thefox 18:48:14 --- part: thefox left #forth 18:49:22 --- join: thefox (fox@adsl-209-182-168-45.value.net) joined #forth 18:49:22 --- mode: ChanServ set +o thefox 18:49:32 wb thefox! 18:49:36 hi tbw! 18:49:55 * I440r is getting realy depressed searhing for jobs online 18:50:10 hiya I440r!!! :) 18:50:25 "real time embedded object oriented programmer wanted for the windows environment" <--- err two words... oxy, MORON! 18:51:42 but that's what windows is all about, real time object oriented programming, must be windows em, it solves all your embedded problems you know. 18:51:45 hehe...that is a MAJOR oxymoron! Winblows isn't real time by any stretch of imagination...and that company which advertised that job position should be brought behind a woodshed and be shot 18:51:56 lol 18:52:18 forget the shed 18:52:22 shoot them in public 18:52:31 let all the OTHER morons know what to expect :P 18:52:48 actually i realy shuldnt crack jokes like that, i carry a gun almost everywhere 18:53:00 lol....that's better...better yet, build a see-thru glass woodshed to convey the import of this scene :) 18:53:12 lol 18:53:27 still doesnt solve my unemployment problems :P 18:54:06 * TheBlueWizard wrote a 10 line C proggie that sets itself in high priority and then run it on Winblows and watch the system kind of freeze up :) 18:54:19 lol 18:54:21 evil 18:54:28 there used to be a website that actually demonstrate that effect 18:56:00 it is no longer around...but I love that other one: http://zappadoodle.com --- there is a zipped file that when you execute the MSDOS command TYPE bsod.txt, it literally crashes the system! 18:56:41 * TheBlueWizard rips another hole in Bill Gates' ass :) 18:58:06 why, after all this time are companies STILL asking for "embedded c++ coders" 18:58:21 i have NEVER seen any c++ working in an embedded application 18:58:28 ive seen plenty KILL a project tho 18:59:11 * I440r points you in the direction of siemens PT&D in urope using "sierra" their OOP based power meter OS kernel thingie 18:59:18 that took 10 years to make it to the trash can 18:59:45 interesting.....I sometimes have seen those ads, though I never have worked in the embedded app world, so I have no idea... 19:01:56 --- quit: thefox (carter.openprojects.net irc.openprojects.net) 19:01:56 --- quit: CrowKiller (carter.openprojects.net irc.openprojects.net) 19:01:56 --- quit: Forth (carter.openprojects.net irc.openprojects.net) 19:01:57 --- quit: oink (carter.openprojects.net irc.openprojects.net) 19:01:57 err netsplit ? 19:02:02 yea heh 19:02:06 netsplit 19:02:45 --- join: thefox (fox@adsl-209-182-168-45.value.net) joined #forth 19:02:45 --- join: CrowKiller (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 19:02:45 --- join: Forth (~Forth@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 19:02:45 --- join: oink (~ziga@owl.cuckoos.net) joined #forth 19:02:45 --- mode: carter.openprojects.net set +o thefox 19:03:00 heh 19:03:05 heh i was on one side of that split 19:03:08 my bot was on the other :P 19:03:31 very interesting sort of split :) 19:04:17 i shud prolly code more of that bot, actually make it do the things i planned 19:04:29 like interactive online forth coding in channel :) 19:04:36 heh...and how is isforth doing? 19:04:42 not too bad 19:04:46 i just did a new release 19:04:53 oh? cool! 19:05:07 i wrote a word to go thru the dictionary and rehash all the words onto different threads 19:05:32 nasm chains all words of a voc onto the first thread only 19:05:39 so it now support hashed dictionary....cool 19:05:55 ya. 2* increase in speed of compile 19:06:02 ish 19:06:20 which is less than i wanted but more than i expected :P 19:06:52 ideally a really good assembler should support "pre-hasing" behavior....but I find the macro facility too brain damaged for my taste 19:07:03 jeff - i was reading one of the articles on hyour site earlier 19:07:04 I440r: what's the number of words in isforth's vocabulary ? 19:07:22 s/pre-hasing/pre-hashing/ 19:07:35 heh i thunked i was the ONLY one who called case statements an abominaion :) 19:07:52 err quite large but it will decrease in the kernel once i get an assembler 19:08:04 alot of that can go out to optionable extensions 19:08:14 i havent counted tho 19:08:15 That was Chuck, not I. But the article is at my site, and I quote him. ;-) 19:08:23 yes - i know :) 19:08:50 my case: construct is a slight improvement on the norm but i still think its butt ugliy for any more than 4 cases :P 19:09:49 when i worked for siemens they sent me to NC and i worked on a meter down there that ran on a 386ex 19:10:07 ONE source file of that meter was aobut 6 pages long. it contained a single function 19:10:23 with a single switch statement of about 6 cases 19:10:38 each case was a switch statement of about 6 cases (repeat) 19:11:00 It is easy enough to optimize ELSE-IF but I prefer alternatives like computed code table entry. 19:11:17 needless to say - the project was aborted :) 19:11:37 my case: builds a table of options followed by a table of vectors 19:12:19 how unesthetic 19:12:26 nicer execution time - but sources using case: are still visualy cluttered 19:12:29 um...is this essentially a 2-D matrix like vector table lookup? 19:12:29 speuler ? 19:12:37 That kind of code is a place where an IF (and -IF) that don't consume a flag ( f -- ) 19:12:53 0 var [cse] \ temp case vector compile buffer pointer 19:12:53 0 var [dflt] \ default case vector 19:12:56 I440r:single switch statement of about 6 cases 19:13:06 : dflt ( --- ) 19:13:06 ' !> [dflt] ; \ compiled in later by ;case 19:13:15 is nice. (is what I meant to say.) 19:13:32 : case: ( --- ) 19:13:32 compile docase \ compile run time handler for case statement 19:13:32 >case !> [cse] \ point to temp case compile buffer 19:13:32 off> [dflt] \ assume no default vector 19:13:32 >mark \ case exit point compiled to here 19:13:33 >mark \ default vector filled in by ;case (maybe) 19:13:37 >mark \ number of cases compiled to here 19:13:39 0 \ number of cases is 0 so far 19:13:41 [compile] [ ; immediate 19:13:47 : opt ( #cases n1 --- ) 19:13:48 , \ compile n1 as case option 19:13:48 1+ \ increment # cases 19:13:49 ' [cse] ! \ store option in temp buffer 19:13:53 4 +!> [cse] ; \ advance buffer address 19:13:59 : ;case ( a1 a2 a3 n1 --- ) 19:13:59 rot [dflt] swap ! 19:14:01 tuck swap ! \ save # cases, compile same into case body 19:14:03 >case \ get address of temp case compile buffer 19:14:05 here rot \ here is where we place the case vectors 19:14:09 4 * dup allot \ calculate byte size of case vectors 19:14:11 cmove \ move vectors into allocated buffer 19:14:13 >resolve \ store case end point in case body 19:14:16 [compile] ] ; 19:14:17 which is more complex than i like 19:14:28 but i stil prefer that over the standard way of doing it 19:14:36 the run time is more efficient 19:15:32 are you saying it is more efficient runtime-wise than the classic Eaker case version? 19:15:40 i would say so 19:15:49 hmm! 19:16:22 docase is missing from the above of corse 19:16:28 coded def 19:17:45 brb my sis wants to check her email 19:24:22 * TheBlueWizard stretches 19:26:01 im trying to come up with a standard of some kind for forth and its quite hard lol 19:27:17 exactly what "standard" are you talking about? core word set? or those areas where there haven't been any real standardized convention for? 19:27:39 the things im sure is that a forth need a reset word 19:27:51 its the evry first word in the memory 19:28:12 it reset the system to a known state, zeroes the stacks 19:28:14 etc etc 19:28:35 after i know for sure theres 19:28:44 the forth word 19:28:51 many implementation I've seen use word like "cold" 19:29:01 as in cold restart 19:29:36 tho' "start-over" sounds kinda cute :) 19:29:39 I didnt know it was used like that i thought it was something more esoteric 19:29:51 thats the kind of thing we should build 19:29:55 not a standard 19:29:59 buta dictionary 19:30:02 for us lol 19:30:19 like cold: the very first word initilizing any system bla bl abla 19:30:30 AKA reset, start-over 19:30:48 heh...though if you just want to empty out the data stack, then just typing a nonexistent word will do the trick ;) 19:31:15 I didnt even knew that lol 19:31:34 but at system powerup this routine of clearing the stack must be executed 19:31:44 there is a sequence of Forth words and numbers to empty out the stack, but it is not quite standardized 19:32:02 but i didnt know that when a nonexistent word is written the stack is emptied 19:32:21 yes, that's right, though the exact execution varies from one implementation to other 19:32:31 back 19:32:48 hiya I440r again 19:33:23 when I think about it its fundamental, because the next program presumes the stack is clean 19:33:42 thats the kind of thing that should be shown to begginers like myself lol 19:35:22 Forth doesn't have the traditional notion of "write an app, then load an app" model...it is more of a blob than anything else, really 19:35:41 now I can understand the reset query interpret infinite loop 19:35:53 lol i thought hey thus reset isnt supposed to be there lol 19:36:21 by the way, another trick that I've seen used: define a dummy TASK word at the start of an "app" program code....then when you're done using that "app", type FORGET TASK, and presto! the "app" is gone! 19:37:11 * I440r is trying to implement forget now :) 19:38:30 heh 19:38:39 the forget word is great 19:38:50 I think a forth system should go to sleep 19:38:54 and clean up his dictionary 19:38:55 important word, to avoid bloating from all those definings ;) 19:39:02 much like we huamns do when we sleep 19:39:38 CrowKiller: um...unfortunately the computer can't always pretend to behave like a human ;) 19:39:54 like the system freezes, no more words in the dictionary, and then flock, the forget word is used by another one 19:40:02 much like a disk defragmenter 19:40:06 or something like that 19:40:09 much more like scandisk 19:40:29 you don't understand the purpose of FORGET... 19:40:44 to erase the dictionary up to a ceratin point 19:41:03 it literally erase everything all the way back to the word you select to FORGET at 19:41:13 i know, but my forget is better ;p 19:41:34 a real forget should look into the definitions table 19:41:41 and erase only the intended word 19:41:41 ah...heh....tho' how it is implemented would be a mystery 19:42:03 the definition table is the red word table in colorforth 19:42:31 that targeted deletion of a single word is quite hard to do, unless you use a special implementation 19:42:44 no not at all in colorforth 19:42:55 at least i think so 19:43:08 do you know how its working in the main lines? 19:43:35 in colorforth? no; never had worked with it 19:44:09 liek theres two tables, one for the macro dictionary and one for the forth dictionary, and theres two symmetric tables with addresses of each word's entry point into the dictionary 19:44:34 but what I know is this: FORGET finds the , then sets DP equal to that found word's address, basically 19:44:46 eh 19:46:06 maybe a sleep state to manage unitilized dictionaries entries could forget all he knows up to the "how to dream code" and work his way through its dictionary, anylizing 19:46:11 that's traditionally done...one special implemention would keep the headers separate from the code, then deleting a specific header is then easy....but deleting the code is another matter :) 19:46:19 if a word is used or not, but i dont know how lol 19:46:58 maybe the answer is in A new kind of science by Stephan Wolfram 19:47:08 this book seems to be ammazing 19:47:51 ill try to read it one day 19:48:13 maybe during one month, its around 1500 pages I think lol 19:48:42 heh....I used to dabble a lot with cellular automata stuff...yeah maybe I should get that book :) 19:48:55 yup, it is a TOME! ;) 19:49:49 I think you should look into colorforth its truly amazing, this forth is the ebst around to me 19:50:26 its the clearest and more concise ive seen to date 19:50:34 brutally simple as chuck calls it 19:50:39 when I get around to it,yeah...right now, too many things to do!!! 19:51:04 what are you doing exactly? 19:52:26 thefox: do you ever worked with colorforth? 19:52:44 right now I'm copying the files and setting things up 19:52:49 --- quit: Speuler (Read error: 60 (Operation timed out)) 19:53:06 and searching for some utility, which I have no luck so far 19:53:45 later this week, proto up some console based editing stuff, if I can find that utility 19:54:32 then I will switch to another project (C programming)...later on I may work on some Python app 19:54:47 it's 10:55 here...so I gotta go now 19:54:55 busy person, your right 19:54:59 here too 19:55:06 good night ;p 19:55:12 you live on East Coast then, eh? 19:55:27 I must get up at 6:30...go to work 19:55:33 Quebec, Canada 19:55:50 ah....I live in WashDC area 19:55:53 crow: I haven't worked with Chuck's colorforth, but I have worked with Chuck on the stuff and my aha Forth uses all of Chuck's colorforth concepts, almost more than Chuck because I am not making compromises for Pentium quirks. 19:56:19 nite all 19:56:34 --- part: TheBlueWizard left #forth 19:56:44 ok then when a word isnt found, is the dictionary is destroyed as well as the stack when you hit the "reset" word in the reset query interpret chain, if any? 19:57:17 --- join: I440r_2 (~mark4@1Cust150.tnt3.bloomington.in.da.uu.net) joined #forth 19:57:20 I'll try to study more your aha system then, it might be what I'm looking for in fact 19:57:55 erm - methinks im being packeted 19:58:25 or my stupid server is AGAIN trying to update the debian mirror over 33.6 :P 19:58:47 I think you are right, but that is an implementation detail in Chuck's software that I haven't dealt with. People in the mail list are very good at answering questions about using colorforth. For the concepts I recommond my video presentation to FIG on aha and the history of Forth. 20:00:07 hahaha the "aha" really means "aha!" from what i read in the introduction ;p 20:00:15 ill downlaod the videos right now 20:00:26 Chuck has been using colorForth almost exclusively now for about six years. He has considered implementation issues a great deal. 20:00:55 but ive read all that can be read on ultratechnology.com ;p 20:01:49 how come he didnt produce a forth source for it ? 20:02:03 --- quit: onetom (Read error: 110 (Connection timed out)) 20:02:19 Other machineForth programmers tell me that colorforth looked like the obvious next step from machineforth. It is simply a better way to express machineforth than traditional forth syntax and allows for a more efficient compiler and smaller more compact source format. 20:03:09 --- join: onetom (tom@adsl52032.vnet.hu) joined #forth 20:03:12 * I440r_2 has to admit he hasnt actually investigated colorforth 20:03:29 what are you waiting for its almost my new religion lol 20:03:37 We all worry that people using Chuck's colorforth will not have learned machineforth first and will focus on traditional Forth concepts and pentium issues and miss the real concept. Chuck is clearly thinking of his own chips in there. 20:04:47 I never transcribed my aha presentation to html so it can not be read at this point. Your computer might be able read the file and you might then be able to watch the presentation. 20:05:02 ill try to downlaod it overnight 20:05:51 --- quit: Forth (Read error: 113 (No route to host)) 20:06:03 --- quit: I440r_2 (Read error: 113 (No route to host)) 20:06:11 --- quit: I440r (Read error: 113 (No route to host)) 20:06:37 Maybe I will also make an html version. They download much faster and are available to more people. 20:06:52 they are also printable ;p 20:07:02 so i can bring them to school and study them lol 20:07:40 i cant touch at my school computers or im expulsed so I have no choice 20:08:02 Yeah I know, but the .mpg and .rm files result in very quantities in the download statistics. 20:10:32 --- join: I440r_2 (~mark4@1Cust141.tnt3.bloomington.in.da.uu.net) joined #forth 20:10:37 I feel like MacDonalds serving up all those gigabytes. 20:11:03 err what mcdonnalds serves isnt sustanance tho :) 20:11:36 this site is truly a must see, If I had more bandwidth i would do mirrors 20:11:37 and they charge. ;-) 20:11:45 --- nick: I440r_2 -> I440r 20:11:47 lol 20:12:02 maybe you should too :) 20:12:13 you too can wear a funny red nose and make lost of money :) 20:12:15 --- join: sbk_ (~500@dsl-65-184-98-221.telocity.com) joined #forth 20:12:33 were all bozos on this bus. 20:12:43 very probably 20:13:13 by definition anyone on a bus tour is a bozo. see ya on the funway! 20:13:23 and the bus isnt going our way either 20:13:41 i watched a program on inventors once 20:13:58 as an example of a bad inventiuon a guy came up withj th efollowing 20:14:04 everyone onm the bus has a steering wheel 20:14:23 which ever direction MOST people want to go is the direction taken 20:14:43 to increase the weight of YOUR wheel you could pump money into a slot :) 20:15:25 I was sent a funny joke by Wolfgang Ollinger a few years ago, 'If programming languages were cars.' 20:15:34 yea :) 20:15:45 another one if microsoft made cars was funny :) 20:17:09 I liked it and thought it funny because it was so accurate. It also tried to be somewhat insulting to each language rather than make any look good. 20:17:30 sounds fair and unbalanced :) 20:19:20 I don't remember all the language's cars, and some were really trains or remote-control trams with no one in control. But C was a dune buggy covered with mud. Forth was a british sports car with the driver on the wrong side and as it was a likely to find the driver under it tinkering as driving! touche. ;-) 20:20:05 yes :) 20:20:17 someone who actually KNEW each language eh ? :) 20:20:36 Forth people like to tinker. Is there a language called tinker? 20:20:45 like that guy that wrote that "if a packet hits a pocket on a socket on a port..." thing :) 20:20:55 we could invent one :) 20:21:34 quite channel for so many people. 20:21:42 quiet that is 20:21:49 i think most of the ppl just idle most of the time 20:21:56 we Do have some active players tho 20:22:01 I'm awake :-) 20:22:10 me too 20:22:12 for a change :) 20:22:20 actually, wanted to thank thefox for the great stuff on ultratechnology 20:22:34 bad 20:22:41 mischan 20:22:59 i think ive already done it, but ill do it again, thank you, this site rocks ;p 20:23:22 any site dedicated to forth is a good site :) 20:23:34 One of the problems with my site is too much junk. Stuff about Me, Chuck, Michael, Ting, Rible, and about 15 years of history. Sonetimes I can't find what I want there. 20:24:25 ting is a better forth coder than tom zimmer 20:24:37 i wish ting had done fpc and tz the gocks :P 20:24:43 docks 20:25:24 Ting produced all the best documenation for FPC. the user manual and the technical manual. 20:25:39 but i do have to hand it to tom zimmer, i wouldnt be a forth coder without it 20:25:51 the zen-forth relationship is truly amazing too 20:26:00 its hs enrish that i always saw first 20:26:10 which is probably unfair of me 20:26:32 On a different note :-) is there a periodic forth meeting group anywhere in the bay area? 20:27:05 I'm starting to learn about using fpgas (xilinx) and am looking for some more experienced people that have done forth on fpga stuff... 20:27:39 yes, I debated publishing part of Ting's book (with is permission of course) because in modern culture all the most effective hate speech sound byte attacks on Forth try to catagorize it as religion. I have no more patience for that. 20:28:30 most of the critisizm i hear is "you forth guys are all soooo minimalist" 20:28:32 Have you ordered Ting's CD with the three hardware systems sources and all those manuals and compiler sources? 20:28:43 my response is usually "as opposed to bloated?" 20:28:54 no 20:29:02 never new it existed till just now 20:29:10 same for me lol 20:29:38 right now the only thing im realy stuck on in isforth is the assembler 20:29:49 atmel fpgas are great, they cost a lot but theyre rewritable on the fly, they can even reprogram themselves lol 20:29:49 when thats done ill probably be stuck on the metacompiler :P 20:29:54 thefox: was that for me? nope. I saw the vhdl source code on your site, that's about it. 20:30:09 the minimalism soundbyte is also an effective attack. People apply Ting's definition of minimalism to Chuck and my work which is a very different thing. 20:30:11 I440r, look at the colorforth macro instructions 20:30:28 I have to go again, been fun. 20:30:29 --- join: I440r_ (~mark4@1Cust141.tnt3.bloomington.in.da.uu.net) joined #forth 20:30:37 --- quit: thefox () 20:30:38 crpill have to soon i guess, im probably the only one here who has never looked at it :) 20:30:43 ah well :-) 20:31:15 thefox another qupte i like from those texts is where chuck says its not what you can put in but what you can take out... 20:31:46 i have always felt that a TRUE musician doesnt just know how to play the notes, he knows how to play the silences too 20:32:43 i know that when I listen to music, I can listen to silence ;p 20:37:15 anyway, I just realized that when a forth word isnt found all the system reboot lol 20:37:30 lol 20:37:34 not in isforth i hope! 20:37:43 i mean 20:37:52 when a word 20:37:53 isnt found 20:38:11 the stack is cleared to zeroes 20:38:17 yes 20:38:23 any abort cleans the stack 20:38:33 the dictionary is erased if it was compiled on the fly like in colorforth 20:38:56 mrreach says thats wrong 20:39:08 the forth return to its intial state in fact 20:39:20 err... not in isforth it isnt 20:40:02 an abort should not be an empty 20:40:06 but to me this mechanism is very ellegant, simple and effective at catching errors 20:40:08 just a flush stacks 20:41:09 --- join: Herkamire (~Jason@AC89E2E3.ipt.aol.com) joined #forth 20:41:57 i like the idea of a forth system runnin a perpetual loop named quit doing "reset query interpret" 20:43:29 if its generated on the fly the system can be really small 20:43:35 less complex 20:43:53 those are lovely things ;p 20:44:35 before going deeper coding isforth, i would look at colorforth and then aha 20:45:06 those are the answers from the semigods of forth programming to our everyday programming problems 20:45:23 what is aha? 20:45:24 theres alot in isforths kernel that can be trimmed out to extensions eventually 20:45:36 isforths kernel is a bit fat even for 32 bits 20:45:54 http://www.ultratechnology.com/aha.htm 20:46:03 but i want quite a few "features" - like sockets, xlib stuff, file handling blah blah 20:46:45 yummm... sockets. 20:46:46 those are rellay easy to code in colorforth or machineforth in general 20:46:54 really 20:47:14 they are easy in isforth too once you know the socket calls 20:47:18 in c or another language i would tear my hair out doing anything complicated 20:47:51 I'm curious, has anyone written a publicly available tcp stack in colorforth? 20:48:10 no but its easy to do 20:48:14 only tcp stack i know of in forth is skip carters 20:48:20 i can surely code one overnight no problem 20:48:23 wouldnt supprise me if chuck had done one too 20:48:27 ive got all the documentation printed here 20:49:01 crow - dcc me that documentation :) 20:49:15 hmmmmmlook at the colorforth mailing list 20:49:19 ive posted some links 20:49:22 i have a binder 20:49:24 aha heh 20:49:26 full oftexts 20:50:41 http://www.strangeGizmo.com/forth/ColorForth/ 20:50:50 maybe ill finish that 8051 simulator i was doing and use it to write an 8051 colorforth :) 20:51:01 * I440r likes the 8051 20:51:02 ive posted some information there, thsoe are the very best sites ive come across on the internet 20:51:24 screw that 20:51:28 its not even updated 20:51:31 geez 20:51:53 ill do a lenghty cut and paste on the chan 20:51:56 take notes 20:52:12 Here's some info for small, good basic fonctiunality code for TCP/IP: 20:52:12 - AVR460 "AVR Embedded Web Server" Application Note 20:52:12 http://eu.atmel.com/atmel/acrobat/doc2396.pdf 20:52:12 - AN724 "Using PICmicro MCUs to connect to Internet via PPP" 20:52:12 http://www.microchip.com/download/appnote/internet/00724c.pdf 20:52:13 - AN833 "Microchip TCP/IP Stack" 20:52:15 http://www.microchip.com/download/appnote/internet/00833a.pdf 20:52:26 - PC Interfacing via Ethernet (using PIC and ISA Ethrnet board) 20:52:26 http://www.eix.co.uk/Ethernet/ 20:52:26 - Internet Protocol (IP) 20:52:26 http://www.rware.demon.co.uk/ip.htm 20:52:26 Now you can get started ;o) 20:52:27 ------------------------ 20:52:33 thought it was longuer than that lol 20:52:53 heres the information you need to code your own stack and say scre you linux tcp/ip stack 20:53:01 ;pppp 20:53:04 thanks crowk 20:53:48 cool :) 20:54:16 I'll check out the tcp stuff later. I want to make an OS and I'll want to get networking pretty early. 20:54:50 I've also got an essay written in french (french! yay!) showing 2 methods to get Ring0 in windows at anytime into any program lol 20:54:52 I had no idea there was a colorforth mailing list. 20:54:58 theres one 20:55:05 but the web archive isnt updated 20:55:22 http://www.ultratechnology.com/maillist.htm 20:55:30 those are some of the finest mailist around ;p 20:55:45 time for me to go zzz 20:55:48 zu l8er 20:55:51 --- quit: I440r ("Reality Strikes Again") 20:56:06 the web archive isn't updated at all? 20:56:34 m,y messages arnt there ;p 20:56:42 look at this 20:56:44 http://www.strangeGizmo.com/forth/MachineForth/msg00012.html 20:57:02 this post resume all the stuff you should know ;p 20:57:08 about colorforth aha and all 20:57:35 heh my sis left this connected lol 20:57:41 ok... time for MEEE to go too heh 20:57:43 nite nite 20:57:48 good night! 20:57:54 --- quit: I440r_ ("Reality Strikes Again") 20:58:26 im going to bedd too, school tommorow, see ya everyone! 20:59:00 --- quit: CrowKiller ("I definetly approve the topic on #forth") 21:37:35 --- quit: sbk_ ("Leaving") 22:10:24 --- join: futhin (~thin@h24-64-175-61.cg.shawcable.net) joined #forth 22:14:16 --- quit: futhin (Client Quit) 22:17:26 --- join: Serg_penguin (~z@nat-ch0.nat.comex.ru) joined #forth 22:17:39 hi.... 22:24:00 hello :) (AKA: "oh yeah, I'm still on irc") 22:24:41 I just found out there is a colorforth mailing list, and I have my nose deep in the archives. 22:30:24 link ?? 22:31:13 http://www.strangeGizmo.com/forth/ColorForth/ 22:32:12 hey, i'm naming filez in win like in linux... 22:32:20 colorforth.link.txt ;) 22:43:51 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 22:46:55 --- quit: Herkamire ("goodnight") 22:48:42 --- quit: bob4th () 23:01:43 --- quit: Serg_penguin () 23:24:23 --- quit: MrGone () 23:59:59 --- log: ended forth/02.05.21