00:00:00 --- log: started forth/02.03.20 00:06:55 --- quit: qless ("Leaving") 01:26:29 --- join: Soap- (flop@210-55-85-226.dialup.xtra.co.nz) joined #forth 01:26:34 hi 01:27:06 'ello 01:58:14 --- nick: Soap- -> SoapZZz 04:03:33 --- quit: MrReach (Read error: 104 (Connection reset by peer)) 07:18:56 --- join: rob_ert (~robert@h173n2fls33o898.telia.com) joined #forth 08:36:41 --- join: futhin (~thin@h24-64-174-2.cg.shawcable.net) joined #forth 11:08:29 hi 11:08:36 hi, futhin 11:08:40 Hello, onetom :) 11:08:46 And hi, futhin. 11:08:52 im still working in an other city 11:09:05 hi, rob_ert 11:09:27 so i ll b avail ~3hrs later 11:10:05 Okay 11:10:12 See you then, tommi :) 11:10:14 futhin: have assembled some docs on the topic: forthos, yet? 11:10:29 rob_ert: wooowww, tomi?!?! :)) 11:10:37 :P 11:10:48 What's "tomi"? 11:16:47 my parents call me tomi 11:17:07 its the nickname of tamás 11:17:21 like bence -> benci 11:17:27 Ah, OK. 11:17:31 lászló -> laci 11:17:47 andrás ->andris 11:17:51 * rob_ert only knows a few Tomas 11:18:18 including me ? :)))) 11:18:51 portugese ppl say my name like tomas or even tumas 11:19:15 You know any portugese people? :) 11:19:41 Nah, you're just a Támas.. but pretty close to Tomas, so I guess I'll count you in. 11:24:18 :) 11:24:48 yes, last summer a porutgese guy was our guest for a week 11:25:02 my girlfriend met him on napster 11:25:18 so he was a napster-tourist 11:25:24 Hah 11:25:26 Cool. 11:25:28 just like my girlfriend too 11:25:34 Huh? 11:25:40 You met her on Napster? 11:25:41 onetom: nope 11:25:43 she were in america last summer 11:25:50 Ah, OK. 11:26:10 Thought Hungary was a poor country, not a Napster tourist country ;) 11:26:19 and her napster-girlfriends brought her all around on the continent 11:27:02 Hehe 11:27:04 Cool. 11:27:07 napster tourism is the poor ppl's choice ;) 11:27:13 you can chat on napster? :) 11:27:20 sure 11:27:21 i've never used napster 11:27:25 w gnapster 11:27:29 under linux 11:27:43 you met your gf thru gnapster? 11:27:49 she was running gnapster on linux ? 11:27:52 i also wrote a logger patch for it 11:28:06 no, but she did so :) 11:28:18 pardon? 11:29:00 the regular napster program on windows supported chats right? 11:29:06 right 11:33:37 http://ostling.no-ip.com/ <-- Check the "Music" section for some nice songs. 11:37:00 will check it when i arrive back to home 11:42:18 onetom 11:42:22 have you read http://www.paulgraham.com/langdes.html yet 11:42:31 about 60% the way down 11:42:37 he starts talking about profilers 11:42:40 it's interesting 11:43:17 bbl 11:43:38 rob_ert: white rabbit is only 2:30 frickin minutes?! :( 11:43:41 thx, for the many interesting links anyway :) 11:44:25 rob_ert: how did ya liked the music anyway? 11:45:27 onetom: Not _that_ good ;) 11:45:32 rob_ert: you've seen fear and loathing in las vegas haven't you? 11:45:42 Uh, no.. 11:45:58 you've seen the movie the doors ? 11:46:12 hm 11:46:13 Nope. 11:46:15 oh well 11:46:16 Hehe 11:46:18 What? 11:48:50 onetom 11:49:14 onetom: you could write up a little document on what you see in forth os, what you want, etc.. 11:49:17 but don't show it to me 11:49:21 until i've finished mine :P 11:50:06 futhin: sure! i want &i will! but now am still working 11:51:05 ok :) 11:51:10 what are you working on ? 12:11:41 --- join: I440r (~mark4@11Cust28.tnt2.bloomington.in.da.uu.net) joined #forth 12:12:28 hoho i440r! 12:13:15 fu! 12:13:24 im not talking to you till you install debian :P 12:13:56 added mouse dupport last nite 12:13:58 sorta 12:14:02 dont work proper yet 12:14:42 brb - coffee! 12:15:30 futhin: on an alarm system 12:16:06 futhin: its a part of our building control system 12:16:33 I440r: nice to hear it 12:17:08 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 12:17:08 im gona write a crappoy mine sweeper game just to show it working heh 12:17:12 mrreach! 12:17:16 wb :) 12:17:18 I440R!!! 12:17:36 danke 12:17:40 i dunno if u know it or not but read the topic heh 12:17:40 how's tricks? 12:17:47 mouse support added now too 12:17:57 but the mouse reporting doesnt seem to work in linux console 12:17:58 gtr 12:18:01 grr even 12:18:04 going ok :) 12:18:33 that's cool ... is it interfacing with GPM? 12:18:47 no 12:18:55 its interfacing with the console 12:19:14 erm ... how does the console report mouse events??? 12:19:15 theres an escape sequence that tells the consoleto report the mouse position any time the button is pressed 12:19:23 you have to tell it to 12:19:23 ah! ok 12:19:25 it sends you an 12:19:32 escape [ buttons x y z 12:19:40 erm no z 12:19:45 i duynno where that came from hehe 12:19:56 buttons x and y are all + $20 12:20:00 you're a 3d thinker stuck in a 2d world! 12:20:04 so you have to $20 - on each of them 12:20:12 that must be it! 12:20:14 like ... ESC [ left 23 76 12:20:21 sorta 12:20:27 but the "buttons" are weird 12:20:32 0 is left button 12:20:36 2 is right button 12:20:41 3 is middle button 12:20:46 ugh 12:20:57 and cursor coordinates run from 1,1 grrrr 12:21:04 1 is the hidden button that all mouses have, and it unlocks kung fu forth power! 12:21:13 nobody in the fucking C community understands ZERO BASED!!!! 12:21:19 heh, would be much better is it simply reported a bit mask of buttons currently pressed 12:21:31 mrreach thats what i thunked too 12:21:46 and let the app deistinguish button up, button down, etc 12:22:23 mrreach it would be realy nice if it would report up down and gave the option of reporting MOVEMENT too 12:22:29 but it dont :P 12:22:42 well, there's probs with that 12:22:53 you would get flooded with mouse reports heh 12:23:09 in that a moouse on a vibrating table will chew up mass processing power 12:23:18 yes, exactly 12:23:45 theres usually a threshold 12:23:51 greetings, futhin 12:23:53 so minor vibrations dont report anything ehh 12:24:13 care to delve into kernel code and rewrite the mouse driver? 12:24:26 might be an excellent demo of the versatility of Forth 12:24:51 does anybody know what the equivalent of a macro in lisp is to forth? words? 12:24:53 the kernel mouse driver is fucked in the head 12:25:40 futhin: a forth word that either lays down forth words into the current definition, or executes said words, depending on compilation state 12:25:43 i440r: welcome to linux 12:25:52 heh 12:26:03 that is why we are starting the forth os project 12:26:08 join #forthos :) 12:26:10 heh 12:26:16 i've got some ppl interested 12:26:24 oh, for heaven's sake, just fix the damn mouse driver 12:26:27 mainly onetom and me right now.. maybe qless and etaoin :) 12:26:47 mrreach isforth kernel is starting to become a little more stable - most of what im doing these days is coding extgensions 12:27:15 I thought forther's were forced to reinvent the wheel ... but now I'm beginning to realise that they are COMPELLED to do so by some mysterious inner force 12:27:52 mrreach its not mysterious at all 12:27:53 I440r: that's good ... I bet you feel *MUCH* better 12:28:09 its quite obvious realy 12:28:15 oh? 12:28:42 libxyzzy is fucked in the head - ill just recode it in forth over here minus the 50 gigs of BULLSHIT nobody ever uses. wont take me much more than 15 minutes with forth 12:28:55 heh 12:28:59 :) 12:29:17 --- nick: SoapZZz -> Soap` 12:29:20 my readme shows my .plan from this box 12:29:34 which you cant finger - because its behindf ipmasq 12:29:35 1: code isforth 12:29:39 too bad for me that I really like using regex 12:29:39 2: convert linus 12:29:49 3 help linus recode linux in forth (about a week) 12:29:53 4: stop smoking crack 12:29:55 heh 12:30:11 do you need linus's help to recode linux in forth? 12:30:15 i suppose you do 12:30:17 for the weird crap 12:30:23 but you don't need to convert him 12:30:28 just ask him for his help for a week :P 12:30:51 hehe 12:30:53 no 12:30:58 when you stop to think about how many different processors Linux runs on, you have to be impressed by the organization of the project 12:30:59 thats THE prime directive 12:31:08 convert all the linux C lusers to forth :) 12:31:45 i440r: you just have to trick them. convert linux to forth under their nose, and then when they go to upgrade, they'll discover gcc is gone!!! 12:32:00 heh 12:32:11 i would have to root kernel.org first heh 12:32:14 so isForth is running on Pentium Linux now? which kernel? 12:32:53 is it pentium or 80386 that is minimum requirement? 12:34:31 it should work still on a 386 i believe 12:34:38 im not 100% certain 12:34:41 anyone here have a 386 ? 12:34:50 got 4 in the basement 12:34:55 hehe 12:35:00 where they belong :P 12:35:04 yup 12:35:18 might someday set one up for controlling the house 12:35:28 but might as well use the server to do that 12:35:34 just easier that way 12:35:38 :) 12:36:11 right now, it's a 200MHz Pentium .... but by that time it'll prob be 2+GHz and 512MB ram 12:36:22 just to watch for doors opening and closing 12:36:49 mrreach when are you going to start coding isforth asm??? (nag nag nag :) 12:37:21 heh, but if I ever wanted to, web access to the system would be simple ... and I could setup 100s of web cams to watch with 12:38:10 now that USB and Linux are working together 12:38:53 you said controlling the house. != house security 12:39:10 * MrReach imagines his wife asking, "Honey, why are you drilling all those little holes in the ceiling?" 12:39:28 that's true, futhin 12:39:29 mrreach you ignored my question :P 12:39:38 yes, I did, actually 12:39:53 you're making it hard to continue doing so 12:40:12 i like the g gordon liddy method of gun control... 12:40:20 gun control is hitting what you aim at! 12:40:28 what's that? 12:40:28 mrreach - my plan is working then :)heh 12:40:44 liddy was nixons attack dog :) 12:40:52 OH! Funny story! you're gonna LOVE this one! 12:41:08 went to prison for it too - but is now a radio talk show host :) 12:41:18 My goddaughter was molested in Idaho some years back, when she was 4 12:41:35 i would have shot the sone of a bitch where he stood 12:41:38 she is now seeing a therapist for PTSD 12:41:45 ptsd ? 12:41:48 ph 12:41:49 i got it 12:41:52 nevermind hehe 12:41:56 her family has lots of guns 12:42:04 Post Traumatic Stress Disorder 12:42:14 yes i know - i figured it out heh 12:42:19 and... ? 12:42:35 and she voiced a concern to the therapist about all the guns laying around her house 12:42:47 oopts 12:42:55 i bet it didnt happen that way 12:43:05 after her mom got REALLY pissed, went out and emptied a clip into one of the dead cars in the back 40 12:43:08 i bet the therapist asked directly "are there any guns in your house" 12:43:14 and the kid answered "yes" 12:43:19 no, the GD brought it up 12:43:21 not "yea and they worry me" 12:43:24 just "yes" 12:43:29 depends how old she is _now_ 12:43:45 nevermind 12:43:47 "some years back" 12:43:48 but you're right in that the therapist isn't into guns, doesn't understand the issue well 12:43:50 doctors are being ORDERED to ask if there are any guns in the house 12:43:59 and has a "no gun" policy 12:44:08 most doctors are stupid 12:44:13 word of advice 12:44:27 in any case, the GD reported that the guns were usually kept in a gun safe 12:44:33 only trust gun-wielding forth-coding doctors! 12:44:34 dont trust a doctor 12:44:45 GD ? 12:44:48 oph 12:44:50 god daughter heh 12:45:01 and when asked where the keys were, she faithfully replied "in the lock where they won't be misplaced" 12:45:09 heh 12:45:19 ouch 12:45:38 we usually keep our safe unlocked too hehe 12:45:47 my doctor made me HIV+ ... I don't trust them, let me assure you. 12:45:52 you have to dial in to open it heh 12:46:19 well, it will be this year or next when the girls learn to shoot 12:46:21 th4e ama admits that 90% of its doctors are incompetent 12:46:37 my GD is 11 now, it's about time 12:46:38 should start at about 5 or 6 years of age i think 12:46:51 they have been exposed to guns all their lives 12:46:55 AMA? auto motors association or something? 12:46:58 never allowed to handle, though 12:47:08 american medical association 12:47:11 American Medical Association 12:47:27 where is their main office?? 12:47:37 im not sure 12:47:43 I know the CDC is in Bethesda, MD 12:47:46 pity it wasnt in the wtc :P 12:47:53 cdc does good work 12:47:54 with an outreach in Atlanta 12:48:10 and San Diego 12:48:46 well, the CDC doesn't actually *DO* anything 12:49:03 they just collect data and publish and occasional newsletter or bulletin 12:49:28 the pathology database is priceless beyond words, though 12:50:48 i kind of think that the distinction between nurses and doctors is unnecessary. for example, some tasks only doctors are allowed to do, even though nurses could do it themselves and save everyone time. the training should be linear, there shouldn't be any distinction between nurses and doctors, only in how far they trained.. something like that.. nurses can take up quite a few jobs that doctors do, with minimal extra training 12:51:39 the distintion is extremely important 12:52:08 doctors make descisions regarding healthcare, nurses do NOT 12:52:12 my mom is a nurse 12:52:23 there's probably more competent nurses than there are competent doctors :P 12:52:25 there is a VERY sharp line of responsibility 12:52:33 that's probably true 12:52:50 my mother was a nurse also, and I've heard the horror stories 12:52:52 now... about that assembler ? 12:53:07 my grandma was a nurse, and was the administrator of the whole hospital she worked at .. 12:53:23 heh, was just looking for where I misplaced the X86 manuals 12:53:45 sure,... sure.... :P 12:53:58 oh! btw, if you need a laser printer, I can wholeheartedly recommend the Samsung ML-1210 12:54:16 just bought one for $200, outstanding value 12:54:21 got a crappy bubble jet usb printer that i cant seem to get working in linux 12:54:22 grrr 12:55:17 it's much faster than my old Panasonic, even though it has the same parallel interface and 600x600 DPI rather than the old 300x300 12:55:43 the print quality is fantastic, despite the speed 12:55:58 I haven't printed any envelopes, yet, so can't report on it 12:56:17 nor can I say anything about longevity, only owned it for 48 hours 12:56:54 mrreach: and it handles postscript? :) 12:58:42 never gave it the chance 12:58:51 it's got 8 megs of ram, so it might 12:59:05 but the PS is handled by the Linux printing system 12:59:28 the PS never actually gets to the printer 13:00:07 well, shit, I guess I'll go downloand the damn Pentium docs AGAIN 13:01:41 heh, well, i'm gonna go 13:01:44 --- quit: futhin ("bye") 13:07:18 well, there's the hardware manual, fat good that is 13:07:39 :) 13:07:56 if you ARE going to be working on the assembler i would suggest latest isforth 13:08:03 * I440r croszes fingerz! 13:08:08 talk thoroughly about optimisations, though 13:08:21 I'll write it on Win32Forth 13:08:27 wont work 13:08:32 win32 forth is ans 13:08:34 isforth isnt 13:08:35 sure it will 13:08:51 you will use words that dont exist in isforth 13:08:56 and will want me to add them grrr 13:09:05 heh 13:09:27 duh! I can write my own glue words 13:09:38 i dont WANT the glue words heh 13:09:52 as long as you stay ANS compliant, it shouldn't be an issue at all 13:09:53 most of them are DELIBERATELY not here 13:10:02 im NOT ans compliant i believe 13:10:10 tho im not strivbint to not be 13:10:13 what part is in violation??? 13:10:23 not sure 13:10:25 heh, that's an interesting word 13:10:36 i wont have postpone 13:10:39 striving 13:10:42 i cant type heh 13:10:50 ok, that's fine 13:11:08 as long as COMPILE and [COMPILE] are compliant 13:11:08 use [compile] and compile 13:11:15 and keep aliases to a mininum 13:11:27 ANS says nothing about aliases at all 13:11:29 define compliant 13:11:34 i have alias 13:11:43 OOHHH i have a question 13:11:46 look 13:11:53 : x 'x' emit ; immediate 13:11:59 compliant means that the stack effect and side effects of the word are as expected 13:12:04 : y 'y' x emit ; 13:12:10 ' foo alias x 13:12:13 is foo immediate ? 13:12:27 doesn't matter if it is 13:12:34 in isforth it wasnt 13:12:35 but is now 13:12:39 i added a field 13:12:42 and I would have to see the def for foo to tell if it's immediate 13:12:54 ermn 13:12:55 no 13:12:57 ' x alias foo 13:12:58 i mean 13:13:00 you didn't show the def for foo 13:13:01 sorry heh 13:13:19 is an alias of an immediate word - an immediate word 13:13:22 you meant ' y aliase foo 13:13:26 ' x 13:13:29 x is immediate 13:13:32 yes, it should be 13:13:48 well the ONLY way i could make it that wasy was to add a field to list space 13:13:56 just ahdead of the cfa is a pointer to nfa now 13:14:02 in ... ' foo alias bar ... bar should be identicle to foo except for its name 13:14:35 : .id ( cfa --- ) 4- @ count $1f and type ; 13:14:50 god, these manuals are huge 13:15:07 there was NO way to get to the immediate bit unless i stored a pointer to each words header in each words code space :( 13:15:09 i hate that 13:15:17 IMO, that link should be there anyway ... for decompiling 13:15:30 yes 13:15:34 see is going to be using it 13:15:45 but in a turnkey app thats wasted space :( 13:15:59 the old forths interlaced the head and code space, so it wasn't much of an issue 13:16:18 yes - but THEY couldnt turnkey 13:16:26 other than ovewriting all headers at save time 13:16:28 bleh 13:16:34 no save in space there 13:16:36 well, you *CAN* search all known words looking for an exact match 13:16:42 no 13:16:43 cant 13:16:50 because : foo ... ; 13:16:54 slow, but keeps the pointer out of the code area 13:16:57 : foo .... ; immediate 13:17:00 : foo .... ; 13:17:11 will find the NON immediate foo - not the immediate foo heh 13:17:15 then how does ' foo return the CFA??? 13:17:24 find 13:17:29 oh duh hteh 13:17:34 find finds the first one anyway 13:17:38 ok, the search process would be using find 13:17:40 <-- bing silly :P 13:17:52 ' is defined as 13:17:54 given the CFA of a word, scan all words until an exact match is found 13:17:58 defined 0= ?missing 13:18:02 yes 13:18:13 would be slow compiling aliases tho heh 13:18:23 that is a slow, laborious process, but keeps pointers out of code space 13:18:37 no, it wouldn't 13:18:52 ooops, yes it would 13:19:02 because it needs to check for immediacy 13:19:05 arg! 13:19:17 * MrReach shrugs, "Then slow it is." 13:19:43 there's another option, too 13:19:51 i wanted fast compiles so i created the wasted space link back to head space hgeh 13:20:02 i might add a view field to each header too 13:20:04 like in fpc 13:20:16 i dont care if headers are 256 bytes each 13:20:19 a third memory segment that keeps CFA/NFA relationships in 8 bytes frames 13:20:19 or 16 bytes 13:20:22 headers are stripable heh 13:20:52 each word would have to know whre it was in the dictionary in order to know where it was in the new seg 13:21:06 i thunked of that too 13:21:21 im reluctant to create overly complex situations just to make things faster or smaller tho 13:21:39 i dont care if its absolutely the MOST efficient method 13:21:46 it must be readable and easilly understandable 13:21:58 i.e. not c :P 13:22:26 grab the lastest isforth 13:22:39 ok 13:22:50 im working on having it NOT show the status line or the hello message when its run from a #! 13:23:05 its a bit bad for it to do that when being used to run a script 13:23:25 VERY bad 13:23:35 yea heh 13:23:35 will totally screw your web server 13:23:56 but i wasnt worried about it till now 13:23:56 web server ? 13:24:05 ftp://11Cust28.tnt2.bloomington.in.da.uu.net/pub/isforth-1.04b.tgz 13:24:11 is that the latest?? 13:24:17 yes 13:24:34 that doesnt have the mouse support added and i changed the way ansi escape sequences are compiled 13:24:35 a little 13:25:01 made "sequence" a parsing word so i could keep sources neater and not have to pass the characters of the sequence one at a time heh 13:25:15 sequence esc[x;y 13:25:15 instead of 13:25:22 y ; x [ 4 sequence 13:25:29 the escape is always implied 13:25:36 in the old method 13:26:01 27 c, [CHAR] [ c, ... 13:26:30 or ... 13:26:45 27 VALUE ESC ... ESC c, [CHAR] [ c, ... 13:26:57 would be very messy imho 13:27:02 i like 13:27:06 yep 13:27:12 sequence name chars-of-sequence 13:27:15 keeps it heat 13:27:23 brb 13:27:34 im using joe and joe allows me to edit ANY character code into text heh 13:27:42 i have $1b's embedded in my source file heh 13:32:54 back 13:33:26 wanna go over addressing modes with me? 13:33:58 sure 13:34:21 you can skip the [bx+esi+4*edx+1244] shit 13:34:28 if its being used i can uncode it heh 13:34:34 that would simplify things if you like 13:35:05 I want to support all the addressing modes and all the instructions 13:35:27 sure 13:35:32 that would be great! 13:35:33 the idea is to simplify the syntax to a minimum of chars typed 13:35:47 can you make it so i dont have to do like they do in win324ths assembler 13:35:55 [ebx] [esi] 13:35:58 that should be 13:36:01 you don't know how fustrated I was when I went to use an opcode in win32forth and it simply wasn't there 13:36:02 [ebx+esi] 13:36:24 and I had no idea how to add one 13:36:24 yea - that might piss ppl off if their fave instruction was missing 13:38:03 ok, let's start with immediate data 13:38:17 some instrucs need no operand at all, and we can ignore those 13:38:42 for a move, how about ... 13:38:57 1 # EAX MOV 13:39:14 that works - but remember - i DO want to be able to do mov eax # 1 later 13:39:14 oh 13:39:17 all formats are SRC DST OP 13:39:19 keep everything lower case 13:39:23 isforht is case sensative 13:39:28 hmmm 13:39:31 good issue 13:40:06 you should put a switch for case sensitivity ... some people won't tolerate it 13:40:36 now, what should it look like if we want to move from and address to EAX?? 13:40:55 $bla EAX MOV 13:40:57 ??? 13:41:17 --- join: qless (~cerberus@clgr000977.hs.telusplanet.net) joined #forth 13:41:22 greets, qless 13:41:26 howdy folks 13:41:38 $bla will be taken as a hex number and will fubar 13:41:43 l isnt a valid hex digit 13:41:52 I is too :-) 13:41:56 heh 13:43:45 sorry 13:43:56 $deadbeef EAX MOV 13:44:00 ??? 13:45:06 the two register operand is kind of a no-brainer ... 13:45:15 EAX EBX MOV 13:45:26 xxx eax move 13:45:33 move contents of address xxx into eax 13:45:36 xxx # eax move 13:45:42 move immediate data xxx into eax 13:45:56 do you want 'move' or 'mov' ??? 13:46:00 mov 13:46:04 ok 13:46:12 "move" is not intel heh 13:46:16 it was a typo 13:46:50 then there's ES: CS: DS: SS: FS: and GS: and REP: 13:47:43 the operand size is usually implied in the instruction ... is there a place where it needs to be specified explicitly??? 13:47:52 no 13:47:59 dont add support for seg registers 13:48:10 they are selectors 13:48:35 rep is a valid prefix tho... 13:48:37 also 13:48:42 why not? that's like the simpliest part of the assembler 13:48:46 make aad and aam accept a parameter 13:49:16 well. i dont think users should be messing with OS level shit in isforth hgeh 13:49:47 unless they are using isforth to WRITE a new os 13:49:52 hrm 13:49:55 shoot 13:50:17 * MrReach grins knowingly. 13:50:35 yep, there's the GOTCHA 13:50:48 have no idea what it will be used for, really 13:50:53 heh 13:51:00 ya 13:51:01 actually 13:51:15 its very un-forthlike to RESTRICT what a user can and cant do 13:51:17 so i guess add em 13:51:35 I'll leave it to the coder to use them properly 13:52:15 yes 13:52:23 give him enough rope to hang himself 13:52:32 let him hang himself a few times and learn from the experience :) 13:52:48 oh! cool! you can use AAM to adjust to any base! 13:53:07 I didnt know that 13:53:30 you bring up a good point, though ... 13:53:53 most X86 programmers won't be expecting AAM to take a literal value 13:54:06 and it'll bork on them unexpectedly 13:54:15 how about ... 13:54:16 no!!! 13:54:21 make it an OPTION 13:54:22 erm 13:54:23 no 13:54:24 AAM 13:54:25 you cant grr 13:54:31 i definatly want that parameter tho 13:54:32 and 13:54:36 #AAM 13:54:38 ??? 13:54:40 aha 13:54:41 that works 13:54:46 but 13:55:08 if we were thinking ASSEMBLEr instead of bas akwrrds here 13:55:10 aam 10 13:55:13 would work :P 13:55:18 or aam # 10 13:55:21 ohh thats it 13:55:34 heh, you're thinking in prefix, I'm thinking postfix 13:55:36 # will be setting a flag anyway 13:55:42 it's natural to me now 13:55:43 10 # aam 13:55:51 if the # flag isnt there theres no parametre!!! 13:55:54 aam 13:55:56 ok, so AAM get handled specially 13:56:03 defaults to 16 # aam 13:56:10 you dont NEED a second opcode 13:56:23 defaults to decimal, according to intel 13:56:27 it can be an optional parameter 13:56:34 good idea 13:56:36 the default is 10 yes 13:56:52 i use aam 16 to split ax into ah, al alot 13:56:56 VERY useful 13:57:11 so the two forms are ... AAM and ... 16 # AAM 13:57:12 right? 13:57:27 yes 13:57:31 be very useful when doing hex dumps 13:57:35 yes 13:57:57 btw thers a problem here 13:58:03 isforth doesnt have vocabularies :( 13:58:05 yet 13:58:20 it would hve been very difficult to make the nasm macros to do this 13:58:21 --- join: Etaoin (~david@ljk8.sat.net) joined #forth 13:58:25 i tried - and i failed :P 13:58:36 ouch 13:58:37 i would suggest using 10 ## eax mov 13:58:46 for now 13:58:48 why the double hash? 13:59:00 so it doesnt conflict with <# # # #> 13:59:05 # <--- 13:59:09 arg! 13:59:14 exactly 13:59:27 i realy want to add vocabularies but until i get a meat compiler i cant 13:59:30 * MrReach swats I440r with a cold, dead fish. 13:59:48 unless you want to make nasm do it :) 13:59:49 remember. 14:00:06 nasm is a totally brain dead assembler and subject to outputting totally unexpected object code 14:00:11 I would have STARTED with metacompiling on gforth 14:00:26 no 14:00:37 i do NOT want anything to do with any existing linux forth 14:00:40 not a fucking thing 14:00:44 so, what about base reg and displacement? 14:00:51 i look at ans forth and i look at c and i see NO difference 14:00:56 when i read c code i see 14:00:57 blah 14:00:59 blah blah 14:01:02 blah 14:01:03 blah 14:01:05 blah 14:01:06 blah 14:01:07 blah 14:01:14 i see the same when i read ans forth 14:01:28 it bores the FUCK outa me 14:01:32 what should it look like, then? 14:01:40 like the NASM sources? 14:02:01 if you could write an assembler that can take the EXISTING assembler sources 14:02:10 with only SLIGHT modification i would be happiest 14:02:25 change all those 14:02:25 heh, uhhh, yeah 14:02:29 code 'xxx', xxx 14:02:32 code here 14:02:33 next 14:02:36 and make them 14:02:39 code blah 14:02:42 ... 14:02:43 ... 14:02:44 ... 14:02:46 next end-code 14:02:57 not changing anyting in the ... area :) 14:03:22 i can live with 5 # eax mov 14:03:31 i cannot live with all the bullshit i see in ans forth sources 14:03:33 they are not forth 14:03:39 they are c made to look like forth 14:03:41 CODE + ( n1 n2 -- n1+n2 ) ax pop ax bx add next END-CODE 14:03:45 or is it forth made to look liek c 14:04:11 how does that look for a typical definition??? 14:04:40 i much prefer a VERTICAL coding style that allows you to COMMENT the code 14:04:40 doing... 14:04:40 comment comment comment 14:04:40 code code 14:04:41 comment comment comment 14:04:41 code code 14:04:41 comment comment comment 14:04:41 code code 14:04:41 is BAD 14:04:56 well, I would, but you're typing WAY fast 14:04:57 it looks ok except its horizontal and 16 bit heh 14:05:06 ooops, sorry, you're right 14:05:11 code code comment comment 14:05:15 code code comment comment 14:05:17 hehe 14:05:24 CODE + ( n1 n2 -- n1+n2 ) 14:05:25 THATS how it should be in my opinion 14:05:35 eax pop 14:05:41 eax ebx add 14:05:46 next 14:05:50 END-CODE 14:05:53 that works 14:05:59 but PLEASE dont use upper case 14:06:06 code + ( stuff ehre ) 14:06:08 code here 14:06:11 next end-code 14:06:22 i usually put "end-code" on the same line as the next 14:06:25 but 14:06:26 next 14:06:28 end-code 14:06:30 works too 14:06:34 its free form 14:06:54 not important to me what your coding style is ... only that I don't make it awkward for you to use it 14:07:02 yes 14:07:17 i would like to be able to understand it too heh 14:07:26 now, what about base register plus displacement??? 14:07:37 oh 14:07:38 well 14:07:48 maybe ... 14:07:53 in fpc the displacement was a REQUIRED parameter 14:08:01 mov eax, 0 [ebx+esi] 14:08:02 bad 14:08:12 $deadbeef +EAX EBX MOVE 14:08:19 +ebx ? 14:08:22 er no 14:08:25 ebx+eax :) 14:08:30 or eax ebx + mov ? 14:08:31 erm 14:08:38 this is difficult 14:08:43 ooooh 14:08:47 no, I'm talking single base register plus offset to get memory location to load from 14:08:48 maybe not 14:09:01 we're not up to dual indexing yet 14:09:01 base reg like ebp or esi 14:09:19 or ebx even 14:09:29 oh, you're right 14:09:32 mov eax [address+ebx] 14:09:32 ? 14:09:39 an irregularity in addressing modes 14:09:44 yes, that 14:10:02 i would say [ address ebx ] eax mov 14:10:03 i guess 14:10:15 no, you can use all the registers 14:10:17 i want all addresses to be wrapped in [ and ] 14:10:25 i know you can 14:10:31 erg ... how would you go about doing that? 14:10:49 wouldn't that be "syntactic sugar"? 14:10:52 how about [eax] [ebx] [ecx] 14:11:04 address [eax], ebx mov 14:11:11 yes, for plain register indirect 14:11:20 [reg] means contents of address pointed to by register 14:11:26 and "address" can be optional ? 14:11:28 hrm 14:11:31 but it has to distinguish between the two, somehow 14:11:33 how would we make it optional ? 14:11:45 I was thinking ... 14:11:55 [EAX] EBX MOV 14:11:58 and ... 14:12:08 eax [ebx] mov 14:12:15 $deadbeef +[EAX] EBX MOV 14:12:22 hrm ok 14:12:31 that WORKS - but its a bit non intel format heh 14:12:33 but it works 14:12:35 hrm 14:12:52 dont forget tho it would have to work with source and destination 14:12:56 how woould that be formateed 14:12:58 I'm not intent on intel format ... only in clearly expressing intent 14:13:04 address [src] dest mov 14:13:12 address src [dest] mov 14:13:18 yes 14:13:19 srs address [dest] mov 14:13:33 eax $1234 +[ebx] mov 14:13:33 or 14:13:35 you could put the address in any location 14:13:43 $1234 eax +[ebx] mov 14:13:46 only one of source or dest gets to use it 14:13:53 yes but 14:13:53 yes, that could be done 14:14:05 mov eax, [ebx+$1234] 14:14:07 coded as 14:14:19 $1234 eax, [+ebx] mov 14:14:20 or 14:14:20 don't forget ... $1234 might actually be the result of an extensive forth calculation 14:14:28 yes i know 14:14:32 oh 14:14:44 either should be legal then 14:14:45 in which case you would want it seperate for documentation 14:14:50 $123 is already on the stack 14:15:06 you want the plus within the brackets??? 14:15:06 address src +[dest] mov 14:15:07 or 14:15:14 src $address +[dest] mov 14:15:16 both 14:15:16 yes, that's right 14:15:40 brackets should say that the source or dest is the contents of the memory pointed to by the regoster 14:15:46 it doesn't matter where the number is from ... only that it's on the stack at the point it's needed 14:15:55 as opposed to the contents of the register 14:16:00 correct 14:16:04 rite 14:16:18 so, should the immediate offset be denoted inside the brackets or outside? 14:16:45 my knee-jerk was outside, but that might be incorrect 14:16:59 hmm 14:17:00 well 14:17:11 MY knee-jerk is for inside but i can see the problems with that 14:17:30 ok, we're talking ... 14:17:46 [ xxx ebx ] < conflicting [ and ] and ebx word would need to know its inside bracktes 14:17:58 #deadbeef +[EAX] EBX MOV 14:18:00 vs ... 14:18:05 #deadbeef [+EAX] EBX MOV 14:18:41 the number will not go inside the brackets ... it can be specified anywhere anyhow, so long as it is there in time 14:18:57 oh erm 14:19:00 the PLUS - inside or out 14:19:05 doesnt matter to me 14:19:14 outside works for me 14:19:51 it might matter as we get into base plus index plus multiplier pluss offset forms of addressing 14:20:04 show me 14:21:34 does mov EAX [EBP+EAX*4] ... exist?? 14:22:15 mov eax,[epb+eax*4] is perfectly valid 14:22:30 this is a problem 14:22:31 because 14:22:35 ok, how should that look in a forth assembler? 14:22:39 Even though you maybe have to add a 1-byte 0 displacement even on the IA-32 14:23:05 [reg*n] [reg+reg*n] and [reg+address+reg*n] are all legal 14:23:12 and you can have ANY registers in ANY order 14:23:22 you are going to have a fucking gazillion words 14:23:26 right, so they set flags within the assembler 14:23:30 nonono! 14:23:31 i would prefer you had [x] words for each register 14:23:37 right 14:23:40 and [x] [y] 14:23:49 and [x*n] [y*n] 14:23:52 fr each regisgter 14:23:55 ok, let's use rob_ert's example ... 14:24:03 mov eax,[epb+eax*4] is perfectly valid 14:24:03 rob_erts ? 14:24:11 robert no its not 14:24:16 It's not? 14:24:18 Why isn't it? 14:24:19 you cannot use a multiplier on ebp 14:24:23 Uhm 14:24:23 or esp 14:24:25 i dont believe 14:24:27 I used it on eax 14:24:29 Hm 14:24:30 he didn't 14:24:37 oh 14:24:38 heh 14:24:41 Check the NASM manual 14:24:41 he used it on eax 14:24:43 :) 14:24:49 then its legal :P 14:24:50 heh 14:25:00 http://www.octium.net/oldnasm/docs/nasmdoca.html 14:25:06 I can think of two syntaxes ... 14:25:06 There you have all valid combinations. 14:25:56 [ebp] +[eax*4] eax mov 14:26:11 but perhaps simpler to remember is ... 14:26:22 [ebp] +[eax] *4 eax mov 14:26:36 erm then you would need *4 and *8 etc defined 14:26:45 well, yeah 14:26:49 but beats ... 14:26:58 [reg*4] [reg*2] [reg*8] 14:27:05 defining +[eax*2] 14:27:06 "The index field encodes the register value of the index register, unless it is 4, in which case no index register is used (so ESP cannot be used as an index register)." 14:27:08 defining +[eax*4] 14:27:11 defining +[eax*8] 14:27:15 this way thers NO confusion over what reg is being *'d 14:27:18 defining +[ebx*2] 14:27:20 defining +[ebx*4] 14:27:23 defining +[ebx*8] 14:27:25 etc 14:27:43 tcn was working on a method to parse everyting between [ and ] 14:27:56 so that you can have ANY combination and the assembler would work out what you had in there 14:27:57 so 14:28:09 mov eax, [x+8+z*n] 14:28:11 would work 14:28:22 for all possible combinations 14:28:42 his code is in the hold directory if your intersted 14:28:46 THAT would be nice 14:29:04 mov eax, [put-anything-here] and the assembler works it out :) 14:29:14 Speuler was talking about that, too 14:29:15 you could affect the same thing in prefix too 14:29:28 x [anything], eax mov 14:29:34 make X parse the [anything] 14:29:41 it's more work than I'm willing to do for an assembler 14:29:46 :) 14:30:03 it would be the best damned forth assembler EVER written heh 14:30:19 this is a rather small but neccessary tool ... let's not make it complicated 14:30:25 tho ium not going to ask you to do that :) 14:30:40 if you give me a working assembler that i can use ill be happy 14:30:43 well, you can ASK 14:30:56 even if i have to suffer 5 # eax mov to begin with :P 14:31:08 god, what terrible punishment 14:31:11 i dont like to ask "too much" hhe 14:31:48 believe me, once you've finished recoding the isforth kernel, you'll never go back to prefix 14:32:16 trust me - i will heh 14:32:25 when i code asm - i think asm 14:32:29 well, unless your forced to by your tools 14:32:29 when i code forth - i think forth 14:32:49 i do want the assembler to support both tho - even if i DO switch over to always using prefix 14:32:57 i want to give the USERS the option 14:33:05 you'll find, I think, that the src dst op postfix is *SO* much more logical that you like it 14:33:19 that's fair ... it *IS* a mind bend at first 14:33:38 and inflexible minds break 14:33:39 as is most of "forth" 14:33:48 but i am realy an assembler coder first - 14:33:54 forth is a very very very close second 14:34:08 mrreach - thats a nice quote 14:34:13 it belongs in user games fortune! 14:34:16 thanks 14:34:38 im very very set in my ways. but i HAVE to stop and think sometimes 14:34:39 I thought it up all on my lonesome 14:34:43 you made me do it quite a few times 14:35:09 heh, wait 'till we talk religion and responsibility over some alcohol 14:35:11 i want my users to have what they need while still remaining true to my own beliefs about what a forth should be 14:35:27 mrreach next time im your way :) 14:35:34 make mine a JD :) 14:35:39 just one tho :) 14:35:43 straight up? 14:35:47 hell yes 14:35:56 arg! 14:35:57 i keep my bottle and my shot glasses in the freezer 14:36:13 ive not had a bottle in there in a few weeks tho 14:36:18 well, that's a trip to the liquer store, I've only got a gallon of Black Velvet 14:36:19 jd is a luxury 14:36:32 its a bit difficult to justify having it when ive not worked in 8 months 14:36:40 yep, I've been there 14:36:42 whats black velvet ? heh 14:36:55 a brand of sipping whiskey 14:36:57 i like almost any bourbon realy 14:37:17 the ONLY one i totally disqualify as being fit for human consumption is jim beam 14:37:24 I like mixed drinks, myself 14:37:32 i used to work in a bar 14:37:39 I think tequila should be banned 14:37:42 oh, ok 14:37:47 for every shot of jim beam we sold we went through about 50 bottles of jd 14:37:54 i never liked it 14:38:19 nasty stuff, and makes people mean 14:38:21 my moms bf used to have a mescal cactus :) 14:38:23 in england 14:38:30 he accidently pricked himself with it one day 14:38:33 he collects cacti 14:38:36 I've been looking for one, actually 14:38:42 his arm was paralyzed for a week 14:38:55 he illegally imported the seed i think hhe 14:39:02 might have done it legal - nop sure 14:39:03 not 14:39:06 the thorns on peyote are poisonous? 14:39:19 that's useful to know 14:39:38 I did a hell of a lot of looking around 14:40:05 and decided that the best way would be to go to a local reservation and spread some money around 14:40:16 :) 14:40:23 and act decent 14:42:37 anyway, we still have sorted out how to specify the various addressing modes 14:42:48 haven't rather 14:44:06 ok, the docs read ... 14:44:18 --- quit: Etaoin ("raise OverFlowError, "Ewwww, now it's all over the floor."") 14:44:29 The mod field, which occupies the two most significant bits of the byte, combines with 14:44:29 the r/m field to form 32 possible values: eight registers and 24 indexing modes. 14:46:56 k 14:47:46 so I see 16 funky methods of specifying addressing mode 14:48:21 show me all and we can discuss which to use :) 14:48:28 arg! 14:48:34 am trying to figure that out 14:49:00 ok, register direct, that's EAX-EDI 14:49:11 simple, done, that's 8 of 24 14:49:34 then there's register indrect ... [EAX] - [EDI] 14:49:44 --- join: Speuler (~andreas@195.30.184.51) joined #forth 14:49:47 that's 9 of 24? 14:49:50 greets, Speuler 14:49:55 good evening 14:49:58 hi mrreach 14:50:05 for shiny teeth 14:50:13 then there's register indrect plus offset ... +[EAX] - +[EDI] 14:51:02 and the offset can be packed in either 8 or 32 bits 14:52:17 there's Base+Index*Scale 14:52:24 there's no inbetween there 14:52:59 [EAX] +[EBX] *2 14:53:20 what dods *2 do 14:53:23 which register 14:53:24 that LOOKS like it covers everything ... am I missing something? 14:53:33 i think the *n should be inside the []'s 14:53:36 withteh register name 14:53:40 to the indirect register preceded by the "+" 14:53:47 that way theres no confusioon over what regi is being *'d 14:54:01 a bit confusing. 14:54:04 ok, but that expands the number of words needed exponentially 14:54:30 you would rather see +[EBX*2] ??? 14:54:54 yes 14:55:12 that would need 56 words to complete 14:55:22 argh 14:55:23 oops, wrong 14:55:32 28 words to complete 14:55:33 how many 14:55:36 hrm 14:55:49 7 registers * 4 scales 14:55:59 the *2 *4 and *8 off in space would be very confusing 14:56:13 vs 11 words 14:56:55 (default is *1, unless *2 *4 or *8 is specified) 14:58:15 yea but i would be veru confused over which [x] was being multiplied hehe 14:58:16 it _could_ be made clear in the docs that the scaled is applied to the SECOND register specified 14:58:26 and what order i needed to do things in heh 14:58:31 ooops, I made a typo ... that should be ... 14:58:49 [EAX] [EBX] *2 14:58:59 what gets *'d there 14:59:02 eax or ebx! 14:59:04 see 14:59:09 confusion factor 14:59:10 always the SECOND register 14:59:12 BOTh are legal 14:59:13 no 14:59:20 oh? 14:59:21 you can * a source and a destination 14:59:29 no you can't 14:59:29 mov eax,[ebx+2*edi] 14:59:37 oh 14:59:38 mov [eax+2*edi], ebxz 15:00:01 yes, but ONLY one of the src or dst 15:00:04 not both 15:00:08 correct 15:00:10 BUT 15:00:15 we going to have 15:00:17 the other must be a plain register 15:00:28 [eax] *2 [ebx] eax mov ? 15:00:33 wtf is that doing heh 15:00:44 it will cause an exception 15:00:47 mov eax, [eax+2*ebx] 15:01:03 the *2 is given before the second register is specified 15:01:18 so it THROWs 15:01:20 the 2* must come directly after the register its midifying 15:01:26 i dont have a throw 15:01:34 may not do so - not 100% sure yet 15:01:36 you should, it's elegant 15:01:40 i dislike the naming convention 15:01:52 * MrReach sighs, "OK" 15:02:10 ok, the system vomits, then 15:02:24 hehe 15:02:37 abort" is so simple 15:03:07 catch and throw are adding more complexity to the issue 15:03:10 its 15:03:13 featureitis 15:03:54 so you would like to see both ... [eax] *2 [ebx] eax mov ... and ... [eax] [ebx] *2 eax mov 15:03:57 is that right? 15:04:29 in the first the eax is being *2'd 15:04:33 in the second [ebx] is 15:04:38 yup 15:04:41 but its still a little obfuscated 15:04:58 in my system, the first form would cause an error 15:04:58 i think you should have some ,'s in there 15:05:07 [eax] *2 [ebx], eax mov 15:05:12 would make it look better 15:05:19 the , seperates sourcee and dest 15:05:34 eax, [ebx] *2 [ebx] 15:05:35 well, if I were to use a comma, I would make it a seperate word 15:05:37 mov 15:05:42 eax, [ebx] *2 [ebx] mov 15:05:46 not encourage combinatorial explosion 15:05:57 no. not a [space] comma [space] 15:06:02 but [reg], 15:06:15 the comma is part of the [reg] word 15:07:32 so now we have [EAX]-[EDI] and +[EAX]-+[EDI] [EAX],-[EDI], and +[EAX],-+[EDI], 15:07:44 I don't think so 15:07:55 erm 15:07:59 [eax] 15:07:59 [eax], 15:08:12 what are the ]+-[ stuff ? 15:08:25 oh, and add *2, *4, *8, 15:08:33 and you only need ONE comma soe [eax],-[edi], is just wrong 15:08:39 plus immediate offset 15:08:52 [eax] -[edi], 15:09:00 its a mess isnt it 15:09:04 $deadbeef +[EAX] EAX MOV 15:09:09 $deadbeef +[EAX], EAX MOV 15:09:21 postfix is so much more obvious in assembler 15:09:37 mov eax, [ebx] [eax] 2* 15:09:40 was that praise of postfix I just heard? 15:09:48 ah! ok 15:09:55 mov eax, $1123 +[ebx] [eax] 2* 15:10:01 i meant prefix 15:10:02 ugh 15:10:33 the above scans easier in the mind than trying to figure out all the PREFIX variations on the thieme 15:10:36 ok, how about this ruleset ... 15:12:30 when using SIB addressing, there MUST be a base register ([EAX] to [EDI]) and there MUST be a scaled register (+[EAX] to +[EDI]) and an OPTIONAL scaling factor (*2, *4, *8) ... the scaling factor is ALWAYS aplied to the scaled register 15:13:32 note that the base and scale registers can be specified in either order, but the scaled always applies to the one with the plus sign 15:13:42 does that seem logical and clear? 15:14:08 erm show me exapmples of each - with the nasm equivs 15:14:20 not all of them - just a few so i can see 15:14:24 --- quit: Speuler ("not all of them - just a few so i can see") 15:14:35 ok, type an NASM line, and I'll give you the equivalent 15:14:47 (I may be able to give several for each) 15:14:53 mov eax, [ebx+2*ecx] 15:15:00 ok 15:15:17 [ebx] +[ecx] *2 eax mov 15:15:46 mov eax, [esp+4] 15:15:48 now, if I wanted to confuse people, I *COULD* do 15:16:01 +[ecx] [ebx] *2 eax mov 15:16:06 ok 15:16:24 4 +[esp] eax mov 15:16:32 no alternate coding for that one 15:16:55 xchg ebx, [ebx+esp] 15:17:03 ok 15:17:31 [ebx] +[esp] ebx xchg 15:17:41 or 15:17:52 +[esp] [ebx] ebx xchg 15:18:11 ooops, that might demand an offset 15:18:17 very confusing 15:18:17 cant easilly tell source, destination 15:18:23 the , is needed in there 15:18:23 it realy is 15:18:27 source is always first 15:18:41 and only one of them gets to be funky 15:19:00 mov 1234+[eax+2*ebx], ebx 15:19:00 but how far does "first go" 15:19:14 there are several things that can be done to clear confusion ... 15:19:19 "first" can be 1 2 or 3 items 15:19:31 [ebx] +[esp] ebx xchg 15:19:37 no 15:19:49 also, on case insensitive systems ... 15:19:59 [ebx] +[esp] EBX xchg 15:20:04 thats a poor style you will end up with instrucitons that span 60% of a line 15:20:06 dest get capped 15:20:06 very very bad 15:20:21 erm - again no 15:20:31 mov 1234+[eax+2*ebx], ebx 15:20:33 ok 15:20:44 there are a number of things i dont like. tabs. and upper case code come to mind heh 15:20:44 hmmm ... 15:20:51 see! 15:20:52 we haven't done that one yet ... 15:20:54 where is source 15:20:57 where is destination 15:21:08 no, that's not the issue 15:21:16 that parts still easy 15:21:19 with the above methods it would be difficult to see where s a d d were 15:21:24 and how to distinguish between 15:21:33 that f.cking orthogonal instruction set is the poor thing. the style just emphasize it... 15:21:46 mov [eax+2*ebx], eax and mov [eax+2*ewbx], eax 15:21:49 1234 +[eax] +[ebx] *2 ebx mov 15:21:54 erm let me try retype that 15:22:03 ebx 1234 +[eax] +[ebx] *2 mov 15:22:14 mov [eax+2*ebx], eax - mov eax, [eax+2*ebx] 15:22:17 show me both of those 15:22:25 erm ... you pointed out a logical flaw, though 15:22:29 ok 15:23:04 [eax] +[ebx] *2 eax mov 15:23:06 and 15:23:15 eax [eax] +[ebx] *2 mov 15:24:19 it still looks complecated to me heh 15:24:30 the comma not being there is confusion factor to me 15:24:32 I'm using three spaces to seperate src and dst opers, trying to line up the right hand side is a lost cause 15:24:36 but i agree 15:24:45 adding 2874587234592789284 new words is bad heh 15:25:00 well, the comma might be seperate 15:25:11 [eax] +[ebx] *2 , eax mov 15:25:14 comma is spoken for 15:25:21 i dislike overloading words 15:25:21 eax , [eax] +[ebx] *2 mov 15:25:26 erm 15:25:31 in this case it might just work 15:25:44 only forth also assembler definitions 15:25:45 where 15:25:54 the comma is a noop, really 15:25:56 I440r: use semicolon then instead of comma :)))) 15:25:57 ' noop aloias coom 15:25:58 heh 15:25:59 yea 15:26:04 onetom no 15:26:11 ' noop alias comma 15:26:16 I440r: just joking ;) 15:26:19 the assembler version of comma is a noop 15:26:21 heh 15:26:30 or greater than, to indicate direction of flow ... 15:26:32 you typed the idea faster than me :) 15:26:36 hrm 15:26:37 no 15:26:40 EAX > EBX MOV 15:26:44 im averst to inventing shit like that 15:26:47 its still bad 15:26:53 the overloaded comma is better heh 15:26:53 * MrReach chuckles. 15:27:03 but i REALY REALY hate overloading 15:27:09 actually, for MOV it's redundant 15:27:16 double >>? 15:27:18 giving one word 239479238456982346924 different functions based on context is BAD 15:27:30 well, AND OR will be overloaded 15:27:36 i know 15:27:38 as forth words and ASM ops 15:27:58 Seargent figured a way out of that in Pygmy 15:28:01 so i can live with , being overloaded to a noop withing code and end-code pair 15:28:08 all ASM ops ended with comma 15:28:15 ive seen an assembler that has NO mov 15:28:16 it jsut does 15:28:19 reb,reg 15:28:23 reg, reg 15:28:27 i also thought about this topic some weeks b4, but cant remember the result 15:28:31 its ugly 15:28:41 EAX EBX MOV, 15:28:49 i had to suspend working on my PIC 4th asm 15:28:59 ugh thats horrible 15:29:06 * MrReach shrugs. 15:29:10 the , isnt seperating source and destination 15:29:17 its seperating source and destination from opcode 15:29:19 stupid 15:29:23 don't forget, I440r, that brainstorming can be a valuable tool 15:29:26 seargant has some FUCKED up ideas heh 15:29:36 even a lame answer might be worked into an elegant solution 15:29:38 thatws why were talking NOW :) 15:30:01 the most elegant solution is to make the assembler , a noop 15:30:07 that also makes it OPTIONAL 15:30:18 [x] y mov 15:30:23 [x] y , mov 15:30:25 erm 15:30:28 no 15:30:32 [x] , y mov 15:30:32 heh 15:30:44 , [x] y mov 15:30:46 :) 15:30:50 translates to mov x, [y] 15:32:10 heh, either of those would work, even the typo 15:32:18 i know 15:32:23 ??? not to mov [x], y ??? 15:32:29 maybe the , should test syntax ? 15:33:00 why? does it NEED to??? 15:33:22 if a coder is lame, there is precious little we can do for him/her 15:33:49 and no power on earth can prevent a coder from obfuscating 15:34:18 correct 15:34:30 even my if and then dont check for each other hehe 15:34:39 if you try ": xxx ..... if ; 15:34:45 it will compile for you heh 15:35:44 hmmmm ... 15:36:09 can you code : foo ... if ; : bar then ... ; ??? 15:36:19 yes 15:36:29 i allow it 15:36:32 but discourage it 15:36:36 : begin ... ; 15:36:40 : ... again ; 15:37:13 oh, man ... that is *SO* nasty!!! 15:37:28 its soooooo chuck moore heh 15:37:33 forth inc do it alot too 15:37:42 but adding checks into the compile slows it down 15:37:44 i dont what that 15:37:55 i allow the users to write bad code 15:38:01 i just encourage them NOT to 15:38:11 well, IMO, the task is not to hinder nasty coders 15:38:28 but to provide good words 15:38:35 good tools 15:38:49 its like one of the quots in "quotes" in isforth 15:39:09 unix doesnt stop people from doing stupid things because that would prevent them doing clever things 15:39:21 yup 15:40:22 hey, we have a glaring hole in syntax ... 15:40:41 is there a diff between SIB and SIB+offest ??? 15:40:47 where 15:40:58 is SIB+offset allowed? 15:41:30 Think so... 15:41:33 erm i dunno 15:41:40 Isn't that when esp is encoded? 15:41:56 Or bp in real mode... 15:42:24 [*] means a disp32 with no base if MOD is 00, [EBP] otherwise. This provides the following addressing modes: 15:42:24 disp32[index] (MOD=00) 15:42:24 disp8[EBP][index] (MOD=01) 15:42:24 disp32[EBP][index] (MOD=10) 15:42:49 arg! a bloody irregularity 15:42:57 STUPID Intel!!! 15:42:57 Yay, exceptions! 15:43:25 x86 is no clean RISC arch :D 15:43:43 so I've been told, and so I'm discovering 15:44:08 stupid piece of s**t spagetti microprocessor 15:44:12 Hehe 15:44:32 hehehe 15:44:37 * rob_ert imagines the internal structure looking a bit like...a bit text adventure in BASIC. 15:44:40 suck it up :P 15:44:59 mmMmm.. 15:45:14 YOU'RE not even trying to code an assembler 15:45:28 maybe it's because you're smart *SIGH* 15:45:33 Am I not? :) 15:45:34 heh 15:45:37 I wrote one a long time ago... 15:45:42 if i could i would 15:45:53 But only for real mode, pmode must be a bitch to parse. 15:45:58 rob_ert: for x86? 15:45:58 The addressing and so... 15:46:03 Yes, 8086 15:46:04 er 15:46:05 80186 15:46:19 yes, the SH3 is *SO* much easier 15:46:26 --- join: Etaoin (~david@ljk8.sat.net) joined #forth 15:46:34 even with all the funky floating point and DSP functions 15:46:40 greets, Etaoin 15:46:44 zoop 15:47:03 erm - floating point can be added WAY down the road 15:47:11 like an infinite distance down the road for all i care 15:47:22 rob_ert: actually, we're hammering out the parsing of Pentium instructions pretty quickly here 15:47:34 :) 15:47:36 traveling an infinite distance would take an awfuly long time 15:47:40 What kind of syntax, forth? 15:47:46 yes 15:48:08 Hmm... at least easier than intel syntax to parse. 15:48:39 MrReach: allowing the separation of IF-THEN BEGIN-UNTIL is a very useful thing if u want to write many similar loops or decisions 15:48:44 mov eax, [ebp+2*ebx] becomes [ebp] +[ebx] *2 eax mov 15:49:05 Like I said, a lot better., 15:49:11 _a lot_ 15:49:14 :) 15:49:24 tell that to I440r ... he doesn't believe me 15:49:37 forth style assembler is fucked in the head 15:49:44 ill live with it to begin with 15:49:47 * MrReach laughs out loud. 15:49:51 Just imagine this: mov eax,dword[mylabel+eax*(2+2)+mylabel2+ebx] 15:50:00 MrReach: and i was very sad seeing gforth did allow it to me, so i had to copy the definition of if into my own words definition 15:50:02 but i realy realy relay want a fix for it :) 15:50:55 well, you COULD write a fully intel compliant parser and drop into it in a CODE word 15:51:04 but I would definately recommend against it 15:51:31 mostly because I abhor recursive descent parsing 15:51:37 heheh 15:51:47 that i wouldnt want 15:51:57 it comes with the territory, buddy 15:52:17 all: how should i compile in an immediate word? 15:52:18 mrreach did you grab isforths latest ? 15:52:24 yes, I did 15:52:37 look in /hold 15:52:42 in isforth/hold 15:53:18 tcns code wanst recursive i dont believe 15:55:05 MrReach: whats wrong w "recursive descent parsing"? 15:55:23 recursion 15:55:27 nuff sed 15:55:29 it's a royal bitch to follow program flow 15:56:08 MrReach: ah, so i dont understand what is "recursive descent parsing" :( 15:56:13 some operators are unidirectional, some bidirectional right authority, some bedirectional left authority 15:56:49 ok, let's take a mathmatical expression ... 1+2*4+8 15:57:05 which precedents are followed first? 15:57:07 why? 15:57:15 and how is that parsed? 15:57:41 * rob_ert knows a great example code of this, a little C program called SBasic. 15:57:43 BNF has all the tools for describing such a situation 15:57:49 in c, that equates to 1+(2*4)+8 ... 17 15:58:11 and there r more the one BNF grammar implementations for forth 15:58:32 recursive descent works by finding the operator with the highest precedence, * in this case 15:58:48 and then passing both sides to itself recursively 15:59:10 aha. i still c 15:59:19 erm ... should I have said _lowest precedence_ ??? 15:59:30 arg! I *HATE* it!!! 15:59:37 hehe 16:00:10 in such an infix style these problems exist. thats right. 16:00:19 then there's unipolor operators, like - 16:00:35 but they r already solved. 16:00:46 for years 16:00:53 which can be used in two contexts ... -1234 ... and ... 5678-1234 16:01:08 yes, this method was invented in the mid-60s 16:01:31 and that method works too 16:01:33 and, in fact, you have to go to 1960s textbooks to find the process detailed 16:01:38 then whats the problem? 16:01:55 it complicated and hard to follow 16:02:21 hardly believe... 16:02:26 and you end up with forth-like syntax anyway, in the end 16:02:43 what does lex-yacc use in your opinion? 16:02:53 not sure, never used them 16:03:08 I'm sure there's a r-d parser in there somewhere 16:03:28 ever try to come up with a lex definition for Forth??? 16:03:29 they use BNF representation of grammars 16:03:58 and thats taught at the unversity 16:04:09 (on the blueberry lesson :) 16:04:13 yes, I use BNF or mBNF all the time 16:04:30 (blueberry = áfonya) 16:05:00 * rob_ert eats some áfonya pie. 16:05:22 (áfonya could b an abbrev of Általános és FOrmális NYelvek) 16:05:23 anyway, I'm as opionated about recursive descent parsing as I440r is about threading 16:05:42 heh 16:05:47 (what is General and FOrmal Languages) 16:05:52 there are only 2 threading methods in forth 16:05:56 direct 16:05:56 indirect 16:06:04 and only one GOOD one :P 16:06:04 hhe 16:06:06 heh, yes, we've been over this a million times 16:06:26 cant hurt to go over it again :P 16:06:48 only application i can see where indirect threading is better is in a true harvard architecture 16:06:51 I thought you considered token threading to be valid, if not lame 16:06:56 was I wrong? 16:07:17 i dont know token threading 16:07:28 token threading is also indirect threading 16:07:42 its just a double indirect 1 16:07:48 erm ... in the word, the cells store an offset into a lookup table of machine code adresses 16:08:02 ohy 16:08:04 I440r: then, u also should read through 16:08:11 that would be valid i believe 16:08:17 i would consider that a modifed indirect threading 16:08:21 ok 16:08:28 that peter knaggs article: Forth: An Underview 16:08:35 but there would be no advantage to it 16:08:38 in any case, it have proven itself extremely portable in Java 16:08:44 yes, there is 16:09:11 it would only be smaller if words are used alot 16:09:13 so long as the offsets remain the same, it is binary portable across systems 16:09:25 MOST of the words in the kernel are only used 1 or 2 times in application code 16:09:30 ugh 16:09:43 heh 16:09:44 who the fuck gives a damn about binary portable :P 16:09:53 only an idiot :P 16:10:00 this is forth 16:10:02 that is what keeps Java afloat 16:10:07 the cost of writing it from scratch is 16:10:08 * onetom idiot :) 16:10:13 it's not worth a dirty nickle otherwise 16:10:23 ZERO!!! 16:10:38 * rob_ert thinks about a Java forth... 16:10:45 there is one 16:10:45 Are there any forth applets? :P 16:10:52 not as yet, no 16:10:58 Oh... 16:11:09 I've seen forth running on a web-page, though ... written in Java 16:11:16 i think there r! 16:11:19 Mmmmm... cool. 16:11:40 that would imply a "forth plugin" 16:11:47 MrReach: i also saw such... 16:11:49 *BAD* idea 16:12:08 forth, generally, lets you do anything with a machine 16:12:38 *NOT* what you want exposed to the vagaries of HTML parsing 16:14:19 im writing that forth bot to come in here remember... 16:14:30 THAT will allow selected ppl to be able to write forth code in here :) 16:14:39 and it will compile into the forth the bot is running on :) 16:14:49 ~ : foo ..... ; 16:14:54 ~ foo 16:14:54 or something like that heh 16:14:55 i'll bet I can find a way to kill it 16:15:04 and maybe kill the server it runs on 16:15:37 which is why i said "a few trusted users" heh 16:15:37 not "anyone" heh 16:16:51 a forth plugin for webwork would be extraordinarily difficult to do safely 16:16:58 and it would prob be dog slow 16:17:50 not if you locked the web interface activated stuff into a web interface vocabulary 16:17:52 and thus restricted what could be done fromn it 16:17:55 from 16:18:09 anybody know of some irc-bot programming tutorial? 16:18:16 yes, but each fetch and store would have to be bounds checked 16:18:29 onetom: there's dozen of them 16:18:56 could u advice me a concise 1? 16:19:16 no, but can point at a few 16:19:25 it's been 5 years since I messed with a bot 16:19:53 coz i have some ideas on interfacing forth w an ircbot 16:20:01 my bot refuses to connect now 16:20:05 http://www.botspot.com/ 16:20:11 i think one of the changes i made somewhere alot the line broke it heh 16:20:13 has it been klined??? 16:20:18 ive not been coding it 16:20:19 no 16:20:23 heh, an eggdrop?? 16:20:27 i mean it wont connecvt to my local irc either heh 16:20:29 no 16:20:31 forth bot 16:20:35 the code is b0rked right now 16:20:38 need to fix it 16:20:45 ah! ok 16:20:56 i think i know what the problem is tho 16:21:03 i changed <# # #> etc 16:21:10 they # now expects a double 16:21:18 and uses mu/mod not /mod 16:21:38 -1 $f /mod always returned remainder of $f and quotient of -1 16:21:41 grrr 16:21:48 MrReach: http://www.botspot.com/ seems a serious 1. thx. 16:22:06 i.e. #s extracted an infinite number of $f's from -1 during conversion heh 16:25:27 http://www.knfpub.com/axe/chat/irc.html 16:26:13 yes, <# usually sets up a double on the stack, and the words use a variable (DBL? in F83) to determine what to return 16:26:27 bbiab 16:26:32 --- nick: MrReach -> MrGone 16:27:04 Bye :) 16:27:18 im not using dbl 16:27:26 you cant enter a double n umber eaither 11111.2322 16:27:28 etc 16:30:38 i could never figure out how dbl worked in fpc or f83 16:30:44 realy fucking obfuscated 16:30:44 heh 16:35:07 I440r: what wrong w dbls in fpc/f83? 16:35:43 i can not understand the number input code 16:35:53 ive gone over it again and again and i cannot see how "dbl" works 16:36:04 its ultra obfuscated 16:36:48 im trying to avoid obfuscation 16:37:04 and i realy wanted to avoid theuse of 64 bit numbers in isforth 16:37:09 thers NO fucking need for that level of bullshit 16:37:27 64 bits of precision is in the TRILLIONS 16:37:35 nobody needs that except uncle sam 16:38:17 32 bits is PLENTY 16:38:33 but i couldnt get my number input to work so i had to rip it out of win32for heh 16:38:36 doh 16:38:37 sorta 16:39:00 hmmm hmmm 16:39:03 its sortra my code with his m/mod etc 16:39:38 its pretty convenient to deal w UNIX time in a microsecond resolution 16:40:08 my time code does 16:40:13 but w that presicion u definitely need doubles 16:40:20 it did even before i made number input use 64 bit 16:40:25 no you dont 16:40:31 i didnt 16:40:35 you just need TWO singles :) 16:40:53 then u handle it w no MICROsec res 16:40:56 my .elapsed shows hours, minutes, seconds, 100ths of a second 16:41:08 hr:mn:sc.xxx 16:41:53 but what if u have to do arithmetics w time? 16:42:14 you do tz@ tz 4+ @ 16:42:22 erm make those tv not tz 16:42:48 that will be the time since the epoch in seconds btw 16:42:57 how you use it is up to you 16:43:36 1, sec resolution is not enough all the time 16:43:54 its NOT 1 second resolution 16:44:05 its .001 second resolution 16:44:10 2, im still dealing w 16 or even 8 bit 4ths 16:44:30 "epoch in seconds" 16:44:43 i know 16:45:12 man 2 gettimeofday 16:45:13 so im writing my code 2 b portable to those systems 16:45:21 --- quit: rob_ert ("Torsk") 16:46:15 so i use dbls if have to handle 16 bit wide numbers :) 16:46:20 no 4 bit ??? :) 16:46:21 heh 16:46:29 nec75x rules! hehe 16:46:35 heh 16:46:39 nooo :) 4bit is really ancient 16:47:36 and this coding style makes my programs testable (simulatable) 16:47:58 also on a >8bit forth 16:48:55 so, as u can c, dbl handling is not equal to the need of 64bits numbers 16:50:05 i enclose my dbl handling code between u>p and p>u 16:50:43 and the definition of these words depend on the target arch 16:51:29 : p>u ( ud -- low high ) 16:51:29 [ hex ] 16:51:29 drop \ high cell is irrelevant 16:51:29 >r r@ 00FF and 16:51:29 r> 0FF00 and 8 rshift 16:51:30 [ decimal ] 16:51:32 ; 16:51:36 : u>p ( low high -- ud ) 16:51:36 8 lshift + 0 16:51:38 ; 16:53:10 for storing/moving and transmitting data, i use its unpacked form 16:53:54 and for doing artihmetics on dbl data i temporarily convert it to packed w u>p 16:54:51 and these words do nothing if im compiling the code to an 8bit target 16:55:56 --- join: futhin (thin@h24-64-174-2.cg.shawcable.net) joined #forth 16:56:54 --- part: futhin left #forth 16:58:36 --- join: futhin (thin@h24-64-174-2.cg.shawcable.net) joined #forth 16:59:00 ugh 16:59:04 trillian sucks 16:59:43 hm 17:00:05 heh 17:00:07 it does for irc 17:00:47 yeah 17:01:03 i'm trying out different skins 17:01:23 --- quit: futhin (Client Quit) 17:04:03 I440r: wow, epic4 is programmable in tcl 17:04:17 thats very nice 17:04:19 heh 17:04:36 probably i ll try 2 code up some irc bot in it 17:04:46 --- join: futhin (~thin@h24-64-174-2.cg.shawcable.net) joined #forth 17:05:21 i plan 2 interface the bot w 4th via simple files in a specific dir 17:05:41 i also have some code of such 17:06:51 http://hermantom.homeip.net/~tom/remote-control.fs 17:08:00 tho, its just a 1way system yet :( 17:10:13 xchat is good. 17:10:43 trillian is ok if you have the right skin :) 17:10:55 the skin changes some of the functionality 17:11:35 stupid, but true 17:12:12 sort of.. i'm sure that it's a cardinal rule that skins don't change functionality, but rules are meant to be broken i guess 17:13:09 rules were meant to be followed, I image 17:13:26 otherwise there's no sense it writing a rule 17:13:32 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 17:13:35 s/image/imagine/ 17:13:49 --- join: Soap- (flop@210-55-85-226.dialup.xtra.co.nz) joined #forth 17:15:18 quite a bit of innovation comes from breaking the rules, so breaking rules can be a rule in itself 17:16:55 to a point, sure 17:49:12 --- quit: I440r ("Reality Strikes Again") 18:10:27 kung fu money! 18:10:30 heeee-yaa! 18:19:09 --- quit: futhin ("Forth Stud") 18:41:15 --- quit: qless ("Download Gaim [http://gaim.sourceforge.net/]") 18:56:08 --- part: Etaoin left #forth 19:07:48 --- quit: Soap- (Read error: 113 (No route to host)) 19:23:24 --- nick: MrGone -> MrReach 19:24:43 --- join: I440r (~mark4@11Cust28.tnt2.bloomington.in.temp.da.uu.net) joined #forth 19:24:48 welcome back 19:25:01 hi mrreach 19:25:07 u finished the assembler yet ??? 19:25:10 hehehe 19:25:15 * MrReach is reading backscroll, and will illustrate the need for 64 bit numbers momentarily 19:25:24 k 19:25:31 well i have them :) 19:25:38 but you cant go xxx.yyy to enter one 19:29:40 how large is your largest hard disk? how large do you expect the next one to be? 19:29:56 hehe 19:30:08 but isforth wont be doing any direct disk writes heh 19:30:24 i an dont think anyone will be using isforth to do any :) 19:30:31 no, but it's not unreasonable to ask your forth how much free space is left on your drive 19:30:48 but 64 bits are possible in isforth 19:31:04 although, frankly, I'm more likely to s" df" exec 19:31:20 ! 19:31:20 heh 19:31:31 ok, I can explain the confusion you're describing 19:31:33 erm s" is bad 19:31:36 : foo s" xxx" blah ; 19:31:44 the s" doesnt acvtually DOo anytyhing with the string 19:31:46 it took me a week to figure out what they were doing and why they did it that way, too 19:31:52 its just IN THE WAY hehe 19:32:05 create string ," xxx" 19:32:05 is better :) 19:32:10 k 19:32:10 yea 19:32:18 s" is one of the ways to create string literals 19:32:23 anyway ... 19:32:28 it fucked with my head for ages and i finally gave in :P 19:32:38 it seems like they are using dpl as a dual purpose thing 19:33:02 it is traditional that a double number be represented as an integer with a decimal point in it somewhere 19:33:26 yes. INLINE string literals. ." is an inline string literal. but ." and abort" USE the string. they dont jut arbitarillky dump a string right in the middle of the execution path that you then have to branch arround before you can use it 19:33:35 yes 19:33:35 xxx.yyy 19:33:37 so, when you start parsing the number, you have NO idea if it's going to be a single or a double when you're finished 19:33:59 what's more, the decimal may be the last character, regardless of the size of the number 19:34:02 rite 19:34:19 0. 19:34:26 is 0.0 19:34:30 so, when you start parsing the number, you assume a double 19:34:34 yes 19:34:43 ANY . in the number string makes it a double 19:34:43 i understand taht 19:34:43 yes 19:34:51 ok 19:34:51 and set a flag saying whether the result is going to be a double or a single 19:35:00 but they keep adding shit to dpl 19:35:09 dpl? 19:35:10 dpl isnt just a FLAG saying "yes we got a '.' in there" 19:35:18 do you mean dbl? 19:35:26 dbl 19:35:34 yes i meant dbl 19:35:41 mistyle 19:35:49 learn to read my mistypes - i do alot :P 19:35:50 ok, you typo'd it twice the same way, that confused me 19:36:11 heh 19:36:23 THEY might use dbl? to hold other info 19:36:27 if dbl was just a flag it would be easy to understant what they are doing 19:36:34 but its not 19:37:01 but knowing that it's a flag for the type of result is all you need to know to implement <# # #S #> 19:37:42 actually, what they MIGHT be doing ... 19:37:57 erm 19:38:02 is storing the execuation token of the word to compile a literal in dbl? 19:38:12 <# # and #> etc are already implemented 19:38:18 and they are already 64 bit 19:38:18 they arent the problem 19:38:38 its "12345" <--- input of numbers - not output 19:38:48 123.456 <-- what the fsck is f83 and fpc doing with dbl ? 19:39:09 oh, that's right, <# # #S and #> are for output, not input ... my mistake 19:39:44 :) heh 19:39:45 please paste the lines where something is stored into dbl 19:39:53 brain fart :) 19:39:53 that happens with me alot too :) 19:40:02 brb coffee 19:40:05 ok 19:41:10 ok hang on - ill go find them 19:41:32 i cant paste tho - but ill copy it over. fscking emulate 3 wont work with this fscking touchpad grrr hehe 19:41:41 brb 19:41:41 looking for it 19:41:53 * MrReach offers some cheese to go with the whine. 19:42:29 that's what you get for trying to use exotic hardware with Linux 19:42:41 bet that touchpad works just fine with Winblows 19:44:19 --- join: futhin (~thin@h24-64-174-2.cg.shawcable.net) joined #forth 19:44:28 it does. but winblows keeps falling over 19:44:32 mrreach 19:44:35 and i4404 19:44:36 and i440r 19:44:37 :P 19:44:40 greets, futhin 19:44:40 let's brainstorm ;) 19:44:43 ok 19:44:43 : (number?) 19:44:44 on the asm issue 19:45:12 0 0 rot dup 1+ c@ ascii - - dup >r - dpl on 19:45:12 begin 19:45:18 why not remake the assembly language, change the syntax, make it better, etc ? ;) 19:45:30 convert dup c@ ascii , ascci / between 19:45:30 while 19:45:30 dpl off 19:45:30 repeast 19:45:44 -rot r> if dnegate then 19:45:45 move eax, ebx or move ebx to eax or whatever 19:45:52 rot c@ bl = ; 19:45:58 jump, repeat, etc.. 19:45:59 ugh assume dpl on at start 19:45:59 but for every digit do dpl off 19:46:06 grr 19:46:14 : number? 19:46:21 false over count bounds 19:46:21 ?do 19:46:24 that's WIERD 19:46:32 ern no this has nothing about dpl in it 19:46:46 aha 19:46:53 : convert 19:46:53 begin 19:47:02 1+ dup>r c@ base @ digit 19:47:09 while 19:47:14 swap base @ u*d drop rot 19:47:20 duh! I get it! 19:47:23 base @ u*d d+ 19:47:29 double? if dpl incr then r> 19:47:29 repeat 19:47:36 drop r> 19:47:49 i see NOTHING looking for a '.' 19:47:49 at all 19:48:06 : double? dpl @ 1+ 0<> ; 19:48:26 what does ',' and '/' frame??? 19:48:46 ',' is like ascii , 19:48:55 '/' is like ascii / 19:49:01 so between 0x2c and 19:49:03 erm 19:49:05 let me check 19:49:15 i forget the asciio code for / heh 19:49:40 erm $28 abd $2c 19:50:03 it frames the two characters '-' and '.' 19:50:29 ( ) * + , 19:50:42 erm no 19:50:49 $28 to $2c is 19:50:57 ( ) * + , 19:50:57 those 19:51:03 ( = ascii $28 19:51:09 0 = ascii $29 19:51:09 etc 19:51:16 ) even 19:51:20 futhin: what did you see in the logs that you agreed or disagreed with??? 19:52:06 the order of characters is '+' ',' '-' '.' and '/' 19:52:23 mrreach: i liked the prefix :P mov eax , [eax] +[ebx] etc :P 19:52:39 so the phrase 'ascii , ascii / between' is true for dash and dot 19:52:49 in which case dpl gets set off 19:53:12 erm oh 19:53:27 the loop, apparently, is so that more than one dash or dot can be in the number 19:53:28 so if its a . 19:53:28 dpl is turned off 19:53:33 correct 19:53:45 why would they allo 19:53:54 0123-456 as a number 19:54:00 mrreach: i think that the better way to go might be to reinvent the assembly language. i mean, look at "mov ax,bx" not exactly easy to read for newbies, and having all the mnemonics in 3 letters is a holdover from the ancient times when memory meant something. why not "move" "jump" , expand them out fully.. change the syntax maybe 19:54:02 - means same as . in this case ? 19:54:03 futhin: let me try to be more clear ... I'm not going to write a prefix assembler in forth, PERIOD 19:54:13 apparently that is what the code says 19:54:30 i can undedrestand why dpl incr 19:54:46 use the BNF code ;) 19:54:47 if I were starting from scratch and writing in either ASM or C, *THEN* I might write a prefix assembler. 19:55:02 yeah ok 19:55:07 but that doesn't change the last thing i said 19:55:14 mureach you mean your not going to do any postifix ? 19:55:15 concerning reinventing 19:55:16 heh 19:55:24 yes, quite true 19:55:28 however 19:55:31 i440r: he said prefix 19:55:43 mureach you mean your not going to do any prefix i mean 19:55:53 erm 19:55:53 yes i kniw heh 19:56:02 i mistyped again 19:56:09 I do not intend to rewrite the entire Intel manual regarding the pentium processor, so it behooves me to use intel mnemonics, or something very close to them 19:56:18 make it possible for me to make it either or at a later date then 19:56:34 yes 19:56:44 intel syntax is a must 19:56:46 I have no intention of ever writing a prefix assembler for Forth 19:56:48 yeah, it's probably not pratical to reinvent assembly, as interesting as that might be :) 19:57:05 forth provides the tools to do it in postfix w/o hardly an effort 19:57:15 5 # eax mov is acceptable if at a later date we can implement mov eax, # 5 :) 19:57:41 that's fine that you have that opinion, but I leave it as an exercise for the reader 19:58:22 mrreach: let me explain sort of what i was thinking with something like "mov ax , bx" 19:58:29 i was thinking that mov would set a flag 19:58:31 in a table 19:58:32 futhin: also, the coder can write his own macros ... and is, in fact, encouraged to do so 19:59:00 'next' is such a macro that will be used extensively 19:59:02 probably need an end word 19:59:17 mov ax , bx ; 19:59:22 mov sets a flag in a table 19:59:26 in the prefix assemblers I've examined ... 19:59:46 and ax , bx get executed, and then ; looks in the table and puts mov op into place 19:59:57 what do you think of that idea? 20:00:02 it's less prefix 20:00:05 no reading ahead 20:00:06 the current instruction is compiled when either the end-of-line is reached, or when another assembler opcode is encountered 20:00:12 it's still mostly postfix 20:00:57 that is workable ... and also how most prefix assemblers are written 20:01:14 oh 20:01:18 i thought my idea was original 20:01:19 heh 20:01:38 i came up with it on my own 20:01:50 that is very good thinking, actually 20:02:02 i read Thinking Forth 20:02:10 even though nothing specific 20:02:21 if parse returns a count of 0, then also assemble the current instruction 20:02:24 from the book, i probably think better about forth 20:03:17 I do not anticipate having to parse anything, however 20:03:20 mrreach: changing the subject back onto the assembler syntax issue.. what are the various options? 20:03:30 what are the various different ways it can be done ? 20:03:39 in postfix 20:03:50 but, if you want to see where I'm willing to violate ANS ... I intend to support ALL kinds of number parsing 20:04:11 ok, there's two variables 20:04:25 i440r: how hard is it to code vocabulary? :) 20:04:27 on is operand order ... src dst OR dst src 20:04:41 the other is prefix or postfix 20:04:46 all kinds of number parsing ? 20:04:46 vocabulary is easy 20:04:53 so that gives 4 possible ways 20:05:01 just next to impossible to implement it withy nasm tho 20:05:08 but i might go back and try again 20:05:16 all words in one huge list is realy bad 20:05:22 why should the assembler affect things? 20:05:29 it's still the same language 20:05:42 yes, binary, octal, decimal, hex, single char, and quad char 20:05:50 nasm supports macros, etc 20:06:14 because nasm uses macros to create the linked lists 20:06:14 futhin: some of the assembler words will overlap with normal forth words 20:06:29 but linking one word on one list - then another word on a different list 20:06:43 then linking the nexxt word on the original list etc 20:06:50 fucking almost impossible 20:07:04 when I wrote my forth, all the kernel stuff went into one list during metacomilation 20:07:25 but the infrastructure for multiple vocabs was in place and updated properly 20:08:25 implementing a hash table in NASM would be pure hell, IMO 20:09:02 it's easy in Forth, though @:^> 20:09:25 heheh 20:09:34 hashing i can do 20:09:52 if u look at isforth when i fire it up i have to relocate th eheaders 20:10:03 and as i relocate them i can hash them into whaqt ever chain 20:10:26 heh, like I said, easy in forth ... hell in NASM 20:10:31 when i DO have hasing im going to have to have ALL words linked in ONE big chain. and each word linked to its own hash chain table 20:10:36 so i CAN relocate them 20:10:51 i need to be able to scan from first header to last header when relocating 20:11:02 i could amke the reloacet put each word in its own hash chain 20:11:09 arg! antoher pointer in head space 20:11:13 then when i compile new words i can hash 20:11:17 yes 20:11:18 thats ok 20:11:27 adding a pointer in head space doesnt bother me 20:11:38 because headers are dumped on turnkey heh 20:11:57 just something to keep track of ... more complexity 20:12:11 but sometimes you just need it to make fancy stuff happen 20:13:12 isforth has to relocate headers on bootup 20:13:21 when you load isforth you have 20:13:22 the bitch is saving the hash tables so that FORGET can work properly 20:13:22 code 20:13:23 code 20:13:24 code 20:13:24 code 20:13:26 header 20:13:27 header 20:13:29 header 20:13:31 header 20:13:36 we need to relocate all the headers so we have 20:13:38 code 20:13:39 code 20:13:41 code 20:13:43 emptu 20:13:45 emptu 20:13:47 empty 20:13:49 header 20:13:55 header 20:13:57 header 20:13:59 so we can add new code etc 20:14:01 yes. 20:14:11 forget is going to be a bitch - but not a big bitch 20:14:18 you just need to ' word-to-forget 20:14:25 no, you don't actually, you can tell ELF that the text segment is x bytes larger than the actual code in it 20:14:29 and see if any word in any hash chain is above that address 20:14:38 there is one section 20:14:43 im not fucking messing with elf sections 20:14:47 thats a fucking DOG 20:14:53 I'd split into two, at least, if I were you 20:15:04 i cant even get gdb to LOAD the fsaved isforth executable 20:15:09 one for code, one for headers 20:15:14 no 20:15:21 go rtfm the elf file format 20:15:25 its totally fucked in the head 20:15:30 maybe even one for USER variables, though that can be allocated, if you want 20:15:38 im not going to make it work any different to how it does now 20:15:45 heh 20:15:46 ther are NO user variables 20:15:47 chicken 20:15:48 re-read that 20:15:49 ther are NO user variables 20:15:50 ther are NO user variables 20:15:50 ther are NO user variables 20:15:52 ok 20:15:53 :) 20:15:55 what kind of hacker are you? 20:15:58 heh 20:16:06 elf <--- fucked 20:16:13 me --> not fuking doing it 20:16:14 heh 20:16:18 elf <--- extremely complex 20:16:22 it is 20:16:34 and like all c coders 20:16:45 whoever designed the elf file format does NOT fucking understnad zero based 20:16:47 ugh 20:16:51 linus t doesnt either 20:17:06 c coders are so fucking lame 20:17:15 let me give you a hint, if you TRUELY want your forth to metacompile, you'll know ELF backwards and forwards 20:17:39 otherwise you'll be forever dependant on whatever linker 20:19:37 nope 20:19:42 i can already fsave 20:19:47 i can already turnkey 20:19:57 and i have ONE section 20:20:06 fsave relocates all headers to here and saves out 20:20:17 load relocates all headers from here to head space 20:20:19 works fine 20:20:24 the good news is that if you print it out and spend a whole day and two pots of coffee, you can have a pretty good understanding of how it works 20:20:29 metacompile will be target compiling 20:20:37 i already do 20:20:55 and i was originally trying to put code in one section and headers in another 20:21:05 ok, I'm not *TOO* terrified of having to write an ELF format file from scratch 20:21:06 i KNOW i was doing what the dox said 20:21:09 and it wasnt working 20:21:19 and NOBODY fucking reads elf files the same 20:21:19 even though I _know_ it's gonna take me some trial and error 20:21:21 ./isforth 20:21:23 it runs 20:21:30 linux can read my elf file header just find 20:21:34 gdb isforth 20:21:36 it wont load it 20:21:45 heh, it gets confused? 20:21:55 good! don't want nobody to debug isforth ;) 20:21:56 some problem about the non existant string table having invalid entries or something 20:22:05 the STRING table is "optional" 20:22:06 or worsE!! reverse engineer it! 20:22:10 except with gdb 20:22:19 also, as far as I can tell ... an ELF header is the ONLY way to load shared libraries, at present 20:22:20 erm 20:22:27 isforth sources are available to0 anyone :P 20:22:28 hh 20:22:33 exactly 20:22:41 isforth woont be saving out any shareable libs 20:22:50 not unless joe shmoe writes the code to maike it 20:22:52 make it do so 20:23:10 i *REALLY* hope Linus will chose to move "LoadLib" and "GetProcAddress" into a kernel call soon 20:23:12 if they want that they can use lib4th 20:23:18 its better at it 20:23:45 i want sys0 to be "run the code at the address specified in ebx in kernel mode" :) 20:23:45 heh 20:23:49 that would make Linux programming *SO* much easier in ASM 20:24:17 he doesnt WANT linux asm coding to be easy 20:24:17 or else he would DOCCUMENT his shit 20:24:30 syscalls are basically undoccumented 20:24:44 i would even go as far as to call the linux kernel CLOSED SOURCE 20:24:48 hmmm ... would you be averse, then, if someone moved your entire kernel into a shared lib, and then had only USER variables and such in the process space? 20:24:48 to all but the supre l33t 20:25:23 isforthy will NEVER have user variables 20:25:27 EVER 20:25:36 this would result in like a 1K execuatable 20:25:38 the ONLY application for them is for multi user (multi tasking more like) 20:25:45 aqnd isforth will use the LINUX KERNEL to do that 20:25:47 that's correct 20:25:50 not a patched pause 20:25:58 multithreading is where you want that 20:26:00 we HAVE sys fork 20:26:02 we will use it 20:26:12 linux automaitclly does copy on write 20:26:25 you want multithreading if you're doing any type of gui or server functions 20:27:04 fork 20:27:12 not user variables 20:27:20 user variables and block files etc are so 80's 20:27:22 fork doesn't always do everything 20:27:32 would you like an example? 20:28:37 not realy 20:28:42 its a bit in advance of where im at 20:28:52 heh 20:29:08 and with the way isforth allows you to ADD ANY SYSCALL thats not already catered to 20:29:13 you can do anyting you want with it 20:29:23 nearly everything 20:29:24 look at the word syscall in compile.1 and the sycall interface in linux.1 20:29:30 I have 20:29:32 all i have to do is say 20:29:49 syscall_number number_of_parameters syscall syscall_name 20:30:03 that is an EXCELLENT place to use CREATE DOES> 20:30:04 and i now have a word called syscall_name 20:30:11 yup 20:30:28 x y z 20:30:28 and the syscall is made 20:30:44 still incapable of loading a shared library with kernel calls, though 20:30:46 it sort of IS a create 20:30:49 but its not a does> 20:30:53 does> would be too slow 20:31:02 this creates a constant word 20:31:09 that uses dosyscall 20:31:09 call dosyscall 20:31:12 db syscall_number 20:31:14 compiled as a byte to save space 20:31:23 might have to bump that up to 16 bits later heh 20:31:24 grr 20:31:37 still incapable of loading a shared library with kernel calls, though 20:32:01 yu 20:32:01 ohhhh 20:32:07 i want isforth to be able to load a shareable library 20:32:14 but it wont produce any itslef 20:32:29 if joe shmoe WANTS to use libc - i want him to be able to 20:32:34 * MrReach raises his eyebrows, "So that leads yoiu to conclude ... what?" 20:32:50 actually, shared libs are extremely important 20:33:02 yes 20:33:25 if joe shmoe WANTS to be able to use libc - i conclude that joe shmoe is a lamer :P 20:33:26 heh 20:33:31 there's mass image manipulation stuff avail, and (de)compressors, threading is via shared lib 20:33:59 ncurses is via shared lib 20:34:25 a terminal forth running with ncurses would look HELLA sharp 20:34:35 erm 20:34:42 ncurses will be a redundancy 20:34:43 all the xwin stuff is via shared lib 20:34:45 look in term.f 20:34:53 i will also be doing an xlib interface 20:35:13 i cant do ALL libraries but ncurses will be catered for in isforth as a FORTH EXTENSION 20:35:18 unfortunately, the kernel itself can't load and initialize shared libs 20:35:25 not fucking using that bloated pile of shit library 20:35:36 ncurses is bloated you say?? 20:35:45 er 20:35:49 corse if tucking is 20:36:00 298475937829823642 gigs of shit NOBODY ever uses 20:36:17 heh, if you think for a minute, you can probably tell me WHY it must be so bloated 20:36:19 if tucking heheh :P 20:36:36 because it caters to every fucking possible console in the world 20:36:46 why the fuck do that 20:36:47 because it's not simple? 20:37:00 heh, I440r lisps when he giths ekthited 20:37:01 90% of the linux community uses Eterm 20:37:01 aterm 20:37:01 xterm 20:37:01 or consone 20:37:08 why support ANYTHING else 20:37:16 heh, I440r lisps when he giths ekthited 20:37:20 no i just type bad heh 20:37:40 ok 20:37:50 in regards to ncurses ... 20:37:54 heh 20:38:18 it is written to provide the same functionality regardless of what type of terminal is actually connected "out there" 20:38:41 yes 20:38:46 in very primitive terminals, like a vt52, it must emulate the more complex funtions 20:38:47 every fucking possible terminal 20:38:52 wtf is the point of that 20:38:59 isforth will supprt the most popular 20:39:08 not the ones that nobody f7ucking uses heh 20:39:13 actually tho 20:39:20 when I write for ncurses, I know that it will reun no matter what terminal is connected ... and I don't even need to ask 20:39:26 i WAS working on parsing any terminfo file 20:39:29 but i hit a snag 20:39:35 i cant figure out how to convert 20:39:43 yeah, terminfo is a bitch, no matter how you look at it 20:39:51 esc [ %p1%n1[?x[87986987678[&%^&*^%* 20:39:56 into meaningfull shit 20:39:56 I hate even having to glance through it 20:40:36 the important thing is that it *WORKS* ... and it works *WELL* 20:40:36 i440r: pretend the console is interactive and just output the terminfo to that ? 20:40:46 even if it's not very human readable 20:40:54 futhin, exactly 20:40:57 i firmly believe, if it's not broken, fix it.. 20:41:07 HAHAHA! 20:41:28 "if it's not broken, fix it" -- scotty of star trek 20:41:36 scotty rules :P 20:41:40 i will eventualy pick up where i left off in term.f 20:41:44 look in here 20:42:05 futhin: actually, the term info file says, roughly, "to perform this operation, send this string of codes and variables" ... and if the operation isn't mentioned, the terminal doesn't know how to do it 20:42:08 term.f just defines a few escape sequences that seem to work almost anywhere 20:42:18 mrreach: the truth is, everything is broken ;) 20:42:18 they all work in eterm, aterm, xterm and linux console 20:42:27 yes 20:42:28 except a few stuff 20:42:30 but the cursor reporting doesnt work in console 20:42:47 hence a need for something like ncurses 20:42:54 i440r: what about vt101 ? 20:43:00 or vt100 20:43:12 a uniform interface to completely isolate you from the vagaries of your particular terminal 20:43:35 isnt linux console vt101 >? 20:43:35 video terminal model 100 or model 102 20:43:37 eterm ? 20:43:39 or is that 102 20:43:54 there *WAS* no model 101 that I'm aware of 20:43:55 why not support the lowest common denominator.. maybe that is vt52? because somebody with vt100 would be able to use vt52 .. 20:44:03 ok, made up 101 :P 20:44:10 futhin, that is what ncurses does 20:44:16 100 and 102 20:44:35 hm? if i have vt52 i'll still be able to use it ? 20:44:43 but you can hand VERY complex commands to ncurses, and it will do all the hard work on very primitive terminals 20:44:52 futhin, yep 20:45:05 but it connects to a serial port at 9,600 baud 20:45:06 maybe - eventually :) 20:45:09 not ncurses but isforth's curses.. 20:45:37 hm 20:45:43 --- join: Soap- (flop@210-86-38-78.dialup.xtra.co.nz) joined #forth 20:45:51 err i could care less about connecint with a serial line right now 20:45:57 nobody fucking does it anyway hehe 20:46:06 for example, you can tell ncurse to return all the data (color, characters, blinking, etc) stored in a given rectangle on the screen ... it returns a handle 20:46:08 if they want that thent hey can IMPLEMENT it 20:46:34 you can then mess up the screen with whatever ... 20:46:55 this is not where im at with isforth yet 20:47:01 and then use the handle to replace that data where it came from, or even elsewhere on the screen 20:47:06 linking existing shared libs will be an option 20:47:21 EVENTUALLY 20:47:46 but right now i could realy CARE LESS :O) 20:47:46 heh 20:47:51 when isforht is ready for it ill add it 20:48:32 futhin: and ncurses will do this regardless of what type of terminal is connected, even dumb ones that won't report what's on their screen. In the case of such a terminal, ncurses will keep a mirror image of text and attribute data inside a local memory table 20:49:02 *THIS* is the complexity that makes ncurses a huge lumbering behemoth 20:49:56 and 29845698269826598264982642% of ncurses has no application outside its authors immagination 20:50:11 i bet there are gigs of shit NOBODY EVER USED before 20:50:30 I think you're exagerating a bit 20:50:39 only a little 20:50:45 i think the newer parts were added from demand 20:50:46 for effect :) 20:51:03 there's some middle stuff that's probably seldom used 20:51:41 but, if my choice is to write escape codes, parse the terminfo file, or load ncurses ... guess which I'm going to do? 20:51:59 im going to write the parser 20:52:02 eventually 20:52:08 i just need to digest the problem a little 20:52:14 i dont think it will be impossible :) 20:52:16 more power to you 20:52:25 NO ACTUALLY 20:52:27 erm caps 20:52:30 if course it's not impossible ... ncurses does it, so can you 20:52:35 more power to YOU = after ive done it 20:52:44 heh 20:53:14 you already have cursor control 20:53:15 and colours 20:53:17 now, which interface do you suppose will be easier for me to use ... the one you provide or the ncurses interface? 20:53:26 in the most popular consoles 20:53:43 that's a really tricky question, if you think about it 20:53:57 mine 20:54:04 or else i did it wrong 20:54:30 will I be able to get a glob of data from a region of the screen and put it back later? 20:54:34 interfacing to C code in forht will NOT be trivial 20:54:42 interfacing to FORTH code in forth will 20:54:51 it *IS* trivial 20:54:53 yes 20:54:58 thats something i want 20:55:12 but in reality ncurses doesnt grab it from the screen 20:55:15 it double buffers it 20:55:25 when it outputs to a console it outputs to a buffer too 20:55:29 thats how i wil do it too 20:55:29 ok, to do that with primitive terminals, you must keep a copy of screen data in a local buffer 20:55:39 * MrReach nods. 20:55:53 and now your code is starting to resemble ncurses in size 20:56:02 no 20:56:05 it wont 20:56:28 interfacing to C code really is quite simple 20:56:37 don't have to swap stacks or anything 20:57:26 getting the address of the proceedure is a bit complex 20:57:39 but once you've got it, you can use it forever 20:59:33 @ execute 20:59:39 heh 20:59:40 yep 21:00:02 or just 21:00:02 xyzzy 21:00:05 maybe a bit of stack juggling in prep, and pushing EAX onto the stack when it's finished 21:00:07 and it executes for you heh 21:00:42 simple, clean, and fast 21:01:03 *AND* it opens a world of possibilities 21:01:41 callbacks are quite a bit more challenging 21:02:08 because you have to setup a virtual forth machine to execute them 21:05:07 but event driven programming makes the universe a *MUCH* friendlier place 21:06:33 hello? 21:06:40 im hre heh 21:07:04 lost in space syndrome is all heh 21:07:18 I didn't like the way win32forth worked it libraries, so I rewrote it 21:07:27 anway - this is a bit in advance of where isforth is ready for 21:07:32 my implementation was **WAY cool 21:07:41 it was about as lazy as you could get 21:07:57 hehe 21:08:02 unfortunately, I just lost it to a hard drive crash 21:08:06 im realy proud of my syscall interface in isforht :) 21:08:11 its much better than it was 21:08:14 heh 21:08:49 this never loaded library until you actually used it ... and never fetched a proceedure address until you actually called it 21:09:09 once a lib or proc was loaded, it never needed to load again 21:09:42 I hope to implement some as elegant for Linux and isforth 21:09:57 something 21:10:21 brb, going to make coffee 21:10:25 --- nick: MrReach -> MrCoffee 21:10:35 that would be good 21:10:36 make me one! 21:10:38 heh 21:19:46 --- nick: MrCoffee -> MrReach 21:19:49 :) 21:20:01 I've got a restaraunt coffee pot 21:20:23 one of those with two burners, you pour water in one end, and coffe comes out the other 21:20:32 the other end 21:20:47 a Bunn Pour-O-Matic(R) 21:20:50 a bunn ? 21:21:12 bunn is good 21:21:12 even when they arent plumbed in 21:21:12 yep, picked it up for $25 at a garage sale 21:21:24 plummed ? 21:21:24 erm 21:21:32 gawd i relay shud learn to spell heh 21:21:33 wouldn't buy one I had to plumb 21:21:39 bleh who cares - i can code :P 21:21:42 you were right the first time 21:22:00 heh "I don't have to spell, I'm a coder!" 21:22:10 hehe 21:22:15 exactly 21:23:00 have you ever *USED* ncurses as an application writer? 21:23:23 no 21:23:23 nor will i ever 21:23:35 you might try, just for grins and giggles 21:23:55 im writing isforth specificaly so i never have to learn 298459824698246 different functions in qw956928354982459832469782598245 different libraries 21:23:55 ugh 21:23:55 autobloat 21:23:59 you might be surprised how much easier it can make life for you 21:24:04 well, yes and no 21:24:15 chances are, it's already loaded for another app 21:24:37 but i have absolutely NO fucking intereste what so ever in developing ANYTHING with c 21:24:37 and 21:24:47 no, there will be about 7 funtions you use a lot 21:24:59 every time people ask me WHY am i even bothering with isforth a quote from a certain president comes to mind 21:25:08 "we do these things, not because they are easy.... " 21:25:11 and maybe 4-5 functions that you have to look up when you want to use them 21:25:22 so ill write those 7 functions in isforth! heh 21:25:24 i already have the tools i need to do that 21:26:12 Ive looked through the ncurses sources ... and I can guarantee that you haven't got tools as sophisticated or easy to use 21:26:25 for all possible terminals??? 21:27:05 who cares!!!!!!!!!!!!!!!!! 21:27:10 seriously 21:27:10 who the fuck cares! 21:27:16 hmmm ... was it ncurses that optimised for slow connections? 21:27:17 besides 21:27:23 if you want it - code it heh 21:27:23 and 21:27:23 or was that screen that did that? 21:27:30 fyi 21:27:39 "possibly" 21:27:50 grrr! I can't recall 21:27:53 fustrating 21:27:55 if i ever get the terminfo shit sorted then YES 21:28:00 heh 21:28:03 for all terminals 21:28:10 sorry, didn't mean to push a button 21:28:13 heh 21:28:24 see 21:28:24 thats what c does for you 21:28:29 you spend 90% of your time rtfming shit 21:28:32 hehe 21:28:34 you didnt :) 21:28:36 my policy is "if it's been written, use it" ... unless it's unsuitable for some reason 21:28:58 there's some M$ libs I have a hard time undertanding 21:29:22 ok, here's a real good example ... 21:29:55 heh 21:30:01 you have a forth console, looks very basic, a bunch of lines of text, an "ok" prompt on the bottom line, and a blinking underscore cursor 21:30:26 could be on anything, vt52, ANSI, xterm, etc 21:31:05 if you press and hold down the left Alt key, the current stack pops up in a framed window, and stays until you release it 21:31:39 actually ive been trying to think how to do that 21:31:43 conversely, if you press and hold the right ALT key, the return stack pops up, complete with definition addresses 21:31:52 but i would have to use poll 21:31:55 begin key? until key 21:32:03 and have key do a poll 21:32:07 and thats not acceptable 21:32:18 because it either sets load avg to 1 21:32:33 or makes isfort d r a g 21:32:39 or it doesn't respond fast enough 21:32:47 * MrReach nods. 21:32:50 neither option is acceptable 21:33:25 you might make your forth event driven ... use a giant select ... any event gets a record and placed into the event que 21:33:37 yes 21:33:42 i had though of that too 21:33:54 i will add select later 21:34:04 i still dont have select straight in my head yet 21:34:04 remember 21:34:15 this will be done with SYSCALLS heh 21:34:15 right now its not important 21:34:23 tell me if you want help with it, figuring out the select macros from the header file is a real bitch 21:34:23 what we have works well enough 21:34:23 for now 21:34:56 I have not prob with the syscall version of select ... it's identical to the glibc version 21:35:04 except the way the params are passed 21:35:08 hehe i wouldnt do it with the macros 21:35:08 i would do it by writing some c code 21:35:18 compiling it 21:35:18 statically linking it 21:35:29 and running the executable through the interactive di8sassembler heh 21:35:40 i baught that tool 21:35:40 fucking way cool 21:35:43 no, I stepped my way through the macros, did all the bit bashing on paper for a typical call 21:35:54 hehe 21:35:54 there you go 21:36:00 look in my readme 21:36:11 look at the shit i say about all the defines in c header files 21:36:19 grr 21:36:19 heh 21:37:15 the word "head" is not found at all 21:37:28 and the two "include" found refered to something else 21:38:06 er ? 21:38:16 may I suggest an improvment to extending the kernel? 21:38:36 sure 21:38:56 first, defer QUIT or COLD or whatever your top-level word is 21:38:58 alot of what is currently within the asm files will migrate out to extensions 21:39:15 i was thinking of defering quit! 21:39:16 heh 21:39:35 go on... 21:39:52 then, while compiling the kernel, have QUIT point to a word that does ... s" fload isforth.f" EVALUATE 21:40:14 er s" wont be in isforth 21:40:22 i already stated what i dislike abou tit 21:40:24 then, in isforth.f aim QUIT at (quit) or whatever before fsaving 21:40:24 about it 21:40:45 duh! ok, then " quote' ... whatever 21:40:51 hehe 21:40:55 jeez! 21:40:56 explain this to me 21:41:04 whats the advantage of doing this ? 21:41:09 er 21:41:14 ok, then the user doesn't have to TYPE "fload isforth.f" 21:41:17 it seems like a over complication 21:41:21 oh 21:41:26 he wont have to eventually 21:41:38 they just start the kernel, it chews for a bit and writes out the extended kernel 21:41:51 hehe 21:41:59 ooops writes out the extended system 21:42:01 kernel - fload isforth.f 21:42:02 or 21:42:10 kernel - fload myapplication.f 21:42:21 yep 21:42:21 where you compile myapplication on top of an unextended forth kernel 21:42:28 alot of whats in there WONT be 21:42:34 erm, that would be difficult 21:42:42 no - thats the point heh 21:43:01 in fpc i would often make a very minimally extended kernel to compile my applications on top of 21:43:05 IMO, a kernel is a totally primitive forth, with ONLY enough functionality to extend itself 21:43:10 yes 21:43:11 agreed 21:43:24 but. alot of what is normally extended is NOT always needed 21:43:29 exceot in the "development" cycle 21:43:31 that's true 21:44:03 alot of forths call the opsions "electives" 21:44:04 ugh 21:44:08 i hate that name heh 21:44:11 better hope your NEEDS lines are complete if you're gonna compile an app in the kernel itself 21:44:36 ooops, then kernel must have NEEDS implemented 21:44:41 hehe 21:44:42 not needs 21:44:44 fload 21:44:51 fload is the same as needs is the same as include 21:45:01 i might rename fload to just "load" tho 21:45:08 NEEDS is better, it only loads the file if it has not yet been loaded 21:45:13 so as to not cause confusion factor with the fpu instruction 21:45:27 thats not good 21:45:31 you definately want the two types of functionality 21:45:32 it disallows redefinition 21:45:54 yeah, fload is in the assembler 21:46:06 what disallows redefinition? 21:46:16 you dont need to do fpu asm yet 21:46:24 but im not against it 21:46:29 I do 21:46:42 like I said, I want to support all the instructions 21:46:51 yes 21:46:56 support all is good 21:46:57 but 21:46:59 the FP stuff is actually pretty simple 21:47:08 support all from day 1 is alot of work hehe 21:47:16 support this... build that into it later 21:47:23 there's only a couple that are complex 21:47:27 use what we have now and extend it to full support later :) 21:47:35 yeah, except that 'later' never comes along 21:47:43 i440r: what's wrong with s" " ? 21:47:48 as can be seen from current assemblers 21:47:58 i.e. the time it takes you to build in floating point could be used to make the true assembler work for isforth 21:48:04 heh, it has two characters, not one 21:48:15 and then we can get the meta compiler written!!! 21:48:15 eh? 21:48:21 gawd i realy need that 21:48:21 mrreach: are you talking about s" ? 21:48:23 ok 21:48:27 look at ." and abort" 21:48:27 yes, I am 21:48:31 they are very similar to s" 21:48:32 BUT 21:48:43 abort" and ." both use the string that they compile inline 21:48:48 the string isnt in the way 21:49:02 : foo .... s" xxx" .... blah ; 21:49:07 but s" puts it somewhere else.. instead of the coder making a vocabulary and putting the string there ? 21:49:15 executon has to BRANCH arround the string 21:49:18 its in the way 21:49:22 does not! 21:49:28 far better is to predefine the string 21:49:29 er 21:49:39 : blah .... s" xxx" .... ; 21:49:39 only if the system implementor decides to lay it in the middle of the def 21:49:42 the string is INLINE 21:49:56 (which most do, btw) 21:49:59 or else we need a "String" section 21:50:06 but it doesn't HAVE to be there 21:50:11 fpc compiled strings in a different seg 21:50:14 isforth doesnt 21:50:18 strings are in list space 21:50:27 and are therefore inline 21:50:30 so i repeat 21:50:30 it could follow the def and the address patched in semicolon 21:50:53 an s" is in smack bang in the middle of the executoin path 21:50:58 it could follow the def and the address patched in semicolon 21:51:10 so an s" has to compile a (s") whoch has to do an r> count + >r 21:51:11 ugh 21:51:24 no 21:51:29 (s") doesnt USE the string 21:51:29 oh 21:51:36 r> count 2dup + >r 21:51:38 then 21:51:41 ugh 21:51:43 its the same 21:51:45 the space used to hold the address can form a chain of patches 21:51:51 it has to branch arround the fucking string :P 21:51:53 I'd have to think on it a bit 21:52:00 no, it doesn't 21:52:01 hm, i'm not sure if i like the convention of: name & (name) 21:52:03 * MrReach grins. 21:52:09 it does in isforth :P 21:52:14 hahaha! 21:52:28 "because that's how I wrote the damn thing! so tough!" 21:52:49 futhin: can you think of a better way to name? 21:53:12 strings are INLINE 21:53:12 for ." and abort" thats not a problem 21:53:12 because . 21:53:15 vocabularies ;) 21:53:23 I440r: actually, my forths had little overhead on inline strings 21:53:33 ." etc USES the string 21:53:33 it doesnt just advance IP past the string grr 21:53:45 here ," xxxxx" 21:53:58 : foo ..... literal count ..... ; 21:53:59 i was talking about forth os and somebody said vocabularies would be bad, and suggested something else?? but i forget 21:54:10 it involved popping the return address, fetching the length, adding them together, pushing the result to the reutn stack, and using a conventional next ... pretty quick in ASM 21:54:40 hehe 21:54:40 vocabularies are NOT bad 21:54:47 erm 21:54:49 only a non forther would say they are heh 21:54:57 no, i think speuler said it 21:55:01 I would have liked to know WHY they thought they were bad 21:55:05 for a full fledged operating system 21:55:07 with files 21:55:10 with code all over the place 21:55:11 etc 21:55:17 a desktop os 21:55:21 that everybody use 21:55:27 how would the code be managed? 21:55:28 hmmm, I should think vocs even more essential in something that complex 21:55:32 not thru vocabulary 21:55:40 there would be separate files or libraries or something.. 21:55:51 vocabulary _would_ be used 21:55:57 but it wouldn't be a complete soluteion 21:56:00 solution.. 21:56:05 oh! yes, quite true 21:56:07 like, if you have gui, editor, etc.. 21:56:16 there are some serious memory issues there 21:56:16 within the same namespace or whatever you call it.. 21:56:40 there's going to be name conflicts 21:56:45 eventually 21:56:45 ok, in regard to applications ... 21:56:49 even with vocabularies.. 21:57:02 (sorta :P) 21:57:07 mrreach btw the thing you said about NEEDS above. thas one of my BIGGEST complaints about c 21:57:11 most applications put one or two forth words in the Forth vocabulary ... and that's all 21:57:12 take any c header file 21:57:40 a compile of an application the size of the linux kernel will include some header files at least a few thousand times 21:57:46 and each header will start with 21:57:48 the application's support words, the actually meat of the application, goes in it's own vocab 21:57:55 #if ndefined 21:57:57 etc 21:58:03 that is SOOOOOOOOO fucking lame 21:58:14 write the fucking code and include what you need ONCE 21:58:19 not a gazillion fucking times 21:58:25 that is correct 21:58:26 source files should NOT include shit 21:58:30 NEEDS avoids that 21:58:39 thre LOAD file should be including things 21:58:47 by remembering which files are already loaded 21:58:48 if xyz.f neds abc.f included 21:59:03 then it should abortt" when it tries to use something thats not been defined 21:59:13 the LOAD file should include abc.f and xyz.f 21:59:20 that's true 21:59:26 neither of those two files should include ANYTHING 21:59:29 problem solved 21:59:33 heh 22:00:00 what if you're loading a file, but don't know if a support file has already been loaded or not? a possible abort??? 22:00:07 i.e. compilers deliberatly catering to the BAD coding practices of their uses 22:00:08 users 22:00:13 isforth wont be one of those 22:00:19 no 22:00:22 that's bad coding? 22:00:25 just a simple waste 22:00:35 a redefinition of shit that already exists 22:00:39 what do you guys think about "high-level" ? ;) 22:00:50 what the HELL are you talking about??? 22:00:58 me? 22:01:06 we seem to be on the same page in different books 22:01:10 eh ? 22:01:10 hhe 22:01:11 no, I440r 22:01:21 its bad coding to incoude the same fucking source file 2984798234698259824573 times 22:01:32 just because 2394798235982349824 different source friles need the functions therein 22:01:35 you include it once 22:01:39 yes, agreed 22:01:53 i mean you INCLUDE it once 22:01:54 but that is a MAJOR difference between Forth and C 22:02:05 not include it 2437593825982457367 times but all but one time is ignored 22:02:12 i440r: do you have some code that generates the number ?? 22:02:13 :) 22:02:49 if your file needs a support file, then it should make sure it has been loaded, and *NOT* assume that it is already loaded 22:02:56 included files should NOT include any files 22:03:04 isforth allows nesting up to 5 deep however 22:03:12 disagree 22:03:17 how about if including a file that has already been loaded is a NOOP ??? 22:03:27 nested source files to the nth degree is BAD coding 22:03:34 how about if including a file that has already been loaded is a NOOP ??? 22:03:44 no 22:03:47 bad 22:03:56 what you're saying doesn't make sense 22:04:01 if you are too fucking lame to know whats been loaded and what hasnt then you should be coding c :P 22:04:12 your LOAD file includes what you need 22:04:13 i440r: you've read paul graham's articles right ? 22:04:14 it's ok to check, but not ok to open the file a dozen times or so 22:04:28 of you forget to include foo.f and bar.f needs : foo ... ; 22:04:33 it will abort" foo ?" 22:04:54 okokok, let's try this 22:05:03 every file thats included defins a new word 22:05:07 the NAME of the included file 22:05:11 in a files vocabulary 22:05:13 ugh 22:05:14 I LOAD foo.f ... and it's writeen in two sub-files 22:05:17 lest waste space 22:05:38 the sub files are fooa.f and foob.f 22:05:46 (yes, not very original, I know) 22:05:48 erm no sub files 22:06:01 why not? 22:06:11 foo.f should not be a load file 22:06:25 those files would be LOADED in foo.f ... not NEEDS 22:06:28 i think anyone that compiles an applicaiton with a TREE structure of includes is fucked in the head 22:06:38 its the samne as nested ifs 22:06:39 bad 22:06:40 if 22:06:43 if 22:06:44 if 22:06:45 if 22:06:46 ok, I'm guilty as charged 22:06:47 if 22:06:48 if 22:06:53 heh 22:06:54 it's what makes me a forther 22:06:56 flooad 22:06:57 fload 22:06:59 fload 22:07:01 fload 22:07:04 fload 22:07:10 guaranteed to be unreadable 22:07:15 agreed, that would be VERY bad 22:07:23 i ALLOW it in isforth 22:07:30 up to 5 levels deep 22:07:42 each file makes sure that needed libraries *ARE* loaded 22:07:44 but i have to say that it is a VERY VERY bad coding practice 22:07:52 no 22:07:58 Thinking Forth was a pretty good book. and it talked about algorithms.. the best way to solve a problem 1) calculation 2) data structure 3) and lastly, logic avoid logic at all cost ;) 22:07:59 hopefully without opening the file itself 22:08:00 the source files should NOT be doing so 22:08:02 YOU should 22:08:27 futhin: heh 22:08:41 hehehe 22:08:47 and it discussed a lot of ways to speed up logic 22:08:53 ok, let's say I've got your system, and you send me a handy-dandy application 22:08:59 what do I need to do to load it? 22:09:11 like if foo exit then foo2 ; 22:09:27 you have an load file 22:09:40 if foo else foo2 then ; 22:09:40 it's like the block philosophy 22:09:43 it does 22:09:43 fload foo.f 22:09:43 fload bar.f 22:09:44 fload xyzzy.f 22:09:54 the first block is the loading block 22:09:59 fload myapplicationsourccefile.f 22:09:59 none of the above should be doing ANY floading 22:09:59 at all 22:10:08 but what if my forth already has foo.f loaded ? does it get loaded AGAIN? 22:10:11 mrreach: if foo exit then foo2 ; is faster than else then 22:10:29 because the fact that the file is being included at all is BURIED 22:10:29 er no 22:10:29 hehe 22:10:39 im not having CONDITIONAL includes at all 22:10:51 k, I'm trying to understand why 22:10:52 that i refuse to have 22:10:52 im not having 22:10:52 #if 22:10:52 #else 22:10:52 or #then either 22:11:06 conditional compilation is EVIL!!!!!!!!!!!!!!!!!!!!! 22:11:13 heh 22:11:14 why? 22:11:17 i undertand your fustrations with C, but you might be throwing the baby out with the bathwater 22:11:44 you want 2384798234579=843 different versions of your application 22:11:44 write it 289374982459785724 times 22:11:47 dont have 29879823467925794 different versions of it all interleaved into the same fucking source files 22:11:49 argh 22:11:53 aths my absolute #1 complaint about c 22:12:00 maybe im doing so deliberatly ? 22:12:07 heh 22:12:11 i didnt nust automaticaly HATE c on spec 22:12:16 i LEARNED to hate it 22:12:16 calm down, you're lisping again 22:12:27 i looked at how c does things and thought about them 22:12:34 and i wont have a fucking thing to do with them 22:12:37 i kmnow 22:12:38 heh 22:12:48 im typing between the cracks heh 22:13:00 ok, let's compare c vs forth 22:13:08 the C way ... 22:13:15 c is ugly 22:13:28 forth isnt 22:13:28 nuff sed :) 22:13:28 heh 22:13:29 I need foo.c ... it gets opened and loaded unconditionally 22:13:42 a macro can prevent the contents from being processed 22:13:56 c encouragees bad coding. forth ALLOWS it 22:13:56 thats the big difference 22:14:01 forth is a bit different, though 22:14:01 some guy didn't like the input buffer (TIB) so he coded his forth without it, and found that he didn't need it.. how is this possible ? 22:14:22 when I say NEEDS foo.4th ... the system doesn't even open the file 22:14:35 er. ans doesnt use tib 22:14:42 no 22:14:43 does it ? 22:14:54 didnt ans do away with 'tib #in >in etc ? 22:14:57 ANS discourages the use of TIB the variable and #TIB 22:15:01 in applications 22:15:04 fucked 22:15:09 ohhh 22:15:10 agreed 22:15:12 it says nothing about using them as a system coder 22:15:16 but 22:15:18 what if there's a virus and you don't want to load it?! you need conditional compilation! :P 22:15:29 when I say NEEDS foo.4th ... the system doesn't even open the file 22:15:45 futhin if you fload virus.f its YOUR fault 22:15:48 not mine :P 22:15:50 i'm saying some guy didn't like the text input buffer, so he got rid of this.. 22:16:12 ok, he *MIGHT* use the stack to accumulate characters 22:16:15 not specifically the "TIB" word 22:16:26 or the return stack 22:16:56 that's how Speuler coded his . on his wierd forth 22:17:08 but what if it's efficient? 22:17:17 that's great, then 22:17:30 getting rid of the text input buffer and using the stacks doesn't sound that efficient? 22:17:41 is there any other way? :P 22:17:42 it's not traditional, though, and it's hella hard to parse through stuff on the stack 22:17:43 i guess not 22:17:54 my dad wrote a program to control a bunch of computers on a i2c line 22:17:59 all comms shit was done using the stack 22:18:08 he didnt have a single variable in his code 22:18:27 that's cuz he's smart 22:18:28 yes, purists can write impressive code 22:18:31 what about the dumb coders? ;) 22:18:40 heh 22:18:46 or the impure?? 22:18:54 damn the impurists to hell 22:19:14 or not 22:19:17 who cares 22:19:19 im a purist - thats why i refuse to use ans forth :P 22:19:23 i look at c 22:19:26 i look at ans forth 22:19:30 i look at c 22:19:32 i look at ans forth 22:19:38 i fail to see the difference 22:19:38 :P 22:19:44 everybody knows that ans forth is impure 22:19:57 it would be amusing to see a web server where all the input was accumulated on the stack, and then all the output was accumulated on the stack before getting stuffed down the socket 22:20:07 nonono 22:20:09 chuck moore sez so, that's 'nuff for me :P 22:20:14 of course 22:20:18 applied rational 22:20:23 will tell you right away it is impure 22:20:37 mrreach: that sounds like a good idea 22:20:42 people demanded condition compilation ... so that all related code could be in one file, despite differences in hardware 22:20:43 probably run faster too 22:20:58 moore is totally insane 22:21:02 if we get rid of _all_ variables 22:21:06 that'd be pretty cool 22:21:09 hmmm 22:21:11 :) 22:21:21 except base 22:21:25 we're keeping base ;) 22:21:26 so are the two best forth coders i've met IRL 22:21:38 mrreach: ah? who? 22:21:38 completely nutz, one was a transexual even 22:21:41 lol 22:21:48 hm 22:22:07 have you met chuck moore, jeff fox, elizabeth rather ? 22:22:33 great creativity demands methods of expression beyond what the normal joe needs 22:22:59 i'd like to meet forth coders IRL 22:22:59 incredibly creative people tend to be quite insane 22:23:16 I've met fox, I think, in Sacramento 22:23:31 you think? :P 22:23:36 e-mailed erather several time, one telephone convo 22:23:46 not enough to determine insanity 22:23:55 what the heck are they doing? 22:24:09 yes, look at Edgar Allan Poe ... wonderful writer, completely cranked in the head 22:24:12 i don't see much of their forth code on the web :( 22:24:30 fox is working with moore, and trying to understand him 22:24:41 i want to work with moore :) 22:24:43 erather has been moved into sales and marketing 22:24:51 i wouldnt mind working for moore :) 22:25:06 e rater is a walking advert 22:25:17 are you aware of the relationship between erather and cmoore??? 22:25:21 any time she posts on clf its a fucking advert for a forth inc product heh 22:25:25 yes 22:25:31 yep, that's her job now 22:25:51 we should start an organization "dis organization iz for uz poor hillybilly types to work for chuck moore" 22:25:59 i was asking futhin, he's the one that used them both together in the same sentence 22:26:02 there's a relationship between chuck moore and elizz rather ?? 22:26:23 eliz* 22:26:24 i dont think they like each other much. i think he feels betrayed by her 22:26:29 with what she has done with forth 22:26:42 yes, she was his student aid at Kit Peak Observatory in 1967-68 when he first wrote forth on a PDP-11 22:26:46 with forth inc you mean ? 22:26:50 yes 22:26:58 no 22:27:01 with the language forth 22:27:20 when they parted ways, she went on to become a cofounder of forth, inc 22:27:30 yeah well, forth inc kinda sucks too :P 22:27:32 and he continued research into man-machine interfaces 22:27:43 what do you mean? chuck moore was cofounder of forth inc too 22:28:06 and did some work at forth inc 22:28:11 ok, so now chuck is doing research, and erather is being pressured by the users of forth, inc. for the tools that they are used to 22:28:16 then parted way.. 22:28:30 debuggers, single stepping, decompilation, include files, etc 22:28:54 * futhin wonders how he would gracefully email chuck moore a message begging him for a forth job ;) 22:28:58 right, the masses wanted stuff that chuck wasn't interested in 22:29:14 offer to do an internship for $5/hr 22:29:21 they ought to snatch you up 22:29:32 good look keeping a place to live and a running car 22:29:54 don't need a car if i get a place close enough.. 22:30:02 erather didn't consider the demands of the masses to be unreasonable 22:30:26 you could live in a carbboard box in the alley behind the building 22:30:33 i don't have usa citizenship either .. 22:30:48 hmmm ... forgot about that 22:31:02 will be going to watch charlie rose in 30 minutes 22:31:37 who ? 22:32:11 I440r: PLEASE think about what you hate in C includes, and dtermine if similar functionality can be provided in forth without the drawbacks 22:32:16 I will be going to watch charlie rose in 30 minutes 22:32:22 i already have 22:32:25 a load file 22:32:31 and decided it can't? 22:32:36 and an abort when an included file tries to use something not defined heh 22:33:07 what's the big deal? if you have INCLUDES or NEEDS it's all gooood 22:33:32 i dont like the idea of floading to the nth level. for the same reason i dont like nesting ANYTHING to the nth level 22:33:39 it makes for write only code 22:33:50 all included files should be included from the same place 22:33:55 not scattered throughout the source files 22:33:59 you know, I include my own structures package in nearly everything I write 22:34:43 but in the sources I'm currently writing, it's very hard or awkward to determine if that file has been loaded 22:35:03 NEEDS is very useful, IMO 22:35:07 then include int in ONE place 22:35:15 include all NEEDED files in ONE place 22:35:21 not "all over the fucking place" hehe 22:35:27 now, if my structures package depends on some other package, that's not my concern 22:35:48 (it doesn't, btw) 22:36:23 obviously, when I write for isForth, EVERY source file I write will begin with NEEDS ans.4th 22:36:27 * MrReach grins. 22:37:03 and ans.4th will grow over time as I spot stuff you left out 22:37:16 (hopefully not that you've defined oddly) 22:37:20 exactly 22:37:22 bloat 22:37:26 :) 22:37:29 but ans forth is evil, and killed off the forth community 22:37:43 oh? what evidence do you have of that? 22:37:45 as www.forthsource.org attested!!! 22:37:57 huh? 22:38:02 or whatever the address of "The Forth Source" is 22:38:28 didn't even know it existed 22:38:47 www.theforthsource.com 22:38:48 Taygeta is the authoritative repository, so far as I know 22:39:55 http://www.theforthsource.com go to "forth papers" and then "forth philosophy 1998" 22:40:12 he talks about where forth has come from and where it seems to be heading 22:40:35 mrreach: www.theforthsource.com isn't a repository of programs, etc.. 22:40:36 yes, but I see little mention of ANS in that document 22:40:45 read the whole thing :P 22:40:54 no, it's Glen Hayden's personal website 22:41:20 yeah 22:41:56 holy shit, he's an M.D :P 22:42:18 ANS was only mentioned once, in neither a negative or positive light 22:42:28 argh 22:42:31 read the thing 22:42:38 I did 22:42:38 at least start at The forth heydays 22:42:58 the article is talking about some of the reasons that forth is not more widely used 22:43:43 i have that issue of Byte, btw 22:43:56 also the issue on AI some months later/earlier 22:44:27 what about AI? 22:44:30 both are quite dog-eared 22:44:51 it mentioned in the article that Forth was featured in an issue of Byte 22:45:10 that was one of the reasons I decided to go into computer science when I started college 22:45:40 also of import to me was the issue of Byte dedicated to Artificial Intelligence at about the same time 22:46:20 I now know enough about both of them to say that neither is going anywhere fast in the near future. 22:46:21 he's talking about the decrease of forth enthusiasts "What happened? The Standards Team entered the picture." then he says blah blah, fig, f76, f83 and then ANS standards entering the picture "delivering the death blow!" <-- insert this mentally ;) 22:47:10 so there we have it! 22:47:18 At the same time, fig offered no 22:47:18 implementations for the new Standards as they came out. This was left to the Vendors. 22:47:29 proof! ANS Standards the bad guy! delivered the _final_ death blow! :P 22:47:42 all the standards were a burden on the language 22:47:44 he puts all the standards into slightly negative light 22:47:47 yup 22:48:06 then, to impose standards w/o a free version was even heavier 22:48:28 however, C survived ... not that C ever evolves much anyway 22:48:54 so did LISP 22:49:01 c is not extensable 22:49:04 so has Java, regrettably 22:49:10 c does not allow for USER innovations within the language 22:49:21 that is correct, hence my quip about the evolution of C 22:49:50 i was agreeing with you - expanding on what you had said hehe 22:49:55 chuck moore doesn't like ans forth either ;) 22:49:56 not disagreeing :) 22:50:13 as a general rule, I think ANS is a good thing for forth 22:50:14 he thinks it should've been a different standard.. 22:50:19 especially the community 22:50:32 forth cant be standardised 22:50:36 shouldnt be 22:50:43 no, not really, ans kind of killed the experimentation 22:50:45 but I will agree that ANY standard is somewhat of a burden on the language itself 22:51:09 F83 was *FAR* more of a burden, if you ask me 22:51:31 it decreed what type of processor model the system must use, for heaven's sake 22:51:46 i never liked f83 itself 22:51:51 chuck moore thinks the standard should be more of a publication standard than a implementation standard 22:51:58 i dont like any forth that uses BLOCK files heh 22:52:04 in ANS, there is _almost_ no retriction on how to build your system 22:52:45 except to build the damn ans words :P 22:53:13 ANS basically says, "you don't have to implement these words, but if you do, they MUST behave this way or you can't call it an ANS forth." 22:53:27 er 22:53:32 s/implementation/execution 22:53:44 chuck moore thinks the standard should be more of a publication standard than a execution standard 22:53:57 can you describe the difference? 22:54:06 what would a publication standard look like? 22:54:17 you have 6 minutes 22:54:23 * MrReach grins. 22:56:03 An execution standard is what ANS Forth is. It describes (in tedious detail) how to write code that can be executed by real computers. 22:56:03 A publication standard is intended for people, not computers. The code is clear, but details may be glossed over. Such code is often used to describe algorithms. It would have to be expanded and edited in order to be executed. 22:56:03 I've never seen a publication standard. But I think it would be ideal for Forth. Once the intent of the code is clear, it's easy to modify. Since much code is hardware dependent, it must be edited anyway. 22:56:37 -- Chuck Moore (without his permission!) 22:57:23 402-32=370 words define by ANS, that's it ... and nothing about what words you can write 22:58:41 i guess that a publication standard's aim would be to help forth coders keep their code readable & writeable 22:58:42 ANS *DOES* some stuff about what a byte and cell are, and what parsing means 22:59:12 no, moore wanted a SYSTEM for transmitting ideas about computer science 22:59:32 a language in common 22:59:46 kind of what BNF became 23:00:05 oh, and like what UML is striving to become ? 23:00:18 i440r 23:00:22 UML? Universal Machine Language? 23:00:32 gotta go 23:00:35 --- nick: MrReach -> MrGone 23:00:37 u.. modelling language or uni 23:00:39 er 23:01:04 moore is like the theoretical maths prof 23:01:15 where as rather was like the practical maths prof :O) 23:01:15 :) even 23:01:18 unified modelling language 23:01:44 i440r: why don't you like ANS? 23:01:52 anybody interested in creating a new standard ?? 23:01:59 html is a subset of uml 23:02:04 er because its c 23:02:04 _very_ basic standard 23:02:07 not forth 23:02:14 for portability 23:02:43 unified modelling language.. it's used for creating flow charts, etc.. to design software 23:02:48 neway im off to bed 23:02:59 ok 23:03:00 good night 23:03:05 oh 23:03:12 yea 23:03:22 its how they design chips 23:03:22 nite 23:03:22 --- quit: I440r ("bleh! :)") 23:03:56 --- quit: futhin ("good nigt too") 23:57:04 --- nick: MrGone -> MrReach 23:58:01 --- quit: MrReach () 23:59:59 --- log: ended forth/02.03.20