00:00:00 --- log: started forth/03.09.20 00:53:05 --- join: onetom_ (~tom@cab.bio.u-szeged.hu) joined #forth 00:53:05 --- quit: onetom (Read error: 104 (Connection reset by peer)) 01:25:05 --- join: onetom (~tom@160.114.27.135) joined #forth 01:25:05 --- quit: onetom_ (Read error: 104 (Connection reset by peer)) 02:20:52 --- join: mur (murr@baana-62-165-186-174.phnet.fi) joined #forth 03:02:35 --- join: onetom_ (~tom@cab.bio.u-szeged.hu) joined #forth 03:18:48 --- quit: onetom (Read error: 110 (Connection timed out)) 05:47:51 --- join: snowrichard (~richard@207-254-198-66.dialup.shv.shreve.net) joined #forth 05:48:57 --- quit: mur (Read error: 110 (Connection timed out)) 05:50:54 --- quit: snowrichard (Client Quit) 06:40:42 --- join: mur (murr@baana-62-165-186-174.phnet.fi) joined #forth 06:47:15 --- quit: SDO ("Vision[0.9.6-0203]: i've been blurred!") 07:24:03 --- join: arke (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 07:28:27 gr33ts and s4luts 07:30:30 T3rv3 07:30:50 mur: terve, my l33t finnish buddy 07:31:13 1337355 15 31337 07:31:50 `/0 :) 07:32:22 : hell ." Fxxx you!!!" cr recurse ; 07:34:19 better not curse here 07:34:54 we need a forth bot :P 07:41:35 isn't the exisiting ones here enough? 07:45:04 --- join: snowrichard (~richard@207-254-198-66.dialup.shv.shreve.net) joined #forth 07:45:09 we have a forth bot here? 07:45:34 : double dup + ; 07:47:28 : double 2 << ; 07:48:04 wrong ! that would be a multiply by 4 :) 07:48:08 snowrichard!! 07:48:16 gr33ts 07:48:22 mur: wheres the forth bot? 07:48:23 hi mur 07:48:41 dunno 07:50:06 so what is up dudes? I am in the middle of coding my Michael language again since my website vanished. 07:50:19 when I get a release again I'll let you know (and Freshmeat) 07:51:09 yet another hard week 07:51:58 so I guess I'll code a while and let this poor smoking 14.4 winmodem rest :) 07:52:05 Hehe. 07:52:07 Have fun 07:52:32 bye 07:52:34 --- quit: snowrichard ("Client Exiting") 07:56:41 Robert: gr33ts 08:53:07 --- quit: arke (Read error: 110 (Connection timed out)) 09:35:21 --- join: wossname (wossname@HSE-QuebecCity-ppp81281.qc.sympatico.ca) joined #forth 11:02:29 --- quit: wossname ("they rally around the family") 11:42:06 --- join: I440r (~I440r@sdn-ap-007txhousP0281.dialsprint.net) joined #forth 11:56:33 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:37:46 --- join: SDO (~SDO@co-trinidad1a-42.clspco.adelphia.net) joined #forth 14:04:31 --- join: TheBlueWizard (TheBlueWiz@pc57dn1d.ppp.FCC.NET) joined #forth 14:04:31 --- mode: ChanServ set +o TheBlueWizard 14:04:37 hiya all 14:13:03 --- quit: tathi (Read error: 60 (Operation timed out)) 14:15:32 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 14:15:58 hiya tathi 14:19:08 hi 14:19:25 I just kicked the reset button on my computer by accident :) 14:19:43 how's things? 14:19:47 hehe....feel great to kick that button, eh? 14:19:56 :) 14:20:11 well, nothing exciting as of this moment 14:23:11 me neither 14:23:30 brushing up on some Mathematical Logic stuff 14:29:33 tbw :) 14:30:22 hiya mur!!! :) 14:30:37 tathi: cool....what kind of math logic? 14:33:43 introductory stuff...I was reading through some stuff linked from Tunes, and needed some things I couldn't remember 14:34:07 so I dug out my intro math logic textbook from college, and got sort of absorbed in that. 14:34:21 hmm 14:34:52 I think originally I wanted a clearer explanation of what a first-order language was. 14:35:08 logic can be interesting :) 14:35:17 ah 14:42:38 -->food 14:44:31 hmpf 14:44:40 i got 145 from IQ test 14:44:47 mensa wants 148 14:44:54 (not mensa's test though) 14:46:13 * TheBlueWizard doesn't care for Mensa 14:46:59 * mur is overambitious 14:47:03 in everything 14:47:17 i want to get to top in everything. i'm not competitive though 14:48:11 lol...I see...have fun then! 14:48:45 ;P 14:49:31 shoudl go sleep 14:49:33 i'm dead tired 14:49:37 and feeling ill 14:49:52 uh oh....not good...go to bed 14:50:10 http://murr.host.sk/tmp/kuva1.jpg 14:50:11 played civ today :) 14:50:15 (civ 1) 14:50:20 i was white ones :P 14:50:50 i coudl have get rid of other players much earlier. but i wanted to just play 14:51:23 :) 14:52:55 what's up otherwise? 14:53:56 me? I am currently chatting with my buddy in another channel, and am reading Slashdot articles 14:54:14 slashdot :) 14:54:18 heh 14:54:23 i shoudl go 14:54:40 yet another stressing week to come monday 14:54:49 i wish it went away 14:55:00 i absolutely hate drawing humans 14:55:57 drawing nongeometic objects takes a lot of practice :( 14:56:24 yes 14:56:29 but i dont like copying 14:56:37 i want to do own kind of ideas 14:56:40 not copies 14:57:00 evne i know what are the benefits but i still hate that 14:58:07 gn 14:58:12 --- quit: mur ("Murr.") 14:58:46 in order to develop your own style, it is often best to start out by imitating various drawings, to get a handle on how that is done, etc. 15:08:24 --- quit: tathi ("leaving") 15:49:03 gotta go...bye all 15:49:43 --- part: TheBlueWizard left #forth 16:49:21 --- join: arke (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 16:50:24 `/0 16:52:11 wassup? 17:53:58 --- join: I440r_ (~I440r@sdn-ap-005txhousP0299.dialsprint.net) joined #forth 17:57:57 I440r_: i have decided to be 3vili 17:58:22 --- quit: I440r (Read error: 113 (No route to host)) 18:46:21 --- join: LOOP-HOG (TofuMonste@207.191.240.41) joined #forth 18:52:29 hi 19:13:24 --- quit: LOOP-HOG () 20:25:25 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 20:30:57 y0 d00dz0rs 20:31:52 hi arke 20:32:10 arke: how's the forth coming? 20:33:23 Herkamire: gonna C it. asm too frustrating. 20:33:23 :P 20:33:35 :) 20:34:07 I did my first forth in C 20:35:12 Herkamire: i feel much better now :) 20:35:33 FFUUCCKK 20:35:35 :) 20:35:38 I'm not that good at asm, so perhaps that's the only reason I feel this way, but I feel like with asm you have to have a better idea what you're creating before you start. 20:35:44 anybody have a copy of pacific C handy? 20:36:23 C is a bear, but I've trained myself in the language heavily for 3 years. 20:36:41 C is not a bear. 20:36:52 >:( 20:36:59 how about "bastard"? 20:37:02 what COMES with C is a bear :P 20:37:09 C can be a bastard, yes :) 20:38:30 C just has good compilers 20:38:58 and it's dummed down to work more simularly to the way machines do 20:39:13 (both of which make the code run fast) 20:39:33 I just ported something from python to C and it now runs almost 100X faster 20:39:42 Herkamire: C doesnt have good compilers. 20:39:44 :) 20:39:58 Herkamire: a good forth or ML outperforms gcc :) 20:40:02 by good I mean creates prety fast binaries 20:40:33 nothing outperfoms gcc by much I think 20:42:28 there was some compiler benchmark test somewhere .. ill try to find a link. 20:42:55 forth.com 20:46:22 I440r_: no theres not ... 20:46:24 :) 20:56:06 http://www.bagley.org/~doug/shootout/ 21:01:19 wow, mlton got 0.02 on exceptions, gcc got 0.07 21:01:53 it also used <1kb memory, gcc using 296 21:02:44 g++ got 11.19 21:05:24 mlton also beat gcc with hash tables 21:05:33 but not by much 21:11:53 --- join: LOOP-HOG (TofuMonste@207.191.240.63) joined #forth 21:12:03 anybody in the mood to talk? 21:12:31 thats odd, g++ outperforms gcc slightly in mehtod calls 21:22:32 LOOP-HOG: about what? 21:22:51 does making an alias for VARIABLE called VECTOR let you not count your variables as variables when they are going to only be used to hold XTs? 21:23:13 or is that cheating? 21:23:14 :^) 21:23:45 sounds like they would still count 21:23:57 why? 21:24:11 they're still variables right? 21:24:26 you still have a word that returns the address of one cell 21:24:27 ok, then im a cheater because that is what I am doing 21:24:39 LOOP-HOG no thats NOT cheating 21:24:54 thats a way of making your sources more descriptive 21:24:59 it's fine to do that, it's just the way you count it is weird :) 21:25:25 who cares about the count? 21:25:29 so you should not have vectors because they are variables? 21:27:12 may I assume that VARIABLE will always set its value to 0 when created? 21:27:34 LOOP-HOG: just keep it simple. I think the art of programming is: always learning how to keep it simple 21:27:43 loop no 21:27:51 you cant always assume that at all :( 21:28:01 which is why the old fig method is better 21:28:02 LOOP-HOG: if you define it liike this you can: : variable create 0 , ; 21:28:11 fig variables require their initial value on create 21:28:14 0 variable foo 21:28:23 not just variable foo 21:28:43 I440r_: I like that 21:28:47 i can take a look at how VARIABLE is defined in my system, but i can't expect that to be portable across to other systems 21:29:01 rite 21:29:07 LOOP-HOG: so just do this: : variable create 0 , ; 21:29:10 you can do this tho 21:29:17 : variable create 0 , ; 21:29:29 and make sure the definition is sane :) 21:29:38 or variable fred 0 fred ! 21:29:39 or better yet, define stuff I440r_'s way, and do: : variable , ; 0 variable foo 21:29:41 i guess 21:30:48 if you want it to be clear that you are using "variable" in a way that might be different from your implementation (which would confuse people used to that implementation) than just call it "var" or something else. 21:31:09 nees a create in there :P 21:31:16 : variable create , ; 21:31:26 I440r_: oops. :) you're right 21:31:35 heh 21:31:51 you would have caught it the second time 21:32:16 maybe I should read my code examples after I type... 21:32:42 i understand what you mean but maybe it would confuse a newbie reading the logs 21:32:48 do newbies read the logs? 21:38:10 lol 21:38:12 * I440r_ hides 21:41:19 LOOP-HOG: I don't know. I wouldn't think they would much. they're not that interesting ;) 21:41:57 anyway, thanks 4 the info 21:42:45 seems kinda slow right now, maybe i'll just go back to reading some source code and keep this IRC session in a window to the side 21:46:02 LOOP-HOG: we don't want to blab so much as to discourage people from working on their forths ;) 21:46:14 ok 21:46:26 I'm too groggy/sick to program right now, so I'm working on my documentation and task list 21:47:11 do you want a portable definition for a word that will create a datastructure and then return the address and count of a string of the name you just created incase you need to do something with that? 21:47:47 Herk: you need to know when to code and when not 21:49:42 I don't want something like that 21:49:52 ok never mind 21:50:12 sounds too much like C++ 21:50:42 oh oh, maybe i'm being bad 22:03:59 good data structures is one of the most important bits of program design 22:04:08 don't avoid spending a lot of time on them. 22:04:12 i'm trying 22:04:14 they should be well thought out, and well documented 22:04:25 i'm trying 22:05:09 me too :) 22:05:34 I just put on my forth project todo list to rewrite the editor... 22:05:45 we're never to old/good to rewrite stuff 22:05:52 is this for a Forth of your own creation? 22:06:04 i'm glad to hear that 22:08:53 yes 22:09:35 I've been working on it pretty heavily (considering I'm not being paid) for almost 8 months. 22:09:45 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 22:09:52 atleast it gives you something 2 d 22:09:56 2 do 22:10:26 what kind of Forth is this? 22:10:37 I just changed my source format, removed maybe 20% of my kernel and now I'm looking at renovating the editor 22:11:39 it's a native PPC forth (which will boot on apple hardware sometime) 22:11:54 is this a colorForth variant? What OS is this on top of? 22:12:15 it runs on pre-parsed source (meaning it's in binary, with the dictionary lookups already done) 22:12:54 it is more like colorforth than conventional forths. it displays using color instead of syntax, but it could easily display syntax 22:13:15 it's quite simular to enth/flux OS 22:13:32 except for the platform, and the source format 22:13:37 is it a colorForth / traditional Forth hybrid? 22:13:50 it currently runs under PPC Linux only 22:14:19 I can't think of anything that I took from traditional forths 22:14:35 I'm taking many ideas from colorforth, and one from aha (Jeff Fox project) 22:14:41 so lets call it a Colorforth variant then 22:14:48 yes 22:15:03 do you suppose colorforth could have been w/o forth ? 22:15:04 its cool that people are taking Chucks latest ideas and running with them 22:15:25 LOOP-HOG: not many are, but some. 22:15:55 colorforth is a bit tricky to run with because you have to write a _good_ editor before it pays off. 22:16:31 and then when you get the rest of the Forth up and functional you want to rewrite the editor 22:16:35 i would summise 22:16:35 looks good to me in the long run, but until I can make the editor better than vim in some way, it's still theory 22:17:00 my editor works OK 22:17:14 it's just that the code is a bit of a mess, and I don't want to look at it. 22:17:36 I may wait on rewriting it until I rethink the interface. 22:18:02 I don't think my code is that bad, it mostly needs to be sorted into more blocks 22:18:25 these are blocks in a single file, right? 22:18:48 initially they are seperate ascii files 22:19:19 before my forth starts up I parse them all into a dictionary, and a bunch of source tokens, and stick them in the ELF file with the kernel. 22:19:20 i see 22:20:09 i dont think i follow you 22:20:11 the source format makes a beautifully simple kernel. my kernel compiles to 900 bytes on PPC (ELF header and all) 22:20:36 900 bytes, that would have to be color forth 22:20:39 when the forth is running, there is just one file: the forth binary. this contains the kernel, the dictionary, and all the source blocks 22:20:40 gesh 22:22:00 i think i pretty much get it 22:22:34 I have not described my source code format, but it makes the interpreter laughably simple 22:22:41 and rediculously fast 22:23:00 fast enought to be a jit compiler 22:23:29 yeah, although I don't think I'll do that 22:23:35 no point really. 22:25:07 in my forth, if you press "S" it compiles a new kernel, then writes a new binary with the dictionary and everything in it, then it runs it, recompiling the rest of it's self. Basically all the code I've writtes so far (the kernel, the core words, the assembler, and the editor) are recompiled from forth source. 22:25:34 this process takes about 4ms on my computer (dual G4 450Mhz) 22:25:53 --- quit: gilbertdeb ("Told you I could quit any time!") 22:26:13 4ms to metacompile an entire Forth system :^) 22:27:07 the only noticable effect is that the editor redraws it's self (this is sometimes visible as a flicker on the terminal because I blank the screen before displaying my text) 22:28:47 y0 all, im back. 22:28:48 I expect that in the future that will take longer as I add more words 22:28:49 aaan 22:28:55 hi arke 22:28:55 i was thinking about my forth. 22:28:59 Herkamire: :) 22:29:05 but gee, i wouldn't worry about that 22:29:06 arke: good boy ;) 22:29:28 ok arke, what kind of Forth do YOU have? 22:29:34 LOOP-HOG: yeah :) I plan to keep it fast enough that it never takes a perseptible amount of time. 22:30:01 LOOP-HOG: its not really a "forth", in that all it does is spit out pure DOS binaries 22:30:33 i dont understand 22:30:40 Jeff Raskin (author of The Humane Interface) says that software should never take longer than 10ms to respond. I think I'll always be able to keep it under that, and I'll never have to do a progress indicator. 22:30:59 cool 22:31:24 although... I'm not sure it actually needs to respond 22:31:36 it doesn't now, it just saves 22:32:46 arke: you are setting it up so that you can execute your forth definitions while your compiler is running right? 22:34:35 Herkamire: immediates are interpreted by the compiler, if thats what you mean 22:35:48 I mean if you have this in your source: : bla 1 . ; bla 22:36:06 that your compiler will print a 1 on the screen when you compile the source 22:36:20 Herkamire: no. 22:36:32 (asuming you have . ) 22:36:37 Herkamire: itll just spit out a binary, which will print 1 on the screen 22:36:47 erm 22:36:54 ? 22:36:59 this . thing is gonna be a problem :) 22:37:10 easy. 22:37:14 no . for you :) 22:37:17 is there any interactivity in the system? 22:37:31 arke: I don't care if you hav . 22:37:43 arke: it is important that words can be executed when the compiler gets to them 22:38:17 : bla something ; bla 22:38:35 something needs to happen when the compiler get's to the seccond "bla" above 22:38:49 Herkamire: nothing happens though 22:39:03 what does your compiler do with the seccond "bla"? 22:39:08 discard it? print error? 22:39:40 --- join: Klaw (~anonymous@ip68-4-157-105.oc.oc.cox.net) joined #forth 22:39:43 Herkamire: the compiler creates an invisible word called main, which is the start of the binary, in which it dumps all the not-in-words calls 22:39:48 :) 22:40:16 that won't work 22:40:32 well, maybe for some stuff 22:40:46 : bla something ; bla ---> : main bla ; : bla somehting ; 22:41:02 I think you're loosing the power/usefullness/beauty of forth 22:41:24 Herkamire: heh 22:41:33 Herkamire: dont worry, my friend. 22:41:54 you are also going to end up with bigger and slower binaries 22:42:16 once i get the compiler, ima make the environment which does that stuff. the compiler is to make binaries, for release or whatever 22:42:38 Herkamire: no, smaller, because otherwise you would have to save instances of the interpreter in the binary. 22:42:49 arke: no you don't 22:43:09 you only have to put the interpreter in the binary if you want it to be able to interpret text 22:43:28 Herkamire: heh 22:43:30 fine 22:43:34 :'( 22:43:36 lol 22:43:51 Herkamire: well, with any other than a stc forth you would have to. 22:44:01 and those arent too common 22:44:10 what's stc? 22:44:31 subthreaded forth 22:44:47 : blah cheese foo ; --> call cheese; call foo; ret 22:44:59 then theres dtc = direct threaded forth 22:45:07 here's something you gain by making the compiler be able to execute forth definitions as it's compiling: constants 22:45:23 hm? 22:45:54 you can often compute stuff at compile time, and then all the binary needs is the number (which can be a machine instruction to put that number on the stack) instead of a computation or a variable 22:47:12 0 constant blah --> blah dw 0 22:47:16 :) 22:48:40 erm 22:48:42 actually 22:49:00 BTW I don't know x86 assembly language 22:49:07 Herkamire: aah ok :) 22:49:29 I know PPC asm and some of the general differences 22:49:50 does your compiler support constant? 22:50:47 0 constant blah --> push ebx (top of stack register); mov ebx, 0 (this one should be obvious. i think its ld or something in ppc) 22:51:13 it will, yes :) 22:51:38 oh, I see what you mean about having the interpreter in the binary. you mean if you define something like this: : constant create , compile @ compile ; ; 22:51:47 then that definition would be in your binary. 22:52:05 :) 22:52:11 erm 22:52:15 follow? 22:52:32 im thinking, how to compile something on the interpreter stack... 22:53:12 I suggest you make two seperate places where you compile code. one for definitions you want in your binary, and one for words that you will only use to compile the rest of the source. 22:53:21 : constant compile dup $(op-code for mov ebx,) compile-tos ; 22:53:41 (where dup is push ebx :) ) 22:54:39 you could have words to switch which one definitions go into, or you could have two versions of : 22:55:03 c: constant ... ; : main ... ; 22:55:20 Herkamire: hmmm? 22:55:38 Herkamire: i plan having : ; and : ; immediate 22:56:06 you could add a word c: which would start a new definition which could compile code that you could run as you compile, but would not be included in the binary 22:56:16 (you could put it some place else in memory) 22:56:48 that would be : ; immediate :) 22:56:50 that way you can easily compute stuff at compile time (such as the value for constants etc) and extent the forth parser and really take advantage of the language. 22:57:05 hrm 22:57:06 that would make your kernel much much simpler 22:57:20 make it much easier to program in 22:57:25 Herkamire: not really, but i like the idea (although i had a similar one :) ) 22:57:28 and it should make your binaries smaller 22:57:38 clog: is it then :) 22:57:41 wtf? 22:57:45 clog: 22:57:53 c: 22:58:10 arke: what are you trying to do? 22:58:14 c: is is then 22:58:15 :) 22:58:21 damn xchat name completion 22:58:48 hehe :) it completes when you type a :?? 22:59:17 yes :( 22:59:21 hmmm 22:59:22 what will they think of next 22:59:29 clog: is kinda uglyy tho 22:59:30 mine completes when I hit tab 22:59:36 (irssi) 22:59:37 Herkamire: so does mine 23:00:01 don't insult the channel logger ;) 23:01:08 clog: f00k j00 23:01:44 you can make a better name: compiler-def bla ; 23:02:08 hm 23:02:12 immediate: 23:02:13 :) 23:02:31 or you can use words like COMPILER and BINARY 23:02:45 to select where the : definitions will be compiled to 23:03:32 nice :) 23:03:54 hm 23:03:56 naah 23:04:02 i think ill prefer immediate: 23:08:13 :) 23:11:12 but they're mostly not immediates 23:12:48 yes they are! 23:13:06 no 23:13:41 immediate: foo 2 6 * compile-tos ; 23:13:43 :) 23:13:59 heh :) my binary from my forth is bigger than my source and interpreter combined. 23:14:19 oops. by binary I mean the compiled code that it generates and runs. 23:14:29 l0l 23:15:28 if I saved all the code that my forth compiles, it would be about 44KB 23:15:52 my source and interpreter together are about 19KB 23:16:16 heh 23:16:16 sorry that's 29KB 23:16:33 again with the reading before hitting enter 23:17:12 :) 23:17:46 the binary is 50% bigger 23:19:33 and to make smaller binaries I could drop all but one bit from each dictionary. ok, round that up to a byte and my source could be: about 10KB 23:20:35 do you want/need your binaries to have a tiny RAM footprint? or just tiny binary? 23:21:26 erm 23:21:29 both :) 23:21:35 since its DOS .com 23:21:37 , 23:21:39 it 23:22:03 probably needs a small footprint, not binary 23:22:11 i want to try and get a balnance going 23:22:32 what's the RAM limitation of a .com? 23:23:51 none :) 23:24:31 and the disk size? 23:24:38 64K? 23:25:04 hm 23:25:43 how big can a .com file be? 23:25:49 infinite 23:26:09 what?? 23:26:21 :) 23:26:28 I thought .com files had to fit on the boot sector or something 23:26:31 technically, i believe it can be infinite 23:26:40 hm? 23:26:40 no 23:26:43 :) 23:26:58 and aren't you limited to a 16 bit address space? 23:27:03 yes. 23:27:24 that's 64K 23:27:30 yes :) 23:27:55 64K != infinite 23:28:16 :) 23:28:22 infinate 64k = . 0 23:28:26 * arke != smart 23:29:07 bbiab I think. time for a shower 23:29:13 :) 23:30:38 c++ forth = . 0 23:32:26 hm? 23:32:53 how come you guyes write something != something-else when this is a forth board? 23:32:59 just kidding 23:33:08 hah 23:53:57 i need to leave now 23:54:08 i'll see you later 23:54:20 --- quit: LOOP-HOG () 23:55:19 pacific C is pretty nice. 23:55:49 arke: is that a book or a dialect? 23:56:08 aaaaah my shower felt good 23:56:15 almost a sauna 23:59:59 tell me later 23:59:59 --- log: ended forth/03.09.20