00:00:00 --- log: started forth/03.12.22 00:26:06 In my Forth I've made it so that if consumes one argument, even though it inlines its argument. 00:26:19 And I've changed if to be named "then" 00:27:20 So, it goes like: : do.this 1 2 + ; 20 'var' set 'var' get 40 < then do.this 00:28:32 To me it reads more clearly and it forces me to factor more. 00:29:24 I also have: loop.n.times do.this and this week I will probably complete "loop.from.to do.this" and "loop do.this" (with leave) 00:30:09 imaginator, whats your forth ? 00:30:13 Perpheon 00:30:25 <-- isforth 00:30:36 here we go 00:30:39 yes, I know. You're the Linux forth guy. 00:30:45 das me 00:30:51 here we go where ? 00:30:57 ;) 00:30:59 Making looping work properly was a real exercise for me. 00:31:26 is loop an immediate compiling word in your forth ? 00:31:48 I knew I had to push the arguments on the return stack to deal with making loop.n.times re-entrant, but it seemed more complex than it really was. 00:31:59 yes it's immediate. 00:33:13 For example : incr 1 + ; 0 9 loop.n.times incr 00:33:58 loop.n.times turns into a the code WID_LOOP_N_TIMES, and the word following it in the collection is the number of words that follow for the incr word. 00:34:02 you can use loop.n.times outside a : definition ? 00:34:08 yes 00:35:32 cool 00:40:23 If anyone is curious: http://www.xmission.com/~georgeps/Perpheon/Perpheon-96.zip 00:41:02 wish8.4 fed_bld.tcl in src will start the IDE I use to build it. 00:52:01 I have planned to make Perpheon eventually support multitasking, but it will not be cooperative like most Forths. 00:52:45 In my current design I would fork() a timer process that communicates with the main process via a pipe. 00:53:30 And the timer process would send interupts via kill() that would trigger a signal handler. 00:53:50 It would also write to the pipe the id of the task that should be triggered. 00:54:49 How have other Forth's dealt with multitasking that isn't like the standard Forth method? 00:55:36 isforth will use fork and clone im thinking 00:56:38 hmm, maybe clone() would be better. NetBSD emulates clone(), and OpenBSD has rfork() which does most of what clone() does. 00:57:16 How were you planning to do it with fork and clone? 00:57:18 well isforth will run in fbsd with linux emulation 00:57:24 not planning yet heh 00:57:31 just an idea for the future 00:59:39 * Serg loops another way 01:00:00 20 REP SOMEWORD 01:00:04 i think ill add rep to isforth 01:00:07 it looks neat 01:00:10 If I use clone() then I could possibly save some memory, but fork() is CoW with most systems now. 01:00:32 which systems dont do copy on write ? 01:00:39 old most likely 01:01:07 i would prefer NO copy on write - i.e. 100% shared code/data between tasks 01:01:43 Well as clone() is used to make pthreads that sounds like the right thing for you. 01:01:54 yup 01:02:49 20 REP SOMEWORD is interesting. I read once that Charles Moore loops by invoking the current word, or something like that rather than adding any looping word. 01:03:09 That was in a more recent Forth he built though. Possibly ColorForth. 01:03:17 --- quit: Robert (Remote closed the connection) 01:03:24 --- join: Robert (~snofs@c-b75a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 01:03:40 robert when are you going to do isforth a web page 01:04:06 Prolog deals with looping like that. Function calls in Prolog use tail-recursion, so they don't overflow the stack. 01:07:11 For instance: foo(A) :- A > 9, B is A + 1, foo(B). 01:09:20 :- is like if, and "," is like AND. 01:14:47 chuck is also against adding more words than needed heh 01:16:15 Some people tell me Forth is insane, and that he has a lot of crazy ideas. 01:16:39 ? 01:16:42 you mean Chuck? 01:16:46 not Forth 01:16:46 yes 01:16:51 well both 01:16:55 hehe 01:17:33 there are a lot of descriptions of crazy 01:17:44 one is unusual and out of the ordinary 01:17:55 obsession 01:18:18 the other two are mad/insane and full of cracks/flaws 01:18:49 so I guess it depends on which crazy people think he/forth is 01:18:53 I think the former 01:19:12 Well, the fellow that told me that used to chat here I believe. 01:19:40 I was talking with some friends about a paper Moore wrote, and he mentioned it. 01:19:41 if it were full of cracks and flaws and if Chuck were mad/insane he wouldn't have developed all of what he has and done so successfully nor would he be paying bills and be with his wife 01:19:46 chuck is an artist 01:20:06 he might be insane but he is VERY clear thinking 01:20:26 brb - trying 2.6.0 01:20:34 --- quit: I440r ("Leaving") 01:21:03 I think clear thinking and insanity go against each other 01:21:25 I've never met the guy but from his work and other work related to it, I can tell he is not full of shit 01:21:40 I like Moore's work and I don't think he's insane. 01:21:54 good 01:22:45 I love how he can see the algorithm in problems. 01:22:56 Like the ColorForth example he gave of a disk driver. 01:23:04 ide driver? 01:23:06 4 or 5 lines 01:23:11 yes, brilliant heh 01:23:11 I think that was it. 01:23:17 www.colorforth.com/ide.html 01:23:28 5 lines 01:24:14 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 01:24:27 I hope that someday I can write code like that. 01:24:38 wb I440r 01:24:41 well that didnt work lol 01:24:52 What's wrong with 2.6.0? 01:24:55 write code like what ? 01:25:06 Like Moore's IDE disk driver in ColorForth 01:25:11 something to do with fram buffer - all i get is a blank screen :/ 01:25:50 yeah, I agree 01:25:56 I'll be attempting to do so in my system 01:27:34 ree: what is your system? 01:27:56 two parts 01:28:11 a distributed network os and then network projects based on top 01:28:34 cool 01:28:49 forth sort of fits in between as an intermediate interactive development system for generating machine code (as an editor/assembler) 01:28:57 TCP/IP in Forth? 01:28:57 i cant fscking read that 01:29:01 and then it will also be integrated into the development network project 01:29:02 thats impossible to understand 01:29:11 what is? 01:29:14 i would also like to see some SOURCES for colorforth 01:29:22 "assembler" sources 01:29:27 color.asm 01:29:30 Well I got some somewhere. 01:29:30 not manually constructed opcode encodings 01:29:36 hmm 01:29:38 color.asm is gobbldegook 01:29:40 http://www.colorforth.com/install.htm 01:29:44 ahh 01:30:23 imaginator, more like assembled from forth 01:31:09 color.asm makes sense to me 01:31:25 thers no assembler pneumonics in there 01:31:33 ide.html isn't too hard either 01:31:36 imaginator: http://snaga.inbox.ru 01:31:42 its all $55 5 shift lefft or with this xor with that comma it in... 01:31:43 bullshit 01:31:45 ? 01:31:47 what? 01:31:49 20 rep someword and much more 01:32:06 the assembler primatives are TOTALLY unreadable 01:32:08 there is a lot of assembly code in it 01:32:12 err ! 01:32:13 err 01:32:16 since when 01:32:19 imaginator: http://snaga.narod.ru 01:32:21 every line 01:32:27 every source file i can find on there is totally unreadable 01:32:28 ftp://ftp.ultratechnology.com/COLOR.ASM 01:32:30 give me a url for that 01:32:46 it's 100% legible 01:32:53 no. i was looking at the one on chucks site 01:33:04 that is pointed to on chuck's site 01:33:09 the only version that is 01:33:31 perhaps the older version(s) were like that 01:34:02 there have been ports already to windows and xfree86 01:34:05 Serg: I'll take a look. 01:34:21 two from complete amateurs 01:34:32 (as stated on their project pages) 01:34:58 * Serg dislikes ColorForth for not being 'UNIX way' : processing of text streams 01:35:11 ok, THOSE sources are PISS POOR too 01:35:13 no fucking comments 01:35:26 im not even going to bother looking at a source file if the author is too dumb to comment it 01:35:34 i dont care if it IS chuck moors sources 01:35:53 * Serg writes no comment code too ;(( 01:35:56 how does he ever expect ANYONE to take colorforth seriously if he cant COMMENT! 01:36:11 ? 01:36:14 wtf? 01:36:22 what is the importance of comments in asm code?? 01:36:24 theres absolutely NO comments in that file what so ever 01:36:34 Some people have understood it well enough to make it run within Windows. 01:36:41 it's imperative! 01:36:57 the sorucces look like an unmader bed 01:36:59 none of his code uses macros or functions spread throughout five thousand files like those in other HLL 01:37:07 nobody writes decent source code any more 01:37:17 its all so fcuking untydy and disjointed and UGLY 01:37:26 you don't really need to comment assembly code.. especially if it uses no macros and exists entirely in one file 01:37:27 ASM w/o '; ' is wasted time 01:37:27 im not going to fight to understand someones scratchings 01:37:33 re3e thats utter bullshit 01:37:41 COMPLETE and utter bullshit 01:37:44 wtf 01:37:47 you guys are weird 01:37:56 nope that's just I440r :) 01:37:57 it's nice to have comments 01:38:03 but come on 01:38:15 it doesn't make source illegible if you don't have it 01:38:22 I440r: let some steam out, don't flame please ! 01:38:25 especially with such code as this 01:38:47 that code is butt ugly 01:39:05 it truely annoys me when coders write messy sources - its like they dont give a fuck 01:39:22 I440r have you emailed him to ask if he has some design plans or comments? 01:39:30 --- quit: Robert (Remote closed the connection) 01:39:41 --- join: Robert (~snofs@c-b75a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 01:39:51 no. im not following colorforth, im about " <-- this interested in it right now 01:40:09 --- join: schihei (~schihei@pD95487B5.dip.t-dialin.net) joined #forth 01:40:09 sigh 01:40:39 if the sources looked like they were actually FORMATTED with consistency and had COMMENTS in them then i would take an interest 01:41:05 but ive absolutely no interest what so ever in wasting my time trying to wade through that sort of crap 01:41:16 * Serg thinks ColorForth is a lossage coz overall concept, not coz lack of comments 01:41:22 i dont care HOW good the compiled code is, the source is BAD 01:41:32 why Serg? 01:41:36 thats part of the reason i avoid all contact with c soruces 01:41:46 I think imperative source can be as ugly as it wants 01:41:50 * Serg dislikes ColorForth for not being 'UNIX way' : processing of text streams 01:41:56 ohh my god 01:42:00 * ree just had a stroke 01:42:03 heh 01:42:14 it's like I am in another world here 01:42:26 in what world ? 01:42:54 high level/general purpose application operating system/pretty code means more than functioning code world 01:42:54 why can't i say: cforth because as you probably know, chuck thinks forth should be a system itself 01:43:34 and hates competing "standards" 01:43:41 hmmm.... 01:43:46 he is right only... 01:43:52 he is right 01:43:54 for embedded-like cases 01:44:23 like PC dedicated to xmas-tree blink controller 01:45:42 Interesting: debug: ... mov EAX, God 01:46:41 * Serg is atheist 01:46:49 That's from COLOR.ASM I guess he has a sense of humor. 01:47:18 Does God stand for Global offset d? 01:48:08 Serg: atheism is popular in Russia isn't it? 01:48:12 ree: for general use, we need general purpose OS 01:48:40 imaginator: yes, rather 'scientific approach' to anything, incl. religious issues 01:48:56 praise to our good total EDU 01:49:23 what's being ruined by fu... moneybag goats at power 01:50:11 they need cattle, not free-thinking citizens 01:50:47 serg, we don't need an os period 01:50:47 Well, even if you don't believe in a god I think most people that read books like Proverbs would agree it contains wisdom 01:50:58 we don't need programmers either 01:51:05 we just need users I believe 01:51:12 but that is outside chuck's philosophy 01:51:24 the point is what chuck needs 01:51:35 or what you need or what I need 01:51:38 heh, how da hell will you IRC or EMAIL or draw funny pics w/o OS ??? 01:51:57 how 'll you support different hardw ?? 01:52:13 in colorforth you would develop them separately of any intending os 01:52:23 portability is not considered in forth 01:52:27 have drivers 4 every proggie, like for Autocad and 3DS in DOS times ? 01:52:36 that mega suxxx !!! 01:52:40 How would you multitask? 01:52:49 tasking would be built in 01:53:05 I am not a fan of the approach chuck proposes for general purpose usage.. but that is just it 01:53:12 chuck doesn't propose it for general purpose use 01:53:15 I guess it is about data processing, and not programs, so an OS is somewhat pointless from that perspective. 01:53:15 he does it for his own use 01:53:21 i say NO to it ;(( 01:53:23 I'm sure chuck has a windows PC at home too 01:53:35 i stand for UNIX, but... 01:53:36 The original Apple system that used Smalltalk didn't have programs. 01:53:47 It was more do this task, and do that task as I understand it. 01:54:02 simplify and rethink it Forth way 01:54:10 I stand for getting rid of all PC installations, programming languages, and software development cycles 01:54:15 turn users into developers 01:54:27 using their method of development 01:54:28 damn ! 01:54:30 not anyone elses 01:54:40 not your method, not XYZ general purpose os's method 01:54:42 but their method 01:54:50 if my managers will code and won't sell... 01:54:50 let them have full control 01:54:54 If we ever do develop a great Forth system we could build translators that would convert all of those massive programs for Windows to function at least to a certain extent in a Forth system. 01:54:58 i won't get my salary ;(((( 01:54:59 and in a way, forth is about that 01:55:13 forth isn't about forth even 01:55:19 instead of having general pupose methods just have one operating system so you only ever have ONE method for anything 01:55:25 lets pick windows! 01:55:27 chuck always says, it is about the problem 01:55:37 you're completely ignoring everything 01:55:40 i440r 01:55:44 lol 01:55:52 i was being funny not serious :) 01:55:53 I just said that general purpose systems have exactly that, their own method for doing XYZ 01:56:08 when everyone should be able to use their own procedure for going about doing something 01:56:15 without any cruft or unwanted features 01:56:25 so that is my goal 01:56:56 replace the middle men, the programmer, the general purpose os, and finally the PC 01:57:13 make everything into dumb terminals that let people connect to a large development network 01:57:25 and let them get on with their work 01:57:44 ree: revolution suxx, evolution rulez 01:57:54 wrong 01:58:05 we don't hardly have enough revolution at all in computer science 01:58:15 UNIX and Windows are crap compared to what could be accomplished 01:58:21 PCs are crap 01:58:30 so do non-crap ! 01:58:38 forth itself is crap.. and chuck wouldn't disagree most likely 01:58:39 They design PCs for the OS now. 01:58:49 err i dont think i would like that 01:58:58 thats like big brother 01:59:03 make a good comp and write good code 4 it ;)) 01:59:10 the master machine everyone uses 01:59:13 control is an illusion i440r 01:59:24 If we could have a massive dictionary of words shared by every programmer on Earth just imagine. 01:59:25 big brother controls what you see, here, eat, sleep on, think 01:59:27 here/hear 01:59:31 i suppose privacy is too 01:59:35 PCs, general purpose oses 01:59:39 * Serg agrees w/ I440r 01:59:42 they are created by big brother: society 01:59:43 * Serg agrees w I440r 01:59:58 imaginator, yes, you're getting the idea 02:00:02 imaginator, except in a forth way 02:00:04 * Serg is AFK 02:00:35 but it wouldn't have to be identical to every other shared word 02:00:43 it could be 100% custom to each individual 02:00:57 wow 02:01:10 We could accomplish so much. 02:01:13 that is what is great about breaking away from standards and building systems that support such capabilities 02:02:47 people become people, individuals once again 02:02:50 not just consumers 02:22:49 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 02:23:05 hihi! 02:23:12 Hi MrReach 02:23:23 hey mrreach 02:23:26 mrreach!!! :) 02:23:37 ree: you have interesting ideas. 02:23:37 heh 02:23:58 I picture a future where almost everyone knows how to create computer programs. 02:24:01 just had a massive paradigm shift regarding dis/assemblers 02:24:11 mrreach how so ? 02:24:34 better make sure there's strongly typed languages about, imaginator 02:24:55 ree: it sound as though you do too. 02:24:57 well, I had started out like every other forth assembler ... 02:25:03 mrreach study my 8051 assembler ??? 02:25:19 comming opcodes and the storing them with DOES> clauses 02:25:31 right 02:25:36 oh! hell! didn't check my mail today ... sorry 02:25:40 lol 02:25:46 did i email it to you ? 02:25:49 i ferget lol 02:26:01 and then using a table driven disassembler 02:26:31 right - my 8051 disassembler is definatly table driven :) 02:26:31 heh 02:27:06 I think (and this is just a first pass thought) that it might be hugely easier to write and reread if both are combined into one file 02:27:25 i had thunked about that 02:27:30 that are broken into sections, one for each mnemonic 02:27:36 but disassembly and assembly are so vastly different 02:27:52 they require much of the same info, though 02:28:02 mostly flags about addressing types 02:28:20 imaginator, yeah, but without using language other than their own (natural language) or visually 02:28:25 but one constructs the info - the other one uses the info to construct a display of the instruciton 02:28:44 correct 02:28:47 i dont think you could create a mapping between the two that could be used by both the assemblrer and the disassembler 02:28:58 i would be very interestd if you could :) 02:29:01 like I said, it just occured to me, haven't given it much thought 02:29:21 it would be an awesome assembler/disassembler 02:29:27 i'm not so much interested in reusing data ... 02:29:38 i had thunked of it before but i dont think i could create it 02:29:46 as in making the code code crystal clear and understandable 02:30:07 assemblers are famous for being obtuse :P 02:30:11 it would probably take roughly the same bytes and processor cycles 02:30:12 obfuscated even 02:30:31 yeah, especially the forth ones 02:30:36 :) 02:30:49 that and metacompiling people just don't seem to get 02:31:40 i dont get meta compiling yet 02:31:42 even with pygmy, which is brilliantly simple, I had to take the assembler as a black box and trust that it worked properly 02:32:03 --- quit: Robert (Remote closed the connection) 02:32:08 --- join: Robert (~snofs@c-b75a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 02:32:09 which it didn't with far calls, btw, which I lost two days figuring out 02:32:40 pygmy is old school - dos 16 bit heh 02:32:50 the good old days 02:33:06 yep, probably the one I understood best, though 02:33:16 odd as it was 02:33:28 yup 02:33:46 mine was always fpc but there were huge areas i didnt even WANT to look at 02:33:50 like the editor 02:33:55 yep 02:34:02 and the assembler 02:34:05 same with the editor in win32forth 02:34:08 good old days? 02:34:13 heh 02:34:26 it's a nasty-ass mess 02:34:50 80s/90s 02:34:59 i was seriously disappointed with tom zimmer when he went the windows way 02:35:10 I440r: so what stopped you from using a similar approach? 02:35:11 it was like "ugh" 02:35:25 a similar approach to what ? 02:35:27 Windows: 90% PCs 02:35:38 Linux: 1-4% 02:35:39 and falling 02:35:44 and growing 02:35:44 to combined dis/assembler 02:36:05 because i couldnt figure out a mapping that would work in both directions 02:36:22 windows has its place, so does linux/freebsd 02:36:48 windows only has a place as you call it because its IN YOUR FACE 02:36:54 you cant get rid of the fskcing virus :P 02:36:57 who is serg? 02:37:03 serg_penguin 02:37:12 russian forth coder :) 02:37:22 been semi regular in here for ages :)O 02:37:23 not Seargent? 02:37:26 more so recently 02:37:32 ok 02:37:37 no i called him seargant penguin today to heh 02:38:14 wondows has suppior font layout, mutimedia, and hardware detection 02:38:35 but not stable enough for mission-critical stuff 02:39:00 the ONLY reason windows has superiour hardware detection is because hardware manufacturees are PAID by microsoft not to release their specs 02:39:01 not stable enough? 02:39:02 heh 02:39:16 um 02:39:19 wow 02:39:21 ree: you disagree? 02:39:29 that is such fud I can't believe you said it I440r 02:39:35 paid not to release specs? 02:39:38 they don't release specs because of competition 02:39:49 mrreach, depends on the mission obviously 02:39:54 ree i truely believe that microsoft and hardware ppl are in cahoots 02:39:57 ree: no, that doesn't fly 02:40:09 ? 02:40:17 there are a few mission critical devices that run windows 02:40:26 if I make peripherals, I want to be able to sell them to both windows and *nix users 02:40:28 probably in the thousands 02:40:38 wrong 02:40:44 you don't care about a crappy market of 1% 02:40:48 mrreach then why wont broadcom etc release their specs to the linux crowd 02:40:57 even less if you consider you don't get all of that market in sales 02:40:57 simple - microsoft askede them not to 02:41:03 I don't put my efforts to the 1%, certainly 02:41:04 heh 02:41:08 microsoft asked them to? 02:41:13 NOT to 02:41:24 companies have hard enough time making drivers for windows 02:41:26 *not 02:41:31 but Microsoft forced them to sign an NDA on their bastardised version of the USB spec 02:41:41 many companies have drivers for multiple systems 02:41:52 hell, even microsoft sells software/devices that work on different computers 02:41:55 and operating systems 02:41:58 it took the linux coders two years to figure out how it was set up 02:42:08 it took them that long because ask geist 02:42:12 was it USB or PCI??? 02:42:15 who codes on such systems 02:42:31 USB is a highly capable and complex transport 02:42:36 pci probably 02:42:40 rather the devices that use it are complex 02:42:41 whichever it was ... 02:42:42 And Linux developers signed an NDA when porting to Sun's latest Sparc processor. 02:42:50 there was a published standard 02:42:52 you have to have different drivers for different devices 02:43:01 how can you have an NDA on open source stuff 02:43:08 It wasn't published according to the OpenBSD developers. 02:43:13 "this source is open but top secret - do not read!!!" 02:43:14 and Microsoft would *NOT* certify the hardware if it used the standard as published 02:43:32 I440r, remember what you were saying earlier about ColorForth. 02:43:45 imaginator, ? 02:43:48 the drivers (and hardware) had to use a slightly modified version 02:43:49 If you see a bunch of magic constants ... 02:43:51 oh heh 02:44:23 They did eventually get it to work, but only after reverse engineering the code; which wouldn't have been needed. 02:44:44 anyway, it was bad business, and only help M$ for a limited time 02:44:46 They even contacted people that did the port to the processor, and were told that they signed an NDA. 02:44:48 you guys are off I believe 02:44:54 devices follow the usb standards 02:45:09 the problem is that each device has a different driver across usb.. usb is just a transport 02:45:20 fdd, keyboards, mice, printers, so on 02:45:38 yes, but the USB card is sposed to have specific ports at specific addresses as identified by PCI query 02:46:01 the PCI was misreporting those 02:46:16 as per M$ spec (and NDA) 02:46:34 how can MS dictate how hardware will work ? 02:46:35 wtf 02:46:49 I'd like to read this if you can find something saying the exact same thing online 02:46:52 they want to fucking run everything 02:46:54 fuck 02:46:58 by refusing to certify it if it doesn't work how they say it will 02:47:02 man you are so quick to jump the gun 02:47:07 who gives a fuck if ms certifies it 02:47:12 you have no certifiable proof MS did just that 02:47:14 fuck microsoft 02:47:35 it'll come to court in this next year, I suspect 02:47:38 heh 02:47:42 point me to some proof 02:48:02 read the kernel hacker's mailing list circa 1999 02:48:08 microsoft is not trustworthy. i believe them guilty untl THEY prove they are innocent 02:48:19 they had a hella hard time figuring out what the hell was going on 02:48:28 aren't you in the USA i440r? 02:48:31 i am 02:48:37 yes, that is because USB is complicated 02:48:40 http://kerneltrap.org/node/view/568 02:48:42 not because microsoft fucked with it 02:48:45 the PC Architecture is _supposed_ to be open-doc 02:49:06 i.e. OS neutral 02:49:21 your point? 02:49:39 I can list a thousand or hundred thousand peripherals that are not open 02:49:44 not because of microsoft either 02:49:55 when M$ forces hardware vendors to use different standards, and to sign NDA ... that's not cool 02:50:06 gives them an unfair competitive edge 02:50:32 where did you read this? 02:50:40 no, but their interface to the OS and other hardware is supposed to follow specs 02:50:59 interface to what os? 02:51:07 ANY os 02:51:26 you still haven't proven that microsoft did this to the usb protocol 02:51:28 supposed that I designed a PCI card that decided to feed the bus 120V signals? 02:51:37 or any other hardware device 02:51:52 erm ... it's not my job to do so 02:52:02 it is if you don't want to be considered a FUD spreader 02:52:03 in fact, I didn't even come here to talk about it 02:52:06 k 02:52:10 nevermind then 02:52:15 ok, i'm a fud spreader 02:52:19 :) 02:52:27 helps the garden grow :) 02:52:57 weed garden 02:53:04 on a related note, I depend on M$ docs to make my programs run 02:53:09 its all life 02:53:14 yeah, I remember all of this imaginator 02:53:19 which are generally accurate 02:54:22 only once have I come across deliberate misinformation (don't remember what it was now, think it was with COM interfaces to codecs) 02:55:41 but I remember that we could *NOT* use a range of devices on Linux for a very long time because the PC hardware didn't conform to one standard or another 02:56:37 anyway, will have to think about this combined dis/assembler thing 02:58:38 I440r: oh, what do you think of appending a comma onto all mnemonics so that they don't conflict with regular forth words? 02:58:48 i dislike it 02:58:57 we have vocabularies to prevent name conflicts 02:59:07 hmmm ... 02:59:37 the assembler should go in its own vocab which is only added to context when asked for or when one starts a coded definition 02:59:42 const1 const2 AND const3 OR # EAX MOV 02:59:54 and then ... 03:00:09 const1 const2 AND const3 OR # EAX AND \ <- OOOPS! 03:00:10 imo it'd be nicer to have words assigned to each instruction 03:00:37 ick 03:00:54 ree: and each possible variation? am I hearing that right? 03:01:12 I440r: see the conflict in the above code? 03:01:14 I only use a few anyway 03:01:16 mrreach ive never coded anything like that heh 03:01:54 oh, ok 03:02:02 * imaginator is leaving for a break, and wishes you all a good day 03:02:04 but i dont want COMMA on the end of every pneumonic - its just ubgly as hell heh 03:02:11 take care, imaginator 03:02:16 l89er dood! 03:02:18 reg words 03:02:22 later imaginator 03:02:27 --- quit: imaginator ("break") 03:02:42 what's that, ree? 03:02:49 hehe, can't believe you guys didn't take advantage of that prime rhyming opportunity 03:03:08 heh, distracted 03:03:31 actually thinking about it i think the forth and or xor should be & | ^ 03:03:33 just mouthing off.. haven't decided on how to implement my assembly mnemonics yet 03:03:56 are you writing an assembler? which mup? 03:04:04 mup? 03:04:11 microprocessor 03:04:22 ohh, it'll be x86-64 probably 03:04:28 by the time I get to it 03:04:32 ah! ok 03:04:44 x86 and x86-64 03:04:58 actually, I440r, i think that an excellent idea 03:05:05 :) 03:05:08 but it would break *SO* much code 03:05:13 no it wouldnt 03:05:21 wish they had done that to start with 03:05:24 you would just have to edit a bit 03:05:26 breaking code shouldn't matter.. good ideas should 03:05:33 ree exactly!!! 03:05:42 and surprised that more used three chars when one would have done 03:05:52 but I think words instead of symbols are the good ideas in this case hehe 03:05:53 more=moore 03:05:54 hrmm /me contemplates renaming the isforth logic words thuslyu 03:06:24 the closer we are to a minimal yet natural looking language the better imo 03:06:48 though symbols are sexy 03:06:54 : ; 03:07:00 I really find sexy 03:07:09 @ and ! are awesome names 03:07:17 i see @ and i just THINK "fetch" heh 03:07:30 could you not use parenthesis? 03:07:36 same here, and it take long 03:07:52 did NOT take long 03:07:57 nope 03:08:10 @ is a very good char for fetch and ! is perfect for store 03:08:17 better act quickly before chuck replaces those with a color (laugh) 03:08:29 anyway, for now we're stuck with forths that use AND OR XOR NOT 03:08:31 i couldnt for instance see $ or # or { for fetch/store 03:08:48 hrm - what would a 1 char NOT look like ? 03:08:50 & == and 03:08:54 | == or 03:08:59 ^ <-- is that NOT or XOR ? 03:09:10 ! <<- thats not 03:09:12 but its taken 03:09:13 hrm 03:09:13 not or exponent 03:09:15 ~ 03:09:18 there ya go 03:09:26 & | ^ ~ == and or xor and not 03:09:27 % == XOR 03:09:38 no % = percent or modulo 03:10:01 modulo more often... 03:10:08 I can't await your !$@^^^!||@$$^ forth implementation 03:10:30 erm ... you can do that with just about any current forth 03:10:44 people would have no problems with seeing & in place of and or | in place of or 03:10:52 but ~ and ^ would be confusing :) 03:11:20 starting forth is a good book 03:11:58 anyway, I hear vociferous complaint about commas on word names 03:12:09 yet I want to keep the forth dictionary accessible 03:13:25 hopefully w/o a whole bunch of vocab swapping 03:13:25 what processor are you targeting mrreach? 03:13:37 PentiumIV 03:13:42 ahh, k 03:13:47 great 03:14:05 I guess I would target a p4/athlon xp 03:14:20 and opteron for 64 03:14:20 rather got myself in *WAY* farther than I expected ... 532 different mnemonics now 03:14:22 I wouldn't of minded EPIC 03:14:26 too bad intel foobar'd 03:14:37 heh 03:14:49 I say implement them as you go... :) 03:14:55 nevermind the bazzilion addressing modes 03:15:02 max you'll ever use is about 50 03:15:10 7? 03:15:10 well, that is a fustration I've had in the past ... 03:15:36 went to go code a word, and the mnemonics weren't there 03:15:41 or even worse ... 03:15:52 they were there but didn't code as expected 03:16:42 24 addressing modes for one side, then the direction bit, and a 3 bit field for the other side 03:18:27 that's for the original 8086 ... then add floating point escapes, dual-purpose floating stack (xmm), SIMD extensions (8 128 bit registers and a half-dozen data types) 03:18:34 I won't have that many addressing problems in x86-64 03:18:34 fun fun 03:19:25 x86-64 (Itanium???) is a superset, isn't it? 03:20:18 x86-64 = amd 03:20:26 itanium was called ia64 03:20:52 the opteron and athlon fx are examples of x86-64 processors 03:21:03 intel doesn't have a x86-64 line (yet) 03:21:04 ok 03:21:19 the instruction set is not a superset of P4? 03:21:26 I'll just be operating in 64bit mode 03:21:38 ah, ok, not full support, then 03:21:44 that's what I was wondering 03:21:56 it includes full backwards support at the machine level 03:22:14 the process does, but will your assembler? 03:22:20 it's running 32bit code faster than its predecessors 03:22:25 ahh, no 03:22:31 I won't deal with 32bit code hopefully 03:23:43 ok, I'm hoping that one day someone will have to think hard about choosing either the intel assembler or mine ... including .OBJ output for regular linkers 03:24:15 linking is evil 03:24:30 just assembl everything to a SINGLE executable 03:24:34 finally something we agree on i440r 03:24:40 fasm-esque 03:24:41 ree lol 03:24:48 no - not fasm 03:24:51 a86 :) 03:24:55 blech 03:24:57 hehe 03:25:05 i regged a86 - a386 is good 03:25:05 let that assembler RIP :) 03:25:23 you'd think it would be OSS by now 03:25:25 nasm is almost as good 03:25:31 oss ? 03:25:33 heh, once you got the image in memory, it's not any harder to output a .o then an ELF executable 03:25:49 open source software 03:25:55 oh heh 03:26:06 it's ancient 03:26:11 or a PE32, for that matter 03:26:12 programmed by one guy 03:26:22 it fits all of the OSS qualifications :) 03:26:27 heheh 03:26:41 has a pink/purplish site hue 03:26:43 :) 03:27:47 I think I'll totally change the register naming around though 03:27:57 I like the risc style of register naming 03:28:01 rX 03:28:55 hmmm... there's a blue sky idea for forth ... 03:28:58 a0 = al, ah = a1, ax = a2, eax = a4, rax = a8 hehe 03:29:19 blue sky idea? 03:29:29 develope to such a level that the entire forth system is in a .o file that can be linked/called from C 03:29:57 or .OBJ for windows platform 03:30:03 terrifying 03:30:30 heh, well, it would allow you to drop into forth anywhere in C with a function call 03:30:37 ahh, amd does name everything after the 8 gpr on x86-32 with rX syntax 03:30:52 yeah, but then you'd be using C 03:30:58 and function calls 03:31:13 and an os environment that supports such beasts heh 03:31:29 no, maybe C coders would be using the interactive nature of forth 03:32:00 I doubt I'll ever do any serious coding in C 03:32:29 Forth word calls aren't so different from C stack frames 03:32:37 show me some serious c code and ill show you obfuscation 03:33:04 ok, but conversely ... most serious code is written in C 03:33:21 most "serious" code is obfuscated 03:33:30 yes, that is the implication 03:33:36 not that it has to be 03:33:42 no. only beacause of c 03:33:56 and even THEN it doesnt NEED to be 03:34:07 heh, nonobfuscated code *CAN* be written in C 03:34:15 yes 03:34:31 imo, C is "ok" 03:34:45 but I prefer interpretive languages 03:34:46 agreed 03:34:57 c is ok. most c coder are not 03:36:54 heh, you're gonna hate me for this ... 03:36:57 I just do not agree with the design 03:37:06 C constricts the operating system greatly 03:37:17 but i'm thinking of letting the dictionary get huge 03:37:19 plus I generally hate programming languages 03:37:23 die 03:37:36 mrreach let the dictionaqry be huge - thats the nature of forth 03:37:44 just seperate it out into vocabularies 03:37:57 wanna store some interesting bit of info about each word? go ahead and add it 03:38:00 hrm i keep thinking of sub-vocabularies 03:38:13 how would one put a vocabulary inside a vocabulary 03:38:20 it would make find more complex 03:38:24 no, I was thinking of meta-info in dictionary entries 03:38:59 where it was loaded from, where the help file is, etc 03:39:04 you guys think too much 03:39:10 lol 03:39:15 thinking is good sometimes :) 03:39:20 stretches the muscles a bit :) 03:39:23 perhaps, ree, you do not think enough? @:^> 03:39:29 but then we can go back to sleep and DO nothing heheh 03:39:34 lol 03:39:50 probably a little bit of both 03:39:57 yeah 03:40:05 doing is what should be done 03:40:19 and nike's (good) motto 03:40:21 just do it 03:40:21 im trying to get back into the "doing" part of my project 03:40:30 i just cant seem to keep focused on it 03:40:37 you should print a large nike symbol above your computer desk 03:40:49 god, i'm right in the middle of it ... but it's do ... do ... do ... do ... 03:41:05 never seems to end 03:41:40 hehe 03:41:51 isn't this something you're doing for fun? 03:41:59 or intellectual experience 03:42:05 yes 03:42:15 yes and no ... hoping for commercial application 03:42:30 its not as much fun as sex but when do coders get that anyway :P: 03:42:38 "hoping" is not "planning" 03:42:58 commercial application of forth? 03:43:11 heh, wait 'til you're married "I'll be right in, honey!" 03:43:22 either I am getting tired or... 03:43:32 but you're still in front of the keyboard 3 hrs later 03:43:46 lol 03:45:59 I440r: on linux, is malloc'd memory owned by the process or the thread??? 03:46:14 arg! that could end up messy 03:46:14 yes 03:46:34 ok, kill the thread and the malloc'd memory hangs around? 03:46:35 it probably depends on how you allocate it 03:46:41 and its not malloc'd its MAPPED 03:47:02 oh, that's true at the syscall level ... was thinking glibc 03:47:05 you do a memory mapping. either anonymously or with a file 03:47:18 * I440r deliberatly knows NOTHING of glibc 03:47:36 you can map it as anonymous/shared in the 2.4 kernels and up 03:47:42 right, I guess it would make *NO* sense to free a threads memory when it is terminated 03:48:12 because passing pointers to mallocs is the usual way for one thread to talk to another 03:49:10 Hey guys... 03:49:16 Anybody know korean? 03:49:27 * MrReach laughs, "No, sorry" 03:51:09 erm ... do linux syscalls even support threads? 03:51:34 or that still out in the pthreads library? 03:51:47 +is 03:52:04 clone 03:52:10 pthreads uses the clone syscall 03:52:28 got a URL to that? 03:52:40 to the clone syscall ? 03:52:43 yes 03:53:33 i've read through the Win32 docs on the matter, and the glibc docs, never occured to me to do it at the system level 03:53:54 man 2 clone 03:54:10 arg! nevermind ... I'll find it 03:58:07 --- quit: schihei (Client Quit) 04:07:30 "clone" is pretty nifty 04:10:28 yup 04:10:53 looks like there is some confusion about how stack is allocated 04:11:04 and can't find what is in which registers 04:11:11 therse always confusion 04:11:26 i usually resolve confusion with a quick reverse engineer of existing code :) 04:11:43 Instead of looking at the manual :) 04:11:45 arg! stuffing around in C! 04:12:02 yes bit not c sources :P 04:12:16 the c sources are USELESS for finding out whats going on in REALITY 04:15:27 AHHA!!! Found it! 04:18:29 http://www.autistici.org/bakunin/syscall.txt 04:18:39 pretty good reference, if you don't have it 04:18:49 might want to save to your local drive 04:19:17 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 04:19:35 :) 04:20:24 well, I need to get some sleep 04:20:32 good night, all, thanks for the convo 04:20:39 :) 04:20:43 ya i need to go zzz too 04:20:48 15 hour drive later today 04:20:56 oooh fun! 04:21:09 hopefully not for chemotherapy or anything like that 04:21:22 lol no :) 04:21:23 I440r: where do you live? 04:21:30 live in indiana 04:21:32 work in tx 04:21:36 xmas coming up 04:21:45 heh, in Bumfuk Egypt 04:22:01 I440r: 5:20am there? 04:22:10 6:20? 04:22:11 there abouts 04:22:18 go to bed! 04:22:19 5:20 ish 04:22:31 lol 04:22:43 i got 3 hours sleep last night. drove a guy to the airport at 9 am thismorning 04:22:45 i suspect that I440r prefers to work when the building is empty 04:22:50 went back to bed and didnt get up till 11 04:23:13 I would still be asleep (7:20am here) but I got up to help my girlfriend get her car out of an icy parking spot. 04:23:28 oh gods!! 04:23:48 PM? 04:23:52 anyway, good night/day 04:23:57 --- part: MrReach left #forth 04:25:24 so this is one of those situations where you're smart enough to get off the computer and go to bed except you know that if you do you won't be able to fall asleep? 04:25:42 lol right 04:25:47 well actually i could sleep now 04:25:50 but i couldnt earlier 04:47:27 --- quit: Herkamire ("hmmm. well, maybe I will go back to bed.") 05:01:58 --- quit: Serg () 05:16:14 --- join: schihei (~schihei@pD9E5C84A.dip.t-dialin.net) joined #forth 05:34:12 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 05:35:47 --- join: Robert_ (~snofs@c-ae5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 05:47:46 --- quit: Robert (Read error: 113 (No route to host)) 05:53:44 --- join: fridge (~fridge@dsl-203-33-161-162.NSW.netspace.net.au) joined #forth 06:43:54 --- quit: ree (Read error: 110 (Connection timed out)) 06:44:09 --- join: ree (~jwm@ns.fasthost.net) joined #forth 06:49:29 raggle is cool 06:49:41 its like christmas has come early 06:52:31 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 07:05:15 --- nick: Robert_ -> Robert 07:12:18 fridge: "raggle: A console RSS aggregator, written in Ruby" ? 07:16:41 --- join: Robert_ (~snofs@c-ae5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 07:17:22 --- quit: Robert (Nick collision from services.) 07:20:07 yep 07:20:15 --- quit: schihei (Client Quit) 07:21:41 hmm. I've never used RSS. 07:21:42 out of all the websites I visit regularly, only two aren't available in RSS format 07:21:55 Well, as long as you're having fun. :) 07:22:38 and I now get to look at all the data and skip all the weird and not so wonderful web designs 07:23:06 --- quit: ree ("EPIC4-1.1.12[524] - oblivion : bye") 07:23:48 --- join: Robert__ (~snofs@c-985a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 07:25:00 --- nick: Robert__ -> Robert 07:34:23 --- quit: Robert_ (Read error: 113 (No route to host)) 07:45:52 --- join: aktnot (ident@233.80-202-65.nextgentel.com) joined #forth 07:51:00 --- quit: tathi ("leaving") 08:18:47 --- quit: I440r ("- 15 hourd drive is thataway -->") 08:23:00 how would I get KEY to timeout after a certain period of time? 08:23:17 ?KEY 08:24:13 : timeout-key begin ?key if key exit then time-not-up while 0 ; 08:34:41 How do shot web. 08:39:02 warp0x00: huh? 08:39:21 Herkamire: exactly. 08:41:04 warp0x00: this not turtle fab. 08:41:49 Herkamire: What is "turtle fab."? 08:42:53 warp0x00: before I'll tell you that I just made that up you have to tell me what "How do shot web." means. 08:43:35 Herkamire: Okay... I misstyped it... its actually "How do I shot web?" but... 08:43:57 what do you mean "shot web"? 08:44:30 I mean, how do I shot web? 08:46:36 You know web... like spiderman? 08:46:56 * fridge raises an eyebrow 08:48:02 I think you have to lift your middle finger 08:49:21 --- quit: aktnot ("leaving") 08:53:35 Herkamire, thanks 08:54:11 fridge: I don't expect I got everything right in that definition, but it's got the general idea. 08:55:03 yeah 08:55:21 : KEY-TIMEOUT 40 0 do key? if key unloop exit then 50 MS loop ; 08:55:26 is what I ended up using 08:57:06 fridge: nice :) 08:58:30 I wasn't sure how if pushing a key activated key?, how would KEY recieve it the keypress and put it on the stack 08:58:41 but it just goes another loop and executes it next time round 09:01:31 key? just returns true or fals whether there is a keypress event waiting in the queue or not. (e.g. it returns true if KEY would not block) 09:21:42 --- join: qF0x (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 09:24:42 ok. if : CONSTANT CREATE , DOES> @ ; is the definition of CONSTANT, and a defined constant can be shown by CONX . then why does : CONSTANT2 CREATE , DOES> @ . ; fail to put the number to the adr when defining a new constant...? 09:30:52 shouldn't it be : constant2 create , does> @ ; 09:31:31 but isnt that exactly like constant? 09:31:52 i was trying to get the result that the number would be printed whenever the constant was used 09:32:03 (just learning) 09:32:13 --- nick: qF0x -> qFox 09:33:09 what do you mean by adr? 09:33:33 Welcome to the fantasy zone, get ready. 09:33:43 ^^ 09:34:00 well you define a new constant by 50 CONSTANT whatever 09:34:01 right? 09:34:08 yup 09:34:17 but when i try the same with my version, it will only print 0 09:34:51 so somethings wrong.. although i'm not sure what :\ 09:34:56 : constant2 create , does> @ . ; 09:34:56 "constant2" is redefined ok 09:34:56 3 constant2 foo3 ok 09:34:56 foo3 3 ok 09:35:00 seems to work here 09:35:12 ok... hm 09:36:32 * warp0x00 is away: Welcome to the fantasy zone, get ready. 09:39:31 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 09:39:31 --- mode: ChanServ set +o kc5tja 09:44:06 --- quit: Herkamire ("rebooting to play with frame buffer") 09:53:38 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 10:03:46 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 10:10:29 : test2 create , does> @ . ; ok........ 10:10:29 50 test2 doedan ok........ 10:10:29 doedan 247464 ok........ 10:13:16 maybe this distribution is outdated? its win32forth, compiled september 2000... 10:13:46 sounds odd to me, but its just an idea 10:16:29 it could well be your forth environment 10:17:11 but then, wouldnt it go wrong if i'd ... hm unless the constant word is defined differently 10:17:18 is there a way to show the definition of a word? 10:19:36 qFox: see word 10:19:46 should show the definition of word. not all forths support that 10:19:55 ah k :) 10:20:01 many don't show stuff compiled with does> 10:20:06 : CONSTANT HEADER DOCON , , ; 10:20:26 hm, so this doesnt either i guess? 10:20:48 qFox: ok, see works 10:20:55 now do "see header" 10:20:58 see docon 10:21:13 DEFER HEADER IS 10:21:13 : _HEADER lit "0x7D0" ?MEMCHK BL WORD COUNT "HEADER 10:21:20 164 CONSTANT DOCON ok 10:21:21 yikes :) 10:21:27 and this says little to me btw :p 10:22:11 greek to me too 10:22:27 your example : test2 create , does> @ . ; should work 10:22:34 thank you 10:22:38 :) 10:22:57 guess i'll get me a new punchbag then 10:23:08 (and does in other forths) I guess stay away from does> or get a different forth 10:23:51 i think that if it works in all other forths, i'd rather stay away from this one :) 10:24:55 any windows forth you can recommend? 10:26:45 qFox: hopefully somebody else here can recomend one. I don't use windows. 10:26:57 k :) 10:46:20 hm found a july 2001 version... only a couple builds higher though.. 10:47:34 and it works in this version! woohoo 10:47:35 :) 10:47:45 : zeg create , does> @ . ; ok 10:47:46 50 zeg hoi ok 10:47:46 hoi 50 ok 10:48:00 qFox: http://www.forth.com/Content/Products/SwForth/SFtrial.htm 10:48:18 i cant read that.. 10:48:26 oh 10:48:30 too small :) 10:48:39 sec 10:48:50 nevermind, you found one that works 10:48:52 hm tahts 2002 10:49:11 so i take it no "recent" forth app for windows is out there? 10:49:22 or being worked on 10:53:32 I bet there is 10:54:02 well... so far little luck 10:54:11 google returns little new 10:54:28 gforth works under windows 10:55:26 theres a lot that google doesn't know about 10:55:48 hehe 10:56:14 google finds all these people saying "and so forth" 10:56:16 27 april, ok thats beter :) 10:56:18 better. 10:56:38 when a new module gets written for a satellite in forth, they don't exactly publish it on freshmeat.net 10:57:20 .... or do they? 10:58:07 does 0.6.2 imply that there's no final version out yet? :\ 10:58:33 qFox: depends on the team 10:58:43 everybody has their own theories on version numbering 11:02:47 gforth is pretty stable 11:03:46 msdos? :) 11:03:55 i dont think my system understands that anymore 11:06:04 hm ok need to compile it? isnt there a binairy available? 11:06:42 (Windows/OS/2/Linux 11:06:42 DOS-box, Quemm or others) 11:06:57 also, quemm... i havent heard or used that word in years... 11:06:58 :) 11:08:18 nm, got binairy 11:14:18 what are you babling about? 11:14:48 Herkamire: i need YOU! 11:14:54 the room needs to be cleaned 11:16:28 hm, mur, same mur as #asm efnet? 11:19:48 yes 11:19:53 correct, why? 11:24:36 no reason, just noticed :) 11:26:17 Robert is there too - mur confesses 11:26:25 Herkamire, too? 11:29:55 well.. they dont say much then :) 11:30:01 at least not when i look 11:30:13 or with a different nick 11:30:14 etc. 11:30:46 secret 11:30:53 victorias' secret 11:31:04 mur. 11:31:13 Robert! 11:31:47 ah, its the underscore that does it :p 11:32:06 and different spelling for the other... 11:32:30 qFox: have you been here long? 11:32:51 asm? about a year now i think? 11:33:09 oh here (i read there), no just about 2 hours 11:33:20 just started on forth :) 11:33:34 mur: what do you need me for? 11:33:43 * qFox hides 11:33:48 to greet qFox 11:34:41 hi qFox :) 11:34:44 hi :) 12:47:12 whats up with Jeff Fox leaving the newsgroup? 12:52:28 what do you mean? 12:52:34 he has stated why he is leaving 12:52:39 theres not really much to say 12:53:11 i could not find the reason(s) 12:53:19 somthing about 'Forth Haters' ? 12:54:50 well CLF is a bastion of those who wish to control forth, so its pointless to hang out there 12:54:59 jeff fox must be pretty slow 12:55:13 CLF stands for what? 12:55:23 comp.lang.forth 12:55:23 comp.lang.forth 12:55:26 ah 12:55:34 jeff fox or others need to create a new community 12:55:42 futhin: maybe he is just eternally hopeful 12:55:50 a forth community rather than an ANTI forth community 12:56:00 fridge: yeah probably 12:56:05 im just an occasional browser, didn't know there was such politics 12:56:07 colorforth mailling list is pretty interesting 12:56:26 zardon: it's a war against forthers and anti-forthers 12:56:58 i see 12:57:00 both? 12:57:00 :s 12:57:14 so the C++ folks swing by for some action? 12:57:18 lol 12:57:25 * qFox pictures it 12:57:26 er.. i mean forthers vs anti-forthers 12:57:53 forthers on one side, anti forthers on the other, c++ers planning an invasion, forthers asking asmers for backup... :p 12:58:01 the majority of anti-forthers come from a background of C/C++ yes 12:58:14 heh qfox, sounds like a game idea ;) 12:58:30 anyways, i'm having a bit of trouble understanding this... 12:58:31 The word ' (“tick”) finds the execution token (xt) of the 12:58:31 following word, 12:58:40 i understand half of it 12:58:50 but the app i'm using returns only the errors 12:58:57 the example doesnt work on it... 12:59:03 CREATE BUTTONS ' RING , ' OPEN , ' LAUGH , ' CRY , 12:59:03 : BUTTON ( nth --) 0 MAX 3 MIN 12:59:03 CELLS BUTTONS + @ EXECUTE ; 12:59:21 it returns> Error: ring is undefined 12:59:31 is it a word? 12:59:51 no, at least not yet 12:59:57 heh, well then 12:59:59 http://www.phys.virginia.edu/classes/551.jvn.fall01/primer.htm 13:00:04 search for part of that code 13:00:07 Forth does not do forward referances 13:00:36 dont kill the messenger :\ 13:00:48 zardon: huh? yeah it does, but it's not good style.. 13:00:50 just trying to understand it, and what ' does 13:00:51 i think that snippet is out of context 13:01:16 qFox: it assumes that ring,open,laugh words are already defined 13:01:18 qfox: ' gets the xt of the following words 13:01:21 er, word 13:01:23 it's pretty easy 13:01:32 I suggest doing : ring ." RING RING! " ; 13:01:33 etc 13:01:44 ' space puts the xt of space on the stack 13:01:44 yes thats explained, literaly, but what is the xt? 13:01:54 i'm afraid i'm not familiar with it 13:01:54 xt is the address of the word 13:01:58 hm 13:01:58 or something like that 13:02:02 if a word has not been defined, then how can it be referanced? 13:02:06 exactly :\ 13:02:08 so you can do EVAL 13:02:15 or something 13:02:44 well he doesnt know eval either, for that matter :) 13:02:57 qFox: just do what I said 13:03:10 okay 13:03:19 xt is an execution token, you can do stuff with it.. like call the the word 13:03:27 xt is a pointer 13:03:29 hm so the code presumes those are words 13:03:30 make some dummy words, for the purposes of demonstrating that piece of code 13:03:43 rightious, that makes sense :) 13:04:06 they sort of failed to mention that :( 13:04:07 zardon: there's forward referencing, like using the ' or using DEFER 13:04:33 yeah well you're reading the wrong tutorial documents :P 13:05:17 a word that reads the next token from the input? I mean dealing with as yet undefined words, that may be defined later in the source 13:05:46 well its not so bad so far 13:06:14 and its not as if i could possibly get a reliable grade for tutorials or something :\ 13:06:42 zardon there's a word who's job is to read the next word in input 13:06:47 so tick uses that word 13:06:49 yes i know 13:07:03 i mean that you must defined words, before you use them 13:07:26 perhaps i am speaking in a C fasion 13:07:41 c allows it too ;) 13:07:50 yes i know 13:08:05 except that Forth does not link 13:08:21 so it cannot trust that words exist 13:08:58 * qFox reads on 13:10:36 hm, does forth use escape characters for strings? 13:10:53 how do you mean, like null terminated? 13:10:59 cos i think : cry ." nooo :'(" ; doesnt work well :\ 13:11:26 nah like special chars... the program didnt say ok and still waits for input (i guess) 13:11:47 SEE ." 13:11:58 eh 13:12:02 how do i get out of this? 13:12:11 its not returning ok or errors... 13:12:12 im not aware of implementations that look for escape sequences 13:12:18 oh 13:12:22 are you in compile mode? 13:12:28 another ' and ; did it 13:12:42 hmm yes, if you start with a colon, you are right? 13:12:52 --- join: schihei (~schihei@pD954851A.dip.t-dialin.net) joined #forth 13:13:14 yes 13:13:33 then yes, i was :) 13:13:48 but is there a char to escape special chars? 13:13:57 like \' or something 13:14:12 not that i know of, thats implementation specific 13:14:14 (in c its \) 13:14:17 hm 13:14:23 then how would i put a ' in a string? 13:14:38 a " you mean? 13:14:48 no, ' 13:14:55 but i guess same problem goes for " 13:15:09 you are worried that the system will try to ' find ? 13:15:23 hmmm 13:15:27 ." is its own little interpreter 13:15:34 nevermind, i just, think i, figured it out 13:15:42 unless... ok a bit confused now :( 13:15:51 ." parses on its own 13:15:57 could it be that the ( are making the rest ignored? 13:16:07 no 13:16:09 seriously have to get used to () being for comments 13:16:11 k 13:16:29 ." THIS IS NOT INTERPRETED, IT ONLY LOOKS FOR " 13:16:37 k 13:16:49 and for " ? 13:16:55 " 13:17:00 thats what i meant 13:17:03 --- quit: schihei (Client Quit) 13:17:09 sorry i mean if you want to print that 13:17:30 if you want " in your strings? 13:17:43 aye? 13:18:10 i've never had occasion to do so 13:18:24 not sure about that 13:18:37 really, hm ok 13:19:05 i suppose ' could do the job just as well, but i'll get back on the " some day :) 13:19:54 --- quit: slava ("Leaving") 13:43:01 qFox: forth is not famous for having terrably good string handling built in. though sophisticated string handling has been written in forth (I've seen examples) 13:57:41 but how do you print " ? :) 13:58:34 you could use emit KEY " emit ? i forget 13:59:03 hm, so its no easily possible to print a string with " 13:59:29 qFox: you just make a word simular to ." but which uses some other delimiter 13:59:51 k :) 14:00:18 or if you want to get fancy, you can make you can read in one char at a time and support encodings like the \n etc 14:00:54 :) 14:00:59 it's not that hard 14:02:01 how do you remove a word? 14:02:08 if you made an error for instance.. 14:02:33 forget 14:02:55 ah k 14:03:15 i still have to get used to the syntax, i like some parts of it 14:03:21 like the see, forget 14:03:43 the order is slightly confusing since its the first time for me 14:04:31 you know, 1 2 + 14:04:32 there's hardly syntax 14:04:47 whats the right word for it then 14:04:50 forth just executes as it goes left to right 14:05:19 ok, but thats something i have to get used to 14:05:25 sure 14:05:45 it takes a while before 1 2 + looks right 14:05:48 are there any other languages that do it? 14:05:57 yes 14:06:06 it looks right, but i'm so damn used to making it 1 + 2 14:06:09 it's called Reverse Polish Notation 14:06:17 ooooooh so thats what rpn is 14:06:20 my computer has a calculator program that uses it (dc) 14:06:27 alright, guess thats cleared up then :) 14:06:47 aye i've seen rpn come by a few times, but somehow didnt get the true meaning of it 14:07:04 it's perfectly clear, and almost devoid of syntax, it's just hard to get yourself to stop trying to look at the whole thing and see the pattern/grammar/syntax 14:07:17 and just read it like the computer does: one word at a time, left to right 14:07:36 forth does NOT have an RPN parser 14:07:47 it just happens that code looks like RPN notation a lot of the time 14:07:52 yea 14:08:24 but what you're saying is that even though it looks like rpn, its not really rpn? 14:11:55 not really. it realy just reads in to the next space and then executes it (or compiles it if STATE==compile) or if it's a number it goes on the stack (or compiles it if STATE==compile) 14:12:35 words can do their own parsing of text to the right that has not been read by the interpreter yet. 14:12:38 like constant 14:12:49 create variable and others 14:12:51 ." 14:13:02 ye 14:13:35 and about those stacks 14:13:54 i believe i've seen about 3 or 4 so far, know the "main" (?) stack, and return stack 14:14:10 are there others, that i can use i mean? can i make new ones? etc 14:15:16 forth generally has just the data stack and return stack 14:15:27 sometimes they have others, but they aren't nessesary 14:15:38 and whats the main purpose of the return stack? 14:15:50 storing return addresses for function calls 14:16:18 and the temporary data needed for controll constructs (holds the loop counter for counted loops for example) 14:16:39 and you can use it as you like 14:16:52 useful for saving something for later without having to name it. 14:17:23 just about every language has a return stack or something like it. forth is cool in that you can use it 14:17:42 i take it the reason for a seperate stack for this is speed? 14:18:06 i mean, they could just as easy go on the main stack, right? 14:25:05 no 14:25:12 then you could not pass parameters 14:25:35 2 stacks is minimum 14:26:06 well you can address any stacknumber with pick, dont you? 14:26:31 if you have the number of arguments/parameters and then count so many arguments.. 14:26:59 well actually nevermind, its late and i'm tired and i'm talking nonsens :) 14:33:46 --- quit: zardon ("Lost terminal") 14:36:46 qFox: it's probably possible to program with one stack. but I wouldn't reccomend it. 14:37:24 here's an example parser I just wrote for backslash escaped strings. \n is CR and \n as tab. all other backslashed characters stand for themselves. 14:37:57 unfortunately gforth (which I wrote it in) has KEY coming from someplace other than the inputline/source so you have to typ ."\ then enter, then your string. 14:38:02 : end? [char] " = ; 14:38:02 : esc-char drop key 14:38:02 dup [char] n = if drop 10 exit then 14:38:02 dup [char] t = if drop 9 exit then ; 14:38:02 : ."\-char dup [char] \ = if esc-char c, 0 else dup c, end? then ; 14:38:04 : ."\-loop begin key ."\-char until ; 14:38:07 : ."\ here 0 c, ."\-loop here over - 2 - over c! ; 14:38:52 ."\ returns a pointer to a counted string. "count type" will print it 14:40:04 warning: it doesn't align the heap, and it wastes a byte. 14:42:00 --- join: networm (~networm@L0626P29.dipool.highway.telekom.at) joined #forth 14:43:51 Align the heap? 14:45:57 heap == place where c, puts things 14:46:10 Right... not sure what you mean by align the heap, though. 14:46:22 it is generally kept word-aligned so you can use , etc 14:46:35 make it so HERE returns an alligned address 14:46:58 Oh... so you're returning a byte-aligned HERE. 14:50:20 --- join: zardon (~zardon@d216-232-233-5.bchsia.telus.net) joined #forth 14:50:26 how do you make a new dictionairy, one of your own? 14:50:56 VOCABULARY NAME 14:51:04 as i understand it 14:51:09 surprising.. 14:51:11 :) 14:51:21 i have not yet implemented vocabularies yet 14:51:28 -yet 14:51:29 will it default to that dictionairy if i create one? 14:51:37 not sure 14:51:38 hmmm isnt that easier then? 14:51:49 i mean, that way you can sort of keep track of what you made 14:51:56 and what not.. 14:52:21 yeah, but i am still looking into the details 14:52:27 oh k 14:53:16 --- quit: Robert ("brb") 14:57:34 --- quit: Herkamire ("giving netbsd a try") 15:03:50 --- quit: qFox ("if at first you dont succeed, quit again") 15:10:34 --- join: Robert (~snofs@c-985a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 15:15:23 My vocabularies are pretty simple. Each word header has a voc-field, and this field must contain the XT of another word as the vocabulary ID. 15:23:57 i've been working on swapping LAST or LATEST 15:24:42 Swapping with what? 15:25:51 : ASM ( -- ) 15:25:51 LATEST DUP @ (LATEST) DUP -ROT ! 15:25:51 (ASM) DUP -ROT ! @ SWAP ! ; IMMEDIATE 15:27:44 so when ASM is executed, it preserves the LATEST ptr via (LATEST) which is a vector to the last vocabulary 15:28:09 im still playing with it 15:28:20 last vocabulary? 15:28:24 yes 15:28:50 you need to preserve LATEST before you store the ASM LATEST pointer 15:29:17 (LATEST) contains the address of the variable such as (FORTH) 15:30:18 Ahh. So this doesn't point to the end of a list of vocabularies, just the last one defined. 15:30:54 well... 15:31:04 lets say i execute ASM 15:31:17 and i am currently in the FORTH vocabulary 15:31:56 ASM will store the value LATEST @ (LATEST) 15:32:20 so we just preserved the updated last link 15:32:32 then it loads its own from (ASM) 15:33:35 hm. 15:33:49 im still looking for a good way to implement vocabularies 15:37:02 --- quit: networm (Read error: 60 (Operation timed out)) 15:37:30 Doesn't LATEST normally store the last word in the dictionary? 15:38:18 yes 15:38:25 that is where FIND starts looking 15:38:38 Aye. 15:39:11 im no pro, but i feel confortable enough 15:43:10 When I find words, I just take whatever's in the context, search the dictionary, match the voc-field of each word to the context word. Poof. Simple, but works for me. It's also nice since I can easily get any word's vocabulary through the voc-field. 15:43:58 yeah, i try to keep headers quite small 15:44:38 and the fact that no structural changes are needed, is why I am working on this method 15:44:39 Yep. Well mine's written in C, so I'm taking those extra liberties. 15:44:47 heh 15:45:02 I don't allow the user direct access to the header anyway. 15:45:23 But, once the thing's threaded, I could chuck out most of the dictionary. 15:51:28 --- join: networm (~networm@L0652P10.dipool.highway.telekom.at) joined #forth 16:55:10 --- join: Robert_ (~snofs@c-985a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 16:55:11 --- quit: Robert (Read error: 104 (Connection reset by peer)) 16:55:42 --- nick: Robert_ -> Robert 17:14:09 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 17:14:09 --- mode: ChanServ set +o MrReach 17:14:26 hihi 17:15:38 hello 17:36:36 Hi :) 17:36:48 heh 18:05:30 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 18:31:02 --- quit: Robert ("brb") 18:54:31 speuler been on lately? 19:10:33 --- join: jstahuman (~justahuma@pcp053338pcs.brlngt01.nj.comcast.net) joined #forth 19:24:12 --- join: Robert (~snofs@c-985a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 19:27:10 Speuler was on yesterday, but never came here 19:27:22 the /whois said he was in #handhelds.org 19:28:31 Speuler/ 19:28:36 ? 19:28:48 yes 19:28:52 he's not on now 19:40:32 --- join: TheBlueWizard (TheBlueWiz@207.111.96.104) joined #forth 19:40:32 --- mode: ChanServ set +o TheBlueWizard 19:40:43 hiya all 19:41:05 --- part: MrReach left #forth 20:12:01 --- join: imaginator (~gps@166.70.196.201) joined #forth 20:49:09 --- quit: Herkamire ("trying to install bsd again") 21:10:33 --- quit: jstahuman ("leaving") 21:22:02 --- quit: imaginator (".") 21:32:05 gotta go...bye all 21:32:07 --- part: TheBlueWizard left #forth 21:58:44 --- part: madgarden left #forth 22:12:31 --- join: Serg (~z@212.34.52.140) joined #forth 22:30:27 who's from California, ex for kc5tja ? 22:56:31 --- join: skylan (~sjh@vickesh01-4868.tbaytel.net) joined #forth 23:06:20 --- quit: Serg () 23:47:40 --- join: networm_ (~networm@L0635P01.dipool.highway.telekom.at) joined #forth 23:59:59 --- log: ended forth/03.12.22