00:00:00 --- log: started forth/05.06.22 00:03:44 --- quit: warpzero (Excess Flood) 00:07:46 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 00:16:22 --- join: warpzero (~warpzero@wza.us) joined #forth 00:16:44 --- join: arke_ (f2@bespin.org) joined #forth 00:16:44 --- quit: arke (Read error: 104 (Connection reset by peer)) 00:45:40 --- nick: arke_ -> arke 01:23:14 --- quit: vitaminmoo ("Leaving") 01:25:38 --- join: vitaminmoo (~vitaminmo@dsl-94-128.peak.org) joined #forth 01:51:41 --- part: hakossem left #forth 03:42:54 --- join: nothingmuch (~nothingmu@CPE00b0d0cd759c-CM0012253ea774.cpe.net.cable.rogers.com) joined #forth 04:48:14 --- quit: PayphoneEd (Remote closed the connection) 05:29:14 --- join: PayphoneEd (~Ed@payphoneed.user) joined #forth 05:39:59 --- quit: Serg[ICQ] ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org") 06:51:18 --- join: sproingie (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 06:51:22 --- quit: Robert ("brb") 06:52:14 --- join: PoppaVic (~pete@0-2pool236-177.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:52:38 Mornin' 06:52:46 --- join: Robert (~snofs@c-f778e055.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 06:58:43 'lo 06:58:56 wassup? ;-) 07:01:07 Hi, hi 07:01:42 I wish Stepan would wake up occasionally ;-/ 07:04:44 --- join: true-grue (true-grue@ppp133.medlux.ru) joined #forth 07:08:10 --- part: true-grue left #forth 07:23:54 --- join: Robert__ (~snofs@c-f778e055.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 07:27:15 --- join: nothingmuch_ (~nothingmu@CPE00b0d0cd759c-CM0012253ea774.cpe.net.cable.rogers.com) joined #forth 07:27:21 --- quit: Robert (Nick collision from services.) 07:27:22 --- nick: Robert__ -> Robert 07:27:43 --- quit: nothingmuch (Read error: 145 (Connection timed out)) 07:30:17 is the S@ word in use by something? 07:30:43 maybe a string-stack? 07:31:06 if you can't find it, it's prolly free - what make-do? 07:33:06 nothingmuch_: I commend vocabularies/lexicons to you. 07:33:07 i see a ref of some sort saying it's the stack pointer 07:33:22 so my question is: 07:33:27 it may well be returning the stack-pos 07:33:58 nothingmuch_: listen again: consider vocs/lexicons 07:33:58 are there forths whick keep the stack in the heap? 07:34:17 no, the stack is almost always 180' away from the 'heap' 07:34:26 ..at least the FORTH "heap" 07:34:26 okay 07:34:49 so do you have a 07:34:55 'there' word? 07:34:59 almost every forth around grows the stack toward the botom of the heap and the heap toward tos 07:35:11 what the heck is 'there'? 07:35:29 i wasn't serious 07:35:40 there are some forths that use the heap for the data stack, yes 07:35:56 and the returns stack in those settings is just preallocated? 07:36:01 sproingie: well, I'd question 'heap' 07:36:12 far as i know, they're all pedagogical 07:36:36 they use the C heap 07:36:42 I get hollered at in ##C for using 'heap' as a term.. They all prefer magical-phrases now. 07:36:54 like what? 07:37:00 "dynamic memory" 07:37:03 hah 07:37:56 and "There is no 'heap' now." 07:37:57 the term heap is ambiguous. i guess some retards can't handle ambiguity 07:37:57 dynamic memory == brk? 07:37:58 which makes me laugh, but ok. Fine.. My mindset is very old 07:37:58 doesn't help that some heaps aren't even allocated using heaps 07:37:58 because they have a name for that already: dynamic memory 07:37:58 ns. The function is there 07:37:58 er some dynamic memory arenas that is 07:37:59 err, tired, sorry 07:38:03 i meant to say: data segment 07:38:10 more NS. 07:38:43 there is 'program space' - which has code/data segs and such. ANd there is "Everything else" - which is stack and heap 07:38:49 i say use nothing but segment names. which are the same on aout, elf, and PE i think 07:38:59 can someone please explain what exactly the create word does, btw? 07:39:01 no doubt someone on some alien architecture will flame you 07:39:12 like why the word variable is just 'CREATE 0 ,' 07:39:20 see create 07:39:20 : Create 07:39:20 header reveal dovar: cfa, ; ok 07:39:34 which forth is that? 07:39:43 because they are too lazy to create a new defining word; gforth 07:40:05 create defines the compile time behavior of a word 07:40:09 'create' should generate a header, just a header 07:40:19 and does> defines the runtime behavior 07:40:28 it SHOULD be the same as a variable 07:40:47 so when i invoke CREATE FOO 07:40:53 the dictionary linked list is prepended 07:41:04 huh?? 07:41:07 variables only take values, create can execute reserve arbitrary amounts of space and run arbitrary statements 07:41:11 with a pointer to 'here'? 07:41:15 just CREATE FOO is the same as a variable tho 07:41:22 it grabs the next 'word' as the name - creates a header, and it is done 07:41:53 by default, (everywhere I've been), it is the same as a 'variable foo' 07:42:36 what does "create a header" mean? a new dictionary entry 07:42:36 yep 07:42:44 okay, so that's what I sort of meant 07:42:51 and the dictionary entry points to 'here', right? 07:42:57 well, "sort of" in forthish can shoot yer foot 07:43:01 no 07:43:16 here is right after it anyway? 07:43:45 see variable 07:43:45 : Variable 07:43:45 Create 0 , ; ok 07:43:45 Yeah, GENERALLY 'here' follows it. 07:43:45 okay 07:44:03 However, be advised - this is all voodoo, because you can have headspace, dataspace and codespace, etc 07:44:06 so that allots some space, and writes out flags, and the name, and what not, and also includes a pointer to the preceding dictionary entry 07:44:23 assuming a very naive forth, where everything is in the heap, and the dictionary is a linked list 07:44:32 presuming it's a linked list, yep 07:44:39 dude, you need to check out cfas, lfas, etc 07:44:40 reva for instance uses a hashtable 07:48:12 i found a good explanation of create..does> a while back 07:48:28 oh, well - DOES> is lovely. 07:48:30 brodie's explanation in starting forth is pretty terrible 07:49:12 tho the rest of the book's good, so by that time, it might suffice for some 07:49:13 that would be a defining-word.. A word to create new words 07:49:50 I'm trying to meld this into my C module.. It took many revisions to get this far. 07:49:53 that's precisely what i don't like, that makes it sound so extra-magic. hell, : defines new words too. 07:50:03 no 07:50:20 i prefer the explanation of the split of compile/run behavior 07:50:24 : defines a word. does> yields DEFINING words 07:51:03 or.. 07:51:05 hmm 07:51:05 sure, along with create 07:51:11 --- join: Herkamire (~jason@c-24-218-95-147.hsd1.ma.comcast.net) joined #forth 07:51:11 --- mode: ChanServ set +o Herkamire 07:51:20 could think of it in OO terms 07:51:30 create is the definition, does> is the constructor 07:51:32 Better yet, 'does>' creates a vectored, reusable word-ref 07:52:03 --- join: nothingmuch (~nothingmu@CPE00b0d0cd759c-CM0012253ea774.cpe.net.cable.rogers.com) joined #forth 07:52:10 tho the oo comparison really starts to break down when you put extra behavior in that "constructor" 07:52:16 yep 07:52:24 for naive OO anyway 07:52:29 sorry.... lost conn again. CAan anyone link me to the backlog? 07:52:36 i tend to do a lot of RAII-style OOP, so i make instantiation do a lot of work 07:52:46 makes C++ very declarative 07:53:02 oh, talking abote does> 07:53:05 ? 07:53:06 all you can say of 'does>' is: it lets you create a new 'word' using the older "does>..." body. 07:53:47 --- quit: nothingmuch_ (Read error: 145 (Connection timed out)) 07:55:27 : foo create 1 . does> .s ; ok 07:55:27 foo bar 1 ok 07:55:27 bar <1> 208432 ok 07:56:40 It was sorta' "easier" when it was known as " where can I find logs forth #forth? 07:57:07 no idea 07:57:54 can someone msg me the lines from around "sproingie: reva for instance uses a hashtable"? 07:58:11 i'll do it 07:58:22 thanks! 07:58:26 good 07:58:43 --- quit: sproingie (Excess Flood) 07:58:58 hehe MSG< sproing 07:59:01 oh my, i've said a lot 07:59:24 nothingmuch_: okay, when i write a 0 using '0 ,' into the next space, when that is invoked, how does it know to put the address there instead? 07:59:26 [16:46] nothingmuch_: i mean, invoking a word doesn't just put the pointer to the words def on the stack 07:59:29 [16:47] nothingmuch_: does : run create and then set a bit in the header? 07:59:34 --- join: sproingie (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:59:52 bah 07:59:56 i got /killed for flooding 08:00:14 hah 08:00:29 sorry 08:00:42 /msg is better ;-) 08:00:48 i did msg 08:00:54 dcc is better 08:00:54 At least you don't get waxed for it ;-) 08:01:04 firewalls screw up dcc tho 08:01:04 my dcc never worked right 08:03:11 PoppaVic? 08:03:30 huh? my xchats dcc doesn't want to work on macosx, that's all 08:04:05 So, I rely on email-attachments, msgs and rafb 08:08:47 anyone? 08:10:01 what? 08:10:36 when : invokes create, does it set some kind of flag to differentiate a variable and a word to be executed? 08:10:59 no 08:11:16 it compiles a func-ptr and an address-literal. 08:11:35 CREATE does? 08:11:36 the address can be 'here' or wherever does> came into play 08:12:03 and : overwrites that, by compiling the next words over that? 08:12:18 well, not : per se, but the fact that STATE is true? 08:12:33 I think you need a book or two and a LOT of code-reading 08:12:50 state is state - somefolks tweak it, others scream at that 08:13:04 i do 08:13:33 in fact, I can't recall offhand anymore, but I believe 'state' is "compile" versus "execute" 08:13:39 CREATE creates a now word. CREATE FOO would make a new word FOO which gives you the address of the heap 08:14:08 you can use ALLOT or , (comma) to make some space/data where FOO points 08:14:28 eg to make a 100 byte buffer named foo, you can do: 08:14:34 CREATE FOO 100 ALLOT 08:14:35 so : uses CREATE to make a new dictionary entry, switches to compilation sematics, and then... nothing? 08:14:50 no, : doesn't use CREATE 08:14:52 nothingmuch: look back at the def for "variable" 08:15:08 1 0 - see : 08:15:08 : : !CSP CREATE _TICK _NEST LAST _AT _STORE HIDE ] ; ok 08:15:09 : doesn't want the bit about having the new word return a pointer to the heap 08:15:31 that's where I got my impression 08:16:25 hmm 08:17:09 create doesn't reserve anything, either. Which is why I keep dissuadingyou 08:17:31 : variable create 0 , ; 08:17:56 PoppaVic: i didn't say it did 08:18:10 nothingmuch: just trying to insure you don't lose sight 08:18:28 ok, remember 'there' you joked about? 08:18:34 yes 08:18:59 : mark create does> release ; 08:19:04 mark there 08:19:18 DOES> is pretty confusing too 08:19:48 i know how to use does> 08:20:03 what I am trying to figure out is what exactly do CREATE, DOES> and : do 08:20:09 : foo create 0 , does dup @ 1+ tuck swap ! ; foo bar 08:20:14 oops 08:20:18 : foo create 0 , does> dup @ 1+ tuck swap ! ; foo bar 08:20:21 and by do i don't mean what you get from them, but how they work 08:20:51 so 'foo something' will create 'something' 08:20:58 right 08:21:05 something will jump to the code compiled after the 'does>' 08:21:07 everything after DOES> dosn't execute when FOO executes, instead it's coppied into the latest new word (bar) which should be created with CREATE. 08:21:13 dup duplicates the address allotted by '0 ,' 08:21:26 yeah, it's a code-vector 08:21:36 okay 08:21:39 Herkamire: copied or referenced 08:21:41 so now when you execute BAR it's going to first put that address to the part of the heap, then execute "dup @ 1+ tuck swap ! ;" 08:21:52 PoppaVic: whatever 08:21:54 right 08:21:58 without the ';' 08:22:11 more like dup @ 1+ tuck swap exit, right? 08:22:15 no, the ';' is a valid 'word' 08:22:21 referenced would be better 08:22:56 i know, but it's a compile time word that compiles a return to caller into the currently being compiled word, doesn't it? 08:23:07 nothingmuch: it just copies/references the compiled code that's the result of compiling "dup @ 1+ tuck swap ! ;" 08:23:37 okay, that's what I meant 08:23:37 if you are looking for state-smart (or restricted) words, THAT is a different set of beasts 08:24:29 see ['] 08:24:29 : ['] 08:24:29 ' POSTPONE ALiteral ; immediate compile-only ok 08:24:29 see ' 08:24:29 : ' 08:24:30 (') name?int ; ok 08:24:33 uh... i think i'm misrepresenting my questions 08:25:37 nothingmuch: yes, ; compiles a return to caller, and does some other stuff at compile time (changes STATE back to interpret, and (in ANS forths anyway) makes the latest new word findable in the dictionary 08:25:41 okay... 08:25:42 * nothingmuch puts on a hat saying "forth machine" 08:25:43 there's nothing to do right now, so /me reads a word from input 08:25:50 ":"... looking up in the dictionary 08:25:59 "oh boy, it's not compile-only, let's execute it" 08:26:03 instruction pointer = found word 08:26:11 jmp execute_loop 08:26:59 now, what's been compiled into :? 08:26:59 a word creating a new dictionary etnry 08:26:59 you missed at least one step 08:27:00 and then a word that does...? 08:27:01 okay 08:27:12 lookup is fine, then modes and flags 08:27:46 1) parser reads into next space ":" 08:28:00 2) looks up in dictionary.... found 08:28:08 well, since we're not in compile mode at the moment (startup) 08:28:08 then i assumed i can skip the STATE check 08:28:09 uh, pseudocode 08:28:12 3) not compile-only, so execute 08:28:13 PARSE-WORD FIND-WORD 08:28:13 DUP IMMEDIATE? NOT ( is the word regular? ) 08:28:13 STATE @ ( what is the state? ) 08:28:14 AND IF 08:28:14 , ( put the word pointer in our current word ) 08:28:16 ELSE 08:28:19 EXECUTE 08:28:21 THEN 08:28:29 4) : executes doing the following: 08:28:36 a) read in to the next space 08:28:39 it's #3 and #4 that will ruin yer day 08:28:43 in the ELSE it should check 'DUp COMPILE-ONLY? IF THROW_ERROR THEN EXECUTE ' 08:29:15 b) create a new dictionary entry the new name just read in from input "foo" 08:29:20 c) change STATE to compile 08:29:50 5) back to step 1 08:30:26 : foo dup * ; 08:30:31 1) read to the next space "dup" 08:30:42 rrr... changing that 08:30:48 : foo 3 * ; 08:30:58 1) read to next space "3" 08:31:05 2) look up in dictionary 08:31:21 3) not found, interpret as numer 08:31:33 4) success converting to number, STATE is compile, so compile a literal for that number 08:31:37 5) back to step 1 08:31:43 Yeah, forth 'state' is just an approximation and folks abuse it 08:31:44 1) read in to next space "*" 08:32:03 2) look up in dictionary... found 08:32:56 3) STATE is compile. If dup is immediate, execute it, otherwise compile a call to it. 08:33:03 4) back to step 1 08:33:11 1) read in to the next space ";" 08:33:19 2) look up in dictionary... found 08:33:31 3) state is compile, word is immediate, so execute it 08:33:38 4) executing ; does the following: 08:33:47 a) compile a return from the word 08:33:55 b) switch STATE back to execute 08:34:32 c) make the new word findable in the dictionary (: allocates space or whatever for the new word, but does not add it to the search lists or whatever) 08:34:34 --- join: nothingmuch_ (~nothingmu@CPE00b0d0cd759c-CM0012253ea774.cpe.net.cable.rogers.com) joined #forth 08:34:54 last message I got: [17:29] PoppaVic: it's #3 and #4 that will ruin yer day 08:34:57 brb, i found some backlogs 08:35:16 d) perhaps otherthings are needed, eg in herkforth, ; flushes the data/instruction caches 08:35:34 np. Yes, the statewise stuff is what I mean 08:35:56 "so compile a literal for that number" 08:36:11 its not that complecated 08:36:29 that means: "write the opcode to push a literal for that number into 'here', and allot as necessary?" 08:36:43 I didn't say it was complicated: I implied it was messy, and I said it was often abused 08:37:02 there are two states. interpret and compile. in interpret mode everything youtype is executed then and there 08:37:10 if your in compile mode its compiled 08:37:22 unless its an immediat word in which case its executed 08:37:30 right, messy 08:37:31 right 08:37:34 immediat words override state. they always execute 08:37:36 --- quit: nothingmuch (Read error: 145 (Connection timed out)) 08:37:42 --- nick: nothingmuch_ -> nothingmuch 08:38:16 but that's still not what I asked... what I asked is what's the difference between 'create 0 ,', which creates an entry, and writes an '0' into an allotted cell 08:38:32 for this example: : foo 3 * ; 08:38:32 1) parser reads into next space ":" 08:38:32 2) looks up in dictionary.... found 08:38:32 3) not compile-only, so execute 08:38:32 4) : executes doing the following: 08:38:33 and the ttype of creation that ':' does 08:38:33 and where do words get compiled into 08:38:34 a) read in to the next space 08:38:37 b) create a new dictionary entry the new name just read in from input "foo" 08:38:40 c) change STATE to compile 08:38:42 5) back to step 1 08:38:45 1) read to next space "3" 08:38:49 2) look up in dictionary 08:38:51 3) not found, interpret as numer 08:38:54 4) success converting to number, STATE is compile, so compile a literal for that number 08:38:56 5) back to step 1 08:38:58 1) read in to next space "*" 08:39:00 yeah, i found that in the logs 08:39:01 2) look up in dictionary... found 08:39:04 3) STATE is compile, word not immediate: compile a call to it. 08:39:05 4) back to step 1 08:39:08 1) read in to the next space ";" 08:39:10 2) look up in dictionary... found 08:39:13 3) state is compile, word is immediate, so execute it 08:39:15 4) executing ; does the following: 08:39:18 a) compile a return from the word 08:39:21 b) switch STATE back to execute 08:39:23 c) make the new word findable in the dictionary (: allocates space or whatever for the new word, but does not add it to the search lists or whatever) 08:39:26 d) perhaps otherthings are needed, eg in herkforth, ; flushes the data/instruction caches 08:40:55 err, that's more than 10 lines 08:40:58 HERKAMIRE @ INSTRUCTION_POINTER_OFFSET + DUP @ -10 + ! 08:41:00 e.g., go back to before your paste 08:41:26 We have 3 potential 'states': preprocessing (immediate), compiling and execution. The forth interactive-compiler tends to blur this. 08:41:48 right 08:41:56 preprocessing isnt PRE prosessing 08:41:57 but that's besides the point 08:41:58 its processing 08:42:24 you have to parse the input and then decide if your going to execute or compile 08:42:26 Further, some forth-variants and words will diddle the states OR they will use words that ONLY work during a specific state. 08:42:31 the data where '0' is written to in a variable is obviously not the same place compilation semantics write calls to words in 08:42:35 yep 08:42:51 yea some forths have "compile only" words 08:43:05 kinda the inverse of immediate 08:43:07 some even have "execute only" words 08:43:08 nothingmuch: words are compiled wherever you want. some forths compile them onto the heap, some have a seperate memory space for compiled code 08:43:34 let my try another approach 08:43:34 there is application for them, isforth has words that should only be used when compiling but i dont enforce it 08:43:50 i dislike calling it the heap 08:43:58 Sure, I already said the whole mess is a grey-area 08:44:24 : CREATE GET-WORD HERE LITERAL ; 08:44:37 err, open a dict entry too 08:44:38 This is why I am looking at a solution using 3 vectors/word 08:44:48 and use LITERAL's evil twin that is not compilation only 08:44:53 thats a bad definition of create 08:45:01 its too obfuscated lol 08:45:04 what forth is that from ? 08:45:06 yep 08:45:08 it's not 08:45:13 I440r: pseudo-code 08:45:15 i was making a guess 08:45:19 aha 08:45:24 you can't guess 08:45:28 try not to shout when you code :) 08:45:29 you CAN pseudocode 08:45:43 nothingmuch: it's not something you can guess. people define these words however they want 08:45:53 but, remember: compiling is all about doing and embedding 08:45:58 the standard doesn't say how the standard words should be defined, just what they do 08:46:04 Herkamire: what does "Joe Random, your typical forth implementation" implement it as 08:46:13 there is no such thing 08:46:14 he can't 08:46:18 they all do it differently 08:46:22 figforth was IT for decades 08:46:33 my forth is so weird you can't really do create 08:46:34 then ANS and shit got involved. 08:46:48 F83 and Fpc were also well received 08:46:58 the ans forth standard does not describe the forth language but a language of the same name 08:47:02 chuck :P 08:47:16 for me, in my universe, gforth is handy, and there are a few more that are sufferable 08:47:27 I440r: agreed 08:48:36 The only real "core" to forth is: 1) It's a TIL; 2) figFORTH was what was THE norm for decades 08:48:41 is my guess at CREATE sort of logical? make a new dictionary entry, write into the code space of the new word an instruction to put the value of 'here' (after the new dictionary entry has been allotted) on the stack? 08:49:08 nothingmuch: that's correct 08:49:14 Again, watch: 08:49:18 see create 08:49:18 : Create 08:49:18 header reveal dovar: cfa, ; ok 08:49:18 phe! 08:49:21 w 08:49:47 create a header, reveal it, compile SOMETHING - in this case 'dovar' and store that cfa 08:49:48 nothingmuch: now the code to accomplish that depends greatly on how your forth works, how you add things to the dictionary, and whether you compile code to the heap or not 08:49:50 i'm guessing 'header' is the 'new dictionary entry', and 'dovar' does the 'write into the code space ... ' 08:50:11 'reveal' is the 'make it findable in the dictionary' part? 08:50:13 yes, noth - and it varies over every single implementation 08:50:32 reveal vs hide 08:50:40 my "create" is slightly more complecated than that because i keep head and list space separate 08:50:47 sure 08:50:57 Herkamire: compiling to the heap, linked list dictionary... everything as simple as it could be 08:51:25 Anyone know if the FIG forth and F79 specs are online? 08:51:25 not really 08:51:28 yes, madwork the figforth.org site 08:52:38 nothingmuch: bear in mind - and this applies to forth or C - write modular shit. This way, you can change the lookup, the stepping, the - whatever. 08:53:05 you can find the 83 standard in various locations 08:53:07 im sure the 79 would be out there too 08:53:30 So far, I have avoided defining a datastack, but I am glaring at the code and trying to ascertain where to best shove it. 08:53:47 f79 was really not nice 08:54:05 f83 was quite decent, and they raged over it for a looong time after 08:54:35 we all of course love ANS forth ;) 08:54:35 * sproingie ducks 08:54:35 eww 08:54:54 I never managed to truly puzzle out ANS forth - it's even more crippled than ansi-C 08:55:52 * madwork likes F83 08:56:01 f83 (and fpc) had some really FINE ideas and some seriously powerful programmers/advocates 08:56:32 I always liked the only/also/previous shit, too 08:58:25 --- quit: sproingie (Remote closed the connection) 08:58:56 iirc, the huge debates over f83/fpc vs ans was the flow-control stuff. 09:00:45 I440r: where was yer site again? I should check it again. 09:01:28 isforth.clss.net 09:01:47 http://isforth.clss.net ? 09:03:28 hmm.. I see three "flavors". Is this not a compilable tarball? 09:08:51 ANyone know if the 'order' list is limited? I was going to use an array, but a LL seems more sensible now. 09:12:44 yes 09:13:02 it's a limited array then, eh? 09:13:06 Interesting 09:13:30 I think maybe Z might have been right, then 09:13:30 you download the tar for your specific system and assemcle and compile it 09:13:32 it probably has a prebuilt binary tho 09:13:53 I grabbed it, but I'm suprised there is no tarball. 09:14:39 as in "generic, universal source" 09:17:15 Sadly, I prolly won't probe it because of the format... I like to peer into tarballs first. 09:17:31 say i"m defining a compile time word 09:17:39 OK. 09:17:49 and I want it to compile, into the currently being compiled word, a call to another word 09:17:57 [ ' THE-WORD-TO-CALL ] LITERAL COMPILE 09:18:09 that is 100% dependent upon yer distro 09:18:42 soo : FOO [ ' THE-WORD-TO-CALL ] LITERAL COMPILE ; IMMEDIATE 09:18:42 some have words for the prupose 09:18:43 : BAR FOO ; 09:18:43 just stop 09:18:43 : BAR THE-WORD-TO-CALL ; 09:18:49 in the general sense, does that make sense? 09:18:54 You are still under the misconception this is all standardized 09:19:19 i'm not seeking standardization 09:19:25 even if it varies 09:19:27 iirc, you've chosen a variant I don't even use 09:19:49 i haven't chosen any variant 09:19:49 So, yer pseudocode is even weird 09:19:50 you know 'LITERAL' 09:20:00 look, you MUST PICK some variant 09:20:00 assume 'COMPILE' is a runtime word, that takes the top of the stack 09:20:04 no 09:20:08 yer still doing it 09:20:26 well, i'm trying to learn about the common conceptual ground forths live on 09:20:33 This isn't C or python or whatever... The standards are seriously loose 09:20:58 i know they are, i'm not looking for that 09:21:01 i'm not trying to get the details of a particular implementation 09:21:18 i want to make sure that my general line of throught is in tune with forth philosophies or concepts 09:21:25 I'd suggest either picking ISFORTH and bugging the folks like I440r or at least gforth which anyone can check against. 09:21:45 you CAN'T, I tell you! 09:22:04 so out of N forths, most of them just somehow coincidentially allow you tom compile a call? 09:22:07 there is not even a 'keywords' for "forth" 09:22:31 you seem to be sure i'm looking for "the answer". 09:22:49 i'd be happy with an answer 09:22:49 be it gforth which you know 09:22:49 or hekrforth that Herkamire knows 09:22:50 there are so many ways to do anything, on so many platforms, with so many words - we cannot save you 09:22:53 or whatever 09:23:17 so i'm supposed to just magically know? i google everything before I ask 09:23:31 but it's hard to find answers to such questions 09:23:41 there are too many fnords involved, and you can't google for semantic contexts 09:23:43 just words 09:25:07 This is what I keep trying to tell you 09:25:50 you say "you need to find this stuff out some other way", but that's all i'm getting 09:26:04 s/but/or at least/ 09:26:07 more than that, as I keep trying to impress upon you 09:27:34 ZYou can use Herk's forth, I440r's forth, and talk to their authors, contributors and proponents;or, you can use gforth or some other STANDARD folkscan check against. 09:27:40 right, so i'm saying "anyone who knows about any of these, please tell me how is implemented in your favourite forth" 09:27:41 there are something like 100 TIL's out there, but very few c-compilers, and few assemblers that vary other than opcodes 09:28:38 nothingmuch: can't be done. Other than the conceptual stuff herk pasted long ago 09:29:09 even "a word" has some undertones that can ruin yer day 09:30:22 #forth has 25 users, last I checked. This is not entirely due to the fact no one has questions. 09:30:41 ##C has 339, and a lot are deadweight 09:30:50 ..again, no bearing on questions 09:31:15 okay, fine 09:31:17 --- part: nothingmuch left #forth 09:31:25 nothingmuch: you have to understand that yer almost on the edge of trying to ask a redhat guy about solaris and such 09:32:15 a friend of mine once said "Forth is the worlds most unsupported language". Sadly, he was twistedly wrong. 09:32:46 it's more like 100 dialects all trying hard to do better than, or overcome the few other languages that matter. 09:34:08 damn, he left - and he irks me SO much 09:40:56 --- quit: PoppaVic ("Pulls the pin...") 10:04:59 we should get him to read the ans standard 10:14:50 yoh 10:17:20 Or the F83 standard at least. 10:42:04 --- quit: Robert ("brb") 10:53:26 --- join: Robert (~snofs@c-f778e055.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 11:06:15 --- quit: virl (Read error: 104 (Connection reset by peer)) 11:28:21 --- quit: danniken (Read error: 54 (Connection reset by peer)) 11:42:02 --- join: PoppaVic (~pete@0-1pool67-132.nas22.chicago4.il.us.da.qwest.net) joined #forth 11:46:06 hehehe! Got a whole sheet of drywall for $5 and had them chop it into 2'x4' sections. Wheee! 11:48:38 Going to make some drywall Forth computer cases? ;P 11:49:35 I've been trying to fix the corner of the tiled shower for days, and did not want to buy a complete sheet of drywall.. But, I couldn't find anything .5" or less, and I ran into a deal 11:50:02 one end is munged on the back - right below the chunk I needed anyway 11:50:46 So, the last of the home CA is repairing a single tile; the drywall is in place; and the mastic is next on the list of steps today 12:02:00 madwork: of course, getting THAT done doesn't help my code - but it's a nice headspace-switcheroo 12:02:26 --- quit: PoppaVic ("Pulls the pin...") 12:03:39 --- join: PoppaVic (~pete@0-1pool67-132.nas22.chicago4.il.us.da.qwest.net) joined #forth 12:04:35 back - brown was nasty. maybe orwell is nicer 12:19:23 --- join: snoopy_1711 (snoopy_161@dsl-084-058-145-148.arcor-ip.net) joined #forth 12:19:51 --- quit: Snoopy42 (Nick collision from services.) 12:20:10 --- nick: snoopy_1711 -> Snoopy42 12:39:56 --- join: virl (Phantasus@chello062178085149.1.12.vie.surfer.at) joined #forth 12:52:05 Conceptual Time: wtf is the diff between a voc, lexicon and wordlist? Based on exposure to assorted variants? 12:56:05 uum 12:56:07 no idea 12:57:13 PoppaVic: there are some differences as far as associating a name with a wordlist and a vocabular.. don't know about a lexicon. 13:00:54 well, we know the dict is global. 13:01:21 I think lexicon came in the last few years as shorter than "vocabulary" 13:01:54 but, wordlist.. *sigh* THAT seems to be a struct anyone can use, but assuredly is used by vocabularies 13:08:34 goddamnit *sigh* OK, I do need to shovel in a datastack.. And THEN I need variant-markers like a mofo. 13:09:15 Yep. rewrite 20+ is needed. 13:10:31 --- join: tathi (~josh@tathi.bronze.supporter.pdpc) joined #forth 13:13:26 13:08 Microsoft Office for Mac OS X is to Microsoft Office for Windows 13:13:26 as Chevy is to Ford. No matter which you use, you should have 13:13:26 bought a Toyota. 13:14:01 damn.. OK, off and gone.. M$ anything is crap. MacOSX comes seriously close. 13:14:05 tootles.. 13:14:07 --- quit: PoppaVic ("Pulls the pin...") 13:14:08 Office for OS X is great. 13:14:17 as far as 'office suites' go 13:14:46 13:08 Microsoft Office for Mac OS X is to Microsoft Office for Windows 13:14:46 as Chevy is to Ford. No matter which you use, you should have 13:14:46 bought a Toyota. 13:14:50 errr 13:14:51 oopts 13:14:55 didnt wanna paste afgain ^^ 13:19:17 hehe 13:22:37 * madwork just added "alias .s=ls" to his .bash_profile 13:22:58 lol 13:23:09 I should do that with sl 13:23:16 Sometimes I type it backwards. 13:23:24 Heh. 13:23:55 You know what I hate? 13:24:05 Using DOS and typing ls... 13:24:15 Or using Linux and typing dir 13:24:18 >.< 13:26:19 Yea. gnuwin32 or cygwin takes care of the DOS irritation over here. 13:27:01 If I'm using DOS then that computer can't use much more. 13:28:51 So load up F83.com then. :) 13:29:45 Does it run on an 8086? 13:30:45 --- join: Raystm2 (~vircuser@adsl-69-149-34-137.dsl.rcsntx.swbell.net) joined #forth 13:36:48 Yes, I believe so. 13:40:26 Here it is: http://140.113.27.181/ftp/computer-languages/forth/simtel/f83v2-ms.zip 13:40:49 Nice, I'd prefer some information first. 13:41:00 I hate blindly downloading shit. 13:41:40 Well, the readme is in the zip file. :P 13:42:01 Well, tell me exactly what it is first. 13:42:18 It's a public domain F83 for 8086 MS-DOS 13:42:55 And F83 is... 13:44:00 Forth 83 13:44:31 And the size of this program is... 13:44:44 I only have a 720k floppy drive on Komugi. 13:44:50 Well, and the 20MB HDD. 13:46:27 It's a 126K ZIP file. 13:46:42 ARE YOU MAD!? 13:47:00 580K uncompressed. 13:47:06 WHAT KIND OF FOOL DO YOU TAKE ME FOR WITH YOUR BIG ASS FILES 13:47:10 Yes, madwork to be exact. 13:47:23 Just kidding, I already downloaded it. 13:47:40 I'll probably end up actually getting it to Komugi in a month or two. 13:47:42 X3 13:47:42 Phew, I didn't know you were teh kiddnig!!!1 13:48:41 Komugi is a Toshiba T1200, a PC/XT Compatible laptop with some AT features. 13:48:44 Such as an RTC. 13:50:00 Sweeet 13:50:05 Perfect Forth box. 13:51:34 lol 13:51:39 Howso? 13:52:04 Cool, PayphoneEd. I have a similar box. 13:52:15 Some old Toshiba "lap"top with those specs. 13:52:21 lol 13:52:34 This is really a laptop, though. 13:52:40 The HD broke down, but I loaded my Forth to a floppy and used it at school. 13:52:45 It is quite heavy but it's light enough. 13:52:50 PayphoneEd, well what else would you use it for? 13:53:01 madwork: Games. Attention. 13:53:04 That sort of thing. 13:53:09 Attention? 13:53:19 What kind of games... Infocom? 13:53:23 Zork! :D 13:53:27 Komugi gets a LOT of looks when I bring her to school. 13:53:28 :3 13:53:40 :D 13:53:47 Very good use of hardware. 13:54:00 Usually along the lines of "What the hell is that?" or "Holy shit!" 13:58:11 --- quit: Sonarman (Read error: 60 (Operation timed out)) 14:37:52 PayphoneEd: nice laptop :) 14:38:22 Damn straight. :D 14:38:34 do you have a forth for it? 14:38:45 (I wasn't really paying attention above) 14:38:47 lol 14:38:51 I guess I do now. 14:39:17 what games do you have on it? 14:39:55 ATM... 14:40:09 Rogue and some other things. 14:40:46 so you store everything on floppies? 14:41:09 You weren't paying attention either. 14:41:27 Komugi has a 20MB HDD. 14:41:43 --- quit: saon|smgl (Read error: 104 (Connection reset by peer)) 14:42:04 sry, and I thought I read that it's hd broke down. 14:42:23 Not mine. 14:43:00 sry 14:43:15 np 14:45:50 20 mb how much can you store on that space? 14:46:01 the HD on Robert's broke down. Topaz has one with a broken HD too, I think. :) 14:48:02 virl: I've got a bunch of things on it now, less than 5MB used. 14:48:09 Just get things that are small. 14:52:24 fascinating, I hope I can store a lot of programms too on my 4k x 12 flash(sx52) rom. hopefully I'll store in that space a forth system, a tile editor and a block editor. 14:54:08 tile editor? 14:55:02 something like paint only for tiles. 15:17:18 --- quit: tathi ("rebooting") 15:23:40 I can't *(@#&$#$ do it 15:23:59 I can't figure out and work around the stupid CSS bugs in IE 15:24:29 I tried I really tried to do things with divs and css etc 15:24:31 but it's back to tables 15:24:49 IE behavior makes no sense 15:25:14 it doesn't even pay the slightest attention when you specify exact pixel widths for things 15:43:06 Give up on design. :) 15:45:05 ok, recoded it with a table 15:45:11 now IE _crashes_ 15:45:15 I like that better 15:45:16 Heh. 15:45:17 uploaded 15:45:26 hi all 15:45:35 hopefully it displays reasonably on winblows 15:46:09 Herkamire: url? I'll test it :) 15:50:46 --- join: Sonarman (matt@adsl-64-160-165-171.dsl.snfc21.pacbell.net) joined #forth 15:51:09 Hi. 15:57:48 teh hies 16:09:07 whats the best forth system for you on x86? 16:09:24 FUCK!!!!!!! FUCK FUCK FUCK FUCK FUCK 16:09:42 fuck? 16:09:56 hhello all 16:10:01 The OS X for x86 torrent I downloaded is just a whole bunch of garbage bytes that then dislpays hello.pg (goatse) at bootup 16:10:18 lol arke 16:10:24 Fuck. 16:10:30 Waste of fucking bandwidth 16:10:46 yah 16:11:20 I am going to cry 16:11:37 Haha. 16:11:48 OS X for x86.... 16:12:01 Your own fault for abandoning Linux. 16:12:43 fuck Linux 16:12:50 Actually... we should some day summon a minimalist contest. 16:12:53 Gaah I am going to cry 16:12:53 --- join: saon|smgl (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 16:12:54 XD 16:13:22 Everyone picks a task, gets 1kB of space (two disk sectors) and should do as much as possible of that. 16:13:49 yah 16:14:31 no more other conditions? 16:14:32 good idea 16:14:37 I'll implement goatse 16:14:41 having experience with it now 16:14:53 virl: Well, maybe the specs of the computer (x86 in either 16- or 32-bit mode) 16:15:11 assembler or forth? 16:16:01 1kB is pretty small for 32 bit mode, hmmm. 16:16:11 I think assembly language is the best way, although _implementing_ a Forth would be a good project. 16:16:35 virl: Yeah, but with larger sizes, the chance of something actually getting done approaches zero. :) 16:17:42 implementing a useable forth in 1kb 32 bit mode, hey, thats impossible. 16:18:00 That sounds like a bet! ;) 16:18:04 * crc did about half of the retroforth core in 512bytes (16-bit though) 16:18:09 virl: for what CPU? 16:19:21 x86 32 bit mode, that are only 256 instructions, ok I don't know the x86 instruction format but that is really big. 16:19:54 16-bit is probably more reasonable. 16:20:10 Then you won't have to deal with writing simple I/O drivers. 16:21:36 * crc only fit about a quarter of the core in 512bytes using 32-bit mode 16:22:01 Ok, for all those that are downloading Mac OS X for the PC Platform, I warn you, it IS a fake! If you boot it, it start up a picture of the goatse.cx guy. You have been warned (and I've been blinded) 16:23:51 I got enough of OS X at school. 16:24:46 it's nice to come home to debian, slackware, fbsd, and sourcemage 16:25:02 * saon doesn't care for "slick interfaces" 16:25:08 arg, it's frustrating writing my own forth, everytime when I get a new Idea I delete a lot of source to make room for that idea, damn. :-| 16:25:32 Delete source? 16:26:50 yah 16:27:10 virl: it gets easier as it develops further 16:28:31 * crc reads the backlog... 16:30:09 * crc notices that sproingie isn't here, so I can't correct him... 16:40:25 --- quit: virl () 17:20:22 --- join: sproingie (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 17:20:32 hi sproingie 17:27:20 --- join: tathi (~josh@tathi.bronze.supporter.pdpc) joined #forth 17:27:54 grr...gcc 3.4.4 builds broken kernels here 17:28:19 at least gentoo didn't uninstall 3.2.3 17:43:55 --- quit: tathi ("ok, let's try this kernel thing again...") 19:31:26 --- quit: Sonarman (Read error: 60 (Operation timed out)) 20:11:52 --- join: LOOP-HOG (~chatzilla@sub22-119.member.dsl-only.net) joined #forth 20:13:53 I am a clonebot 21:17:40 --- join: Sonarman (matt@adsl-64-160-164-139.dsl.snfc21.pacbell.net) joined #forth 21:19:03 re.. 21:19:22 so I had a company actually ask me today, if they could use the Forth I'd written, in one of their products 21:20:01 yay 21:20:42 so it's going to be the software running on this industrial control board for their new retail product 21:21:05 who says forth is dead 21:24:56 congrats 21:30:11 congrats 22:08:54 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.1/20040707]") 22:18:05 --- quit: alexander_ (Remote closed the connection) 22:35:21 --- join: swalters (~swalters@2416457hfc118.tampabay.res.rr.com) joined #forth 22:47:19 --- quit: sproingie ("Konversation terminated!") 23:59:59 --- log: ended forth/05.06.22