00:00:00 --- log: started forth/03.03.10 00:44:27 --- quit: Speuler (Read error: 110 (Connection timed out)) 00:44:33 --- quit: sma ("[x]chat") 00:57:19 --- quit: CaffeineJunkie (Read error: 110 (Connection timed out)) 02:23:22 --- quit: skylan (Read error: 54 (Connection reset by peer)) 02:23:58 --- join: skylan (sjh@207.164.213.150) joined #forth 03:16:31 --- join: CaffeineJunkie (~Speuler@mnch-d9ba443b.pool.mediaWays.net) joined #forth 03:16:34 --- join: Speuler (~Speuler@mnch-d9ba443b.pool.mediaWays.net) joined #forth 04:34:27 'morning 05:41:09 --- quit: XeF4 (Read error: 60 (Operation timed out)) 05:54:36 --- join: KopeteUser (~marekb@mail.melzer.cz) joined #forth 05:55:09 --- part: KopeteUser left #forth 05:59:15 --- join: KopeteUser (~marekb@mail.melzer.cz) joined #forth 05:59:50 --- part: KopeteUser left #forth 06:15:13 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 06:15:18 hello 06:15:30 Hi gilbert...DEB. 06:15:49 Hi Robert, :) I am happy with debian thank you. 06:16:52 So am I! 06:19:19 so whats new in forth? 06:24:19 Not too much... 06:24:28 I maybe should continue with this Forth code... 06:25:48 bashforth_v0.38 is out. added skip, scan, tuck, compare 06:26:03 * Robert hides. 06:26:35 * Speuler seeks out robert and stuffs two obsolete copies of bashforth into his ears 06:27:40 got a few example programs too. calender, gregorian day calc 06:27:43 Ouch. 06:27:45 Cool :) 06:27:54 How fast is it? 06:28:07 pretty quick. let me measure... 06:29:07 compiles in 13 second. runs in 1 second to print calendar for a month 06:29:19 500 mhz here 06:29:37 Mar 2003 06:29:38 Mo Tu We Th Fr Sa Su 06:29:38 1 2 06:29:38 3 4 5 6 7 8 9 06:29:38 10 11 12 13 14 15 16 06:29:38 17 18 19 20 21 22 23 06:29:40 24 25 26 27 28 29 30 06:29:42 31 ok 06:29:55 1 3 2003 calendar 06:30:16 :) 06:31:21 compilation could be quicker if i'd had hashed vocs 06:32:08 hehe 06:35:42 gilbertdeb: bashforth in start directory is linked to most recent version in bashforth.versions 06:35:49 i.e. is the same 06:38:24 100 day-of-week calculations take 1.5 sec 06:39:58 about the same as 1,000,000 under gforth 06:41:06 more, 700000 06:45:53 ah danke. 06:52:10 examples are in http://logilan.info/~l/bashforth.examples 07:02:23 speuler is 38 the last major bashforth 07:02:26 ? 07:02:53 yes. at least the current one 07:03:00 only uploaded it half an hour ago 07:03:32 no fixes. just additions 07:05:50 Speuler: finally something useful for a 3ghz processor 07:06:00 :) 07:06:28 might need a massively parallel implementation 07:06:44 of bashforth or forth? 07:06:50 distributed bashforth 07:14:11 btw, deluxe has proposed to find out who would be interested in the x25, and make a page, informing about progress and availability 07:14:39 wouldn't be worth the effort if there's no interest 07:14:50 the x25? 07:14:55 so, who is interested in the x25 ? 07:15:19 was ist der x funf und zwanzig ? 07:15:32 latest forth cpu design 07:15:50 --- join: I440r (~mark4@1Cust166.tnt2.bloomington.in.da.uu.net) joined #forth 07:15:54 is he selling the plans? 07:16:09 not yet, afaik 07:16:22 Hi I440r 07:16:27 hi 07:16:35 hi I440r 07:17:06 im trying to port ian osgoods forth chess progie to isforth 07:17:11 but ive hit a snag i cant solve 07:17:17 the damned thing uses catch/throw 07:17:18 grrrr 07:17:43 I440r: i should have an asm impementation of catch/throw (386) somewhere 07:18:05 or are the principles enough ? 07:18:30 i dont know if i want cahtc/throw in isforth, for a start i HATE the names. but i KNOW i need something like it so i might just bite the bullet on that one 07:18:34 for a working pseudo-code implementation, catch/throw of bashforth should do 07:18:58 looks a bit c-like in there 07:19:18 * Speuler ducks 07:19:21 i cant read bash :) 07:20:08 code catch catch 07:20:09 function catch { 07:20:09 r[++rp]=$ip 07:20:09 r[++rp]=$sp 07:20:09 r[++rp]=$catchframe 07:20:09 catchframe=$rp 07:20:14 r[++rp]=$brthrow0 07:20:15 execute 07:20:17 too alien ? 07:20:55 bash is like gobbledegook to me heh 07:21:04 i get the idea of what your doing there 07:21:18 but i doubt i would understand the whole script 07:21:20 i'll look up the asm implementation 07:21:23 heh 07:21:48 foo - do you mean that catch and throw use the return stack? 07:21:56 idea is: 07:22:02 thats fucked in the head if you ask me, they should have their own stack 07:22:20 suit yourself then 07:23:37 nono - i want to understand this lol 07:23:47 i have to - either to implement it or code it out of things 07:23:56 prolly to implement it (or something like) 07:25:17 catchframe is a var, pointing into return stack. throw gets pointer into return stack from var catchframe. prev contents of catchframe is also pushed to return stack, thus you'll get a linked list through catch frames 07:26:05 ok. so a "catch" pushes items onto the return stack and stores a pointer to those items in an array (at index of error to be catched?) 07:26:22 nope. just in a var 07:26:23 and a throw takes one parameter (the index) 07:26:33 it looks like bashforth needs an English translation :O 07:26:38 then you can have only one error catched 07:26:43 nnope 07:27:09 every error generates the same catch then. 07:27:20 you can nest it as deeply as you like 07:27:25 you cant specify 50 different catchers for 50 different errors 07:28:08 : foo key throw ; : bar ['] foo catch ." thrown " . ; 07:28:35 value before thrown is passed back to code following catch 07:28:55 ok. you have one error for "out of memory" another for "out of disk space" another for "dns error" another for "file error" and 2498569825694 other errors 07:29:08 some of these need to be fatal. others just need to display an error 07:29:11 whatever value you throw, code behind catch can work in it 07:29:22 right 07:29:47 ... ['] foo catch dup 0< if non-fatal else fatal then ... 07:29:53 1 throw 2 throw 3 throw etc each need to vector to a DIFFERENT catcher 07:29:58 ... ['] foo catch dup 100 < if non-fatal else fatal then ... 07:30:03 i cant see how they can in your above description 07:30:08 nope 07:30:11 they would all go to the SAME catcher 07:30:23 might as well just use abort" 07:30:27 or abort 07:30:28 there's one catch, and it analyzes the returnd value 07:30:55 why should it analyze it. how can IT have knowledge of the error and what to do about it 07:30:56 : xxx ['] quit catch ?dup if ." got error" . then ; 07:31:16 it is code that follows. you determine what happens there 07:31:57 rather than letting system handle the error, you do 07:32:29 abort just warm starts. no way to intercept easily 07:32:40 catch lets error handling be done by your code 07:33:06 ok. i write my SINGLE catcher. later, someone comes along and extends and uses catch/throw 07:33:13 HE has to live with what ever i put in the catcher 07:33:16 he cant extend it 07:33:42 there's a diff between "your catcher" and "your implementation of catch" 07:33:54 "he" can use "your implementation of catch" 07:34:02 ? 07:34:23 ['] mycode catch ... 07:35:14 you know "on error goto nn" in basic ? 07:35:38 traps all errors, lets you code at nn decide what to do about it 07:36:13 that's roughly comparable to catch. 07:37:10 except, stacks restored, code following catch is going to be executed 07:37:30 im still not getting it, it just all seems WRONG to me heh - i prolly need to see code, but its a problem i HAVE to sort out, i need an error for almost every single error in errno.h 07:37:36 t'is like execute, with an error-catching shell around 07:37:40 which HAVE to be user patchable 07:38:25 and i dont want to even define all of them, i.e. i need an error handler that can be extended AND patched 07:38:36 throw[3]="stack overflow" 07:38:36 throw[4]="stack underflow" 07:38:36 throw[5]="return stack overflow" 07:38:36 throw[6]="return stack underflow" 07:38:36 throw[8]="dictionary overflow" 07:38:37 throw[9]="invalid memory address" 07:38:39 throw[10]="division by zero" 07:38:41 throw[11]="result out of range" 07:38:43 t ... 07:39:11 i.e. if "I" specify a handler for "out of memory" and someone comes along and codes some patch to my memory manager that needs to know when "out of memory" occurs HE has to be the NEW catcher for that error 07:39:30 throw without catch usually invoked the top-level catch, call it system error handler 07:40:17 when that occurs, he just needs to throw "out of memory" 07:40:39 and can rely that your catch deals with it either in a specific, or a general sense 07:41:15 general = ." error . occured" abort 07:42:50 no - thats wrong - i cant "NOT" define a catcher for "out of memory", i have to define one. but "HE" has to be able to modify the catcher so that HE gets it instead of me 07:43:47 my "system" has to have handlers for specific errors but a user application might need to take control of certain errors. so he has to steal those errors from the system 07:43:57 i dont think your above catch/throw can handle that 07:44:16 and im at a loss at the moment as to how to do it 07:45:06 easy 07:45:17 user errors: 1...n 07:45:26 system errors: -1..-n 07:45:43 erm. no - it has to be the SAME error number as in errorno.h 07:45:49 ['] foo catch dup 0< if system error else user error then 07:46:19 system errors tend to have negative throw values 07:46:51 so there needs to be system handlers for errors "i" want to handle and then users have to be able to both add NEW errors AND replace already defined handlers with their own code 07:46:56 anything except 0 can be thrown 07:47:12 i CANT change the error numbers 07:47:24 catch just reveives the value thrown. hiw you deal with them is up to you 07:47:27 they are the values returned by a syscall 07:47:42 well - the syscalls usually returns -1 on error and sets errno 07:47:59 if your system would support catch/throw, it would deal with negative throw values already, if throw is used without catch 07:48:27 if there IS catch, your code following catch deals with it 07:48:33 there ARE no negative throw values. 07:49:01 i cannot redefine these error numbers. but i also cant restrict myself to just those errors 07:49:08 even abort throws in systems supporting catch/throw 07:49:31 that's good. that means "user level errors" 07:49:38 totally up to you 07:49:40 i have to be able to define any error. give that error a specific handler. add new errors and handers and replace any errors handler with a new one 07:50:04 YOUR CODE FOLLOWING CATCH DEALS WITH THAT 07:50:17 use your brain, and your fantasy 07:50:30 catch is just the mechanism to ring over the error 07:50:34 bring 07:51:13 it doesn't "deal" with the error in the sense that it has built-in error handling 07:51:41 it only restores the machine to a known state, and says "this is the error which has been signalled" 07:52:10 and then "it is up to you do do something with that information" 07:53:02 in case of error (value thrown), execution continues behind catch 07:53:13 im not understanding you 07:53:40 t'is explained in DPANS 07:53:52 probably better than i can do 07:54:33 heh 07:54:46 i avoid going near there usually, the whole place makes me cringe :) 07:54:46 hehe 07:56:52 x array errorvector : foo ['] [mycodewhichthrows] catch ?dup if errorvector @ execute then ; \ here you got you error vectors per error, for throw values 1...n-1 07:58:37 x-1 07:58:41 erm - thats not realy any good either, i would have to define a 29847629874298469 element array :/ 07:59:29 its not an easy problem to solve, 07:59:32 --- join: Herkamire (~jason@ip68-9-68-123.ri.ri.cox.net) joined #forth 07:59:45 actually, the "array" isnt unworkable if i allocate the array at run time 07:59:58 ['] mythrowingcode catch cases 234783626 of err1 endof 567753668 of error2 endof ... 08:00:01 but that means that every single catcher has to be initialized in the array at run time 08:00:30 yes, if it is an array you use. 08:01:03 i dont know what ill use yet, but what ever i use it all seems OVERLY complecated 08:01:29 ['] mythrower catch ?dup if ." an error occured but i'm not going into detail" abort then 08:01:41 heh 08:01:51 abort" something bad happned" 08:01:52 lol 08:04:11 36 base ! illegal constant illegal nonfatal constant nonfatal decimal 08:04:39 ... catch ?dup if base @ swap 36 base ! u. base ! abort then ; 08:05:00 illegal throw ... nonfatal throw 08:05:31 needs 64 bits for > 6 chars 08:08:37 ctrl-alt-coffie 08:09:07 :) 08:09:09 good thunking 08:11:32 --- part: flyfly left #forth 08:30:25 --- part: gilbertdeb left #forth 08:37:44 --- quit: I440r ("Reality Strikes Again") 08:42:30 --- quit: proteusguy (Read error: 54 (Connection reset by peer)) 09:10:43 i've put http://logilan.info/~l/commonforth online, a list of words which i consider "common" for forth. i'd like to get some feedback, i.e. words to be removed, or words which may be important enough to be added 09:11:27 note that a number of words which are common are not on the list as they can be easily made from those 09:11:56 but there are several on the list which wouldn't have to be, following the same reasoning 09:49:25 --- join: serg (~serg@h138n2fls31o965.telia.com) joined #forth 09:50:03 jhI 09:50:07 Hi serg 09:50:45 hi 09:51:12 just a few minutes - 10 men at one phone :((( 09:55:38 --- quit: serg ("Lost terminal") 10:25:19 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 10:38:34 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 10:39:38 Nothing says "I'm not going to like working there" like the interviewer calling Chuck "a crazy guy." 10:40:11 huh? 10:40:58 Job interview. 10:41:07 does it involve forth? 10:41:51 No. :-( 10:42:09 so why did the person call CM crazy? 10:46:09 I mentioned Forth during the interview. 10:46:09 oh. what a reaction. 10:46:09 Indeed. :-P 10:46:10 * Kitanin wonders if he should learn about this "Java" thing that's all the rage with the HR people these days... 10:46:25 Kitanin: according to speuler, the underbelly of java is forthlike. 10:46:31 perhaps you would'nt be too far off! 10:47:14 * Kitanin was making the funny... :-) 10:47:51 Yes, the JVM is mostly stack-based. I haven't yet found a pleasant dictionary <-> .class structure mapping. 10:48:10 write one! 10:48:20 and show it to the "a crazy guy" guy. 10:49:47 I'd love to. As I said, I haven't yet found a mapping that feels right. :-P 10:54:14 bashforth v0.39 uploaded. intergrated doc facility: doc word shows stack effect, and, if available, short note of use 10:54:21 integrated 10:54:39 min max abs fill added, abort throws 10:56:08 * gilbertdeb is never going to catch up with his bashforth readings now. 10:56:15 * Kitanin goes hunting through his company's leftovers for a working 386 laptop. 10:58:21 gilbertdeb: mostly additions, no big changes 10:58:31 yay . 11:09:20 i have removed a word from v39 as well :) 11:09:51 which one? 11:09:55 ( ) ? 11:09:57 ?exec 11:10:23 counterpart to ?comp 11:11:20 when I am done reading bashforth ... I might make a RISB 11:11:29 Reduced Instruction Set Bashforth 11:11:33 IF I can. 11:12:34 i've put a list of words which i consider "common" on http://logilan.info/~l/commonforth 11:12:37 maybe you can comment on it ? 11:14:27 looks pretty small. 11:14:34 Have you seen eforth's base words? 11:14:44 the primitives ? 11:14:49 yes. 11:14:52 yes 11:15:02 that's not just primitives in commonforth. 11:15:14 would you say that is the minimal minimal set? 11:15:18 a number of words in there could easily be implemented from others 11:15:25 but i miss 2/ and 2* 11:15:41 nope, not at all 11:16:05 just an average set of often-used words, or, if not used often, necessary to hide other words 11:17:06 if could do without all the flow control with the words branch, 0branch. 11:17:18 but otoh, the flow control words hide branch, 0branch 11:18:31 could possibly remove the 2dup 2drop etc words 11:19:41 looking for a set of words, sufficient for average use, but standard-independent 11:20:02 maybe a set of words from which ANSforth can be generated? 11:20:11 not intending to minimize a set of primitives 11:20:32 perhaps the words aren't so many when they are grouped :) 11:20:47 not quite. more a set of words which allow me to ignore the differences between standards 11:20:56 they are grouped, per line :) 11:21:00 hahahhaa 11:21:16 first line: stack 11:21:19 15 primitive groups only! 11:21:22 2nd line: mem 11:21:57 13 , where "does>" is on a line of its own, and the last two lines are undecided 11:22:15 can't do without any of those, but standard-specific, more or less 11:23:17 or are the ones i tend to deviate from standards with own implementations 11:42:48 I need to print that stuff out when I get to school. 11:42:57 if I find the key to my bike lock. 12:09:51 --- quit: Fractal (No route to host) 12:25:47 --- quit: Herkamire ("leaving") 12:46:26 --- quit: Kitanin ("Client killed by developer sick of answering stupid questions.") 13:04:52 --- join: flyfly (~marekb@ip164.ktvprerov.cz) joined #forth 14:22:56 --- join: Herkamire (~jason@ip68-9-68-123.ri.ri.cox.net) joined #forth 14:43:12 --- quit: Speuler (Read error: 110 (Connection timed out)) 14:51:44 --- quit: CaffeineJunkie (Read error: 60 (Operation timed out)) 14:57:08 --- join: wossname (wossname@HSE-QuebecCity-ppp81340.qc.sympatico.ca) joined #forth 15:47:50 --- join: I440r (~mark4@1Cust86.tnt1.bloomington.in.da.uu.net) joined #forth 16:44:43 --- quit: I440r (Read error: 60 (Operation timed out)) 16:51:58 --- join: I440r (~mark4@1Cust86.tnt1.bloomington.in.da.uu.net) joined #forth 17:27:57 --- join: Speuler (~Speuler@mnch-d9ba443b.pool.mediaWays.net) joined #forth 17:27:59 --- join: CaffeineJunkie (~Speuler@mnch-d9ba443b.pool.mediaWays.net) joined #forth 17:30:42 --- quit: I440r ("Reality Strikes Again") 17:36:09 --- join: randolm (wossname@HSE-QuebecCity-ppp81340.qc.sympatico.ca) joined #forth 17:36:51 --- quit: wossname (Killed (NickServ (Ghost: randolm!wossname@HSE-QuebecCity-ppp81340.qc.sympatico.ca))) 17:36:51 --- nick: randolm -> wossname 17:36:51 'morning 17:36:51 hi speuler 17:48:38 hello wossname 17:48:41 oy 17:48:53 tach gilb 18:02:54 gilbertdeb: any progress with compiling a word ? 18:22:25 it behaves most oddly! 18:22:30 I have to run 'bash' 18:22:34 and then bashforth each time. 18:22:59 I am currently trying slowly to convert clever bash2.05b to 2.03 18:23:16 eg I did the following: s/++/+=1/g 18:23:25 of course, I ended up with +=1sp :D 18:23:37 in a good number of cases, I had to edit it by hand. 18:23:44 so much for %s 18:31:18 if you get it running on 2.03, i'd like to test run your version against 2.05b 18:31:52 okay. 18:31:57 I am not doing much at all though. 18:32:07 so far it is badly broken and I get endless errors :D 18:33:03 I should really do this from version 1 all the way up to 39 like you did. 18:33:39 sounds like a lot of work to me 18:33:56 oh you have no idea how much time I have on my hands :D 18:34:48 no reason to waste it 18:35:11 hehehe. 18:35:18 thats right, I could go to the beach instead. 18:35:42 and there are so many people on spring break ... this could be awesome. 18:39:01 --- quit: wossname ("no quit message yet") 18:41:34 i was tracing the problem before on older version of bash 18:41:41 found it to be the smudgebit 18:41:49 my smudge bit is working I think. 18:42:24 add echo $tos at end of locate. if 0, word not found. reason in locate. 18:43:11 i'm just testing it on 2.05a. put echo $w behind let w="${hf[$temp]} & $smudgebit" 18:43:18 all smudgebits are zero 18:43:56 if smudgebit=0, means header hidden, not revealed. search skips header 18:44:29 traced it further down, to find that let xxxx was producing unpredictrable results 18:44:56 could pinpoint the exact condition when let showed the error, and when not 18:45:05 i mean, couldn't 18:46:10 all header flags are zero 18:46:18 thats why I should write it from scratch from v0.01 18:47:20 my conclusion was, i do something with let which causes an error in pre-2.05b to show 18:47:44 maybe reading the changelog helps 18:47:51 --- join: wossname (wossname@HSE-QuebecCity-ppp81155.qc.sympatico.ca) joined #forth 18:48:10 speuler let is shorthand for (( )) stuff. 18:48:19 or 'other' hand as far as I can see. 18:48:36 it is the task of reveal to set the smudge bit 18:48:40 yes 18:48:52 a=5 ; b=8 ; let c=a+b 18:49:34 (( c = a + b )) 18:50:16 the conversions have been trivial and debugging is still in progress. 18:50:27 ok. work around for 2.05a, smudgebit, is: 18:50:34 hf[$(($wc-1))]="$((hf[$(($wc-1))] | $smudgebit))" 18:50:35 eg ...i=32 18:50:36 while (( i < 128 )); do temp=`printf %x $i`; asc[i]=`echo -en "\x$temp"`; (( i+=1 )) ; done 18:50:40 instead of 18:50:45 let hf[$(($wc-1))]="hf[$(($wc-1))] | $smudgebit" 18:51:00 yes I changed that as well. 18:51:06 but I used (( )) as usual. 18:51:22 so far, I do'nt know wha effect it is going to have. 18:51:23 at least, words shows the words then. the error still shows somewhere else 18:51:49 with 2.05a, words is repeat over and over again 18:51:53 repeated 18:56:25 i'm just rigorously replacing all let against $(( )) 18:58:17 that the big is in let, is known. thus, not let, no bug :) 19:02:14 bug 19:04:29 there are quite a few synonyms in bash. 19:04:52 the creators suffered from a featuritis itch. 19:07:57 ok 19:08:03 seems to work on 2.05a 19:09:58 not all words tested of course. 19:10:04 wanna try it on 2.03 ? 19:11:27 does compile words 19:13:02 sure ... 19:13:12 2.03 does not like some of your comments :P 19:13:26 eg # something " like this is unnaceptable " 19:13:55 what's wrong with that comment ? 19:14:55 it is online 19:15:54 2.03 doesn't like it at all. 19:16:28 hmm 19:16:34 there's more to it then 19:16:45 as far, seems to run fine on 2.05a 19:17:00 how does error on 2.03 show ? 19:17:15 can i ssh to your box, and look at it myself ? 19:17:41 ah sure. 19:17:46 lemme get you the ip. 19:17:49 you got joe editor ? 19:17:53 heheh no. 19:18:01 ends on 29 19:18:06 what does? 19:18:13 your ip adress 19:18:27 lemme see something. 19:19:02 what text mode editors do you have ? 19:20:32 ed 19:20:33 vim 19:20:35 emcacs 19:20:42 vi too. 19:21:20 do you have wget ? 19:21:28 ummm not sure. 19:21:30 lemme check. 19:21:37 apt-get install wget joe 19:21:48 heheh. 2.03 is on my solaris box. 19:21:54 :) 19:22:04 the port number is :2523 19:22:09 telnetting only ... 19:22:27 use a temp account 19:22:28 I still need to install ssh and such. 19:23:45 trying ... trying ... 19:23:47 ah 19:23:49 ok 19:24:29 --- quit: wossname ("keep on hacking in the free world~~") 19:24:44 waiting ... 19:24:51 entered passwd 19:25:13 yes 19:25:17 entered 19:25:34 good. 19:25:36 have fun. 19:26:15 ./bashforth: wc++: syntax error: operand expected (error token is "+") 19:26:30 I am currently editing bashforth2 19:26:33 slowwwly 19:26:36 I copied it over. 19:26:49 i fetched bashforth v0.40 from server 19:26:56 written as bashforth 19:27:32 you can export an X session if you want as well. 19:27:48 term is fine with me 19:29:02 gonna ask on bash whether 2.03 doesn't allow autoinc/dec 19:29:04 looks like it 19:38:00 Speuler: take a look at the errors I have so far generated in bashforth2 :) 19:39:51 seems that all [var++] [--var] [var--] [++var] needs to be rewritten 19:40:11 into [var] ; var=$((var+1)) ... 19:40:20 I rewrote them as var+=1 19:40:27 2.03 accepts that. 19:41:22 2.05 doesn't 19:41:34 really? 19:41:39 no var+=1 ? 19:41:52 x+=1 19:41:52 bash: x+=1: command not found 19:42:25 (( x+=1 )) 19:43:09 (( x+=1 )) 19:43:10 bash: ((: x+=1: expression recursion level exceeded (error token is "x+=1" 19:46:44 i=10 19:46:44 bash-2.03$ (( i+=1 )) 19:46:44 bash-2.03$ echo $i 19:46:44 11 19:48:34 yes, tried it on 2.03 ... 19:48:44 looks like the only compatible way is: 19:48:50 --- quit: Herkamire ("leaving") 19:48:56 x=${m[p++]} into x=${m[$p]} ; p=$(($p+1)) 19:49:15 that'll cost performance 19:49:20 no 19:49:27 that will add to lack of performance :) 19:49:43 but the += works in mine as well. 19:49:56 in 2.03, yes. in 2.05, no 19:50:17 no in 2.05 too1 19:50:26 ah 19:50:33 works when var iinitialized to number 19:50:39 but not if not 19:54:59 real 0m14.365s 19:55:05 real 0m10.329s 19:55:20 for : 19:55:25 1: m[a]=xxx 19:55:25 (( a+=1 )) 19:55:33 2: m[a++]=xxx 19:55:42 100000 iterations 19:56:10 there are 427 occurance of ++ and -- 19:57:23 i would recommend to use v0.40 for converting, because of the eliminated let-bug 19:57:41 but ... 19:57:51 an automatic conversion would be nice 19:58:03 for future versions 19:59:46 lets see how we can sed that 19:59:50 or awk 20:00:34 I have a bunch of things under /opt/sfw/bin if you are looking for standard gnu stuff. 20:02:52 and a few other things under /usr/local/bin and /usr/ccs/bin 20:02:53 ah. 20:03:01 m[x+=1] works in 2.03 20:03:12 yes it does :) 20:04:00 but, it increments first, only then uses x as index 20:04:12 that's same as m[++x] 20:04:18 but not m[x++] 20:05:04 that's have of the cases 20:05:18 namely the m[--x] and m[++x] ones 20:05:27 half 20:06:53 that is, it would be of advantage to use pre-inc/dec as often as possible 20:07:08 i'll run through the source 20:07:37 maybe a pre inc/dec function is in order! 20:07:43 but it will slow things down won't it? 20:07:55 nope, shouldn't 20:13:56 found 12 places where it could be changed easily 20:13:58 not much 20:14:04 now for the "reasonably simple" ones 20:14:24 -- more difficult to find, because of stack comments :( 20:14:48 hehe. 20:14:54 you need vim power! 20:21:15 another 9 cases 20:22:56 124 cases left 20:23:20 shudder 20:24:01 hahaha 20:24:15 i think bash 2.03 is picky. 20:24:23 I have been editing trivial things since ... 20:24:28 6? 20:24:31 yeah . 20:26:00 see i have two sessions going. 20:26:09 one vi, one prompt. 20:26:23 whatever line bash complains of, I go change something until it stops. 20:26:32 whether those changes are good or not I don't know yet. 20:30:42 just replacing ++ , -- against +=1 , -=1 won't do 20:30:49 pity 20:31:11 really? 20:36:32 nobody seems to run 2.04 20:36:58 2.04 ? 20:37:04 that sounds like dos 4.0 ... 20:37:10 never existed probably. 20:37:16 it did 20:37:19 4.0 ? 20:37:31 I remember jumping from 3.3 to 5.* 20:37:40 bash 2.04 . was between 2.03 and 2.05 20:37:47 hahaha. 20:38:03 it might be on djgpp's website. 20:41:00 m[i+=1] and m[++i] almost same speed 20:41:18 real 0m10.838s / real 0m10.266s 20:42:37 124 of var++ / var-- , 78 of --var / ++var 20:45:41 another 4 cases killed 20:45:46 ok 20:47:41 ah. wrong port 20:48:57 yep 20:50:23 good 20:50:40 you're 6 hours ahead of me ?? 20:50:45 can't be ... 20:51:45 you should be about 6 hours behind. 20:52:00 t'is midnight in your place now, isn't it ? 20:53:49 it is 20:53:58 I never set things up right. 20:55:07 ah 20:55:13 your clock says "noon" 20:56:16 it says 11:58 am 21:05:48 I am unable to continue. 21:05:58 I'll have to start over from v_0.01 tomorrow 21:08:46 might be easier to put bash 2.04 (?) or 2.05 on 21:10:52 gilbertdeb, introducing DarkAngel to the world of Forth? :P 21:11:02 :) 21:11:19 Speuler: I might. 21:11:27 Robert: we 21:11:37 :) 21:11:44 what's the version of your bash ? 21:12:16 Robert: darkangel is studying some 'chip stuff'. 21:12:22 brb... 21:12:25 * gilbertdeb is away: 'brb' 21:12:45 Okay 21:49:38 * gilbertdeb is back (gone 00:37:12) 21:50:20 Robert: so did you convince Darkangel to learn forth? 21:50:45 Don't know... she asked me what Forth is, and when I told her what it is, she said she already knew. :) 21:50:49 --- part: gilbertdeb left #forth 21:50:56 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 21:51:07 Welcome back ;) 21:51:33 how do you say 'thank you' in swedish? 21:53:16 "Tack" 21:53:28 Just think of "TUCK" :) 21:53:36 It's the same pronounciation, btw. 21:54:11 sounds japanese. 21:54:19 tack a ho ri shin 21:54:55 isn't there a swedish member of the japanese parliament? 21:55:17 Haha, not that I know of. 21:55:27 there is for sure. 21:55:40 Okay, good for him. 21:56:07 he speaks english with a japanese accent too! 21:56:34 :D 21:56:44 * Robert hits gilbert in a japanese fashion. 21:57:09 careful I know aikido, 21:57:12 jujitsu 21:57:20 and at least 3 other japanese words! 21:57:23 :D 22:01:45 good now my computer knows it is tuesday and it is 1 am. 22:02:31 It's 7am, dear. 22:03:11 not in my reality. 22:03:26 according to my reality, the only real reality ... it is 1:5 am. 22:03:27 --- quit: CaffeineJunkie (Read error: 60 (Operation timed out)) 22:03:57 Liar. I'm God. 22:04:00 AND I DECIDE. 22:04:03 'a' god. 22:04:09 not 'god' or _the_ god. 22:04:09 No, TEH god. 22:04:20 only a committe can screw up the world this badly :) 22:04:43 Which committe wrote the bible? 22:05:35 moses, his brother, the pharaoh of egypt, some priests ... 22:05:45 they were the inital authors. 22:05:53 they dared to open source the whole god thing. 22:05:58 Yay 22:06:21 but they had to have some uniformity and the work had been done for them by other tribes already. 22:06:28 all they had to do was copy and paste. 22:07:59 :) 22:08:30 the rest of the stuff was part real history, part popular soap opera. 22:09:31 You don't happen to be a christian, do you? 22:09:38 me? 22:09:46 would I be talking like that ^ 22:09:51 ... 22:10:08 no, I believe gods are unknowable . 22:10:16 and our representation of them will remain innacurate. 22:10:38 also no known standards to work on for a proper representation. 22:10:51 why are you christian? 22:10:54 lutheran perhaps? 22:11:26 --- quit: Speuler (Read error: 110 (Connection timed out)) 22:11:38 No, I'm not! 22:12:05 That 'question' above was just a comment about your harsh anti-christian style :) 22:12:28 --- join: Speuler (~Speuler@mnch-d9ba4c8e.pool.mediaWays.net) joined #forth 22:12:35 --- join: CaffeineJunkie (~Speuler@mnch-d9ba4c8e.pool.mediaWays.net) joined #forth 22:12:44 i am a harsh anti most religions. 22:12:50 except for zen 22:12:53 wb speuler 22:12:57 and taoism 22:13:02 and voodoo :) 22:13:25 wb Speulers. 22:13:48 bluddy provider. 22:13:55 Happiness is a warm gun. Wee 22:14:02 i'll call him contravider now 22:14:14 :) 22:15:40 hahaha 22:16:29 bkurs.cpp: In function `int main()': 22:16:29 bkurs.cpp:57: `cout' undeclared (first use this function) 22:16:30 Hmm 22:16:34 Why does that happen? 22:16:38 #include 22:16:44 It _should_ work. 22:17:10 (btw, this is school work, don't hate me! :) 22:17:50 robert what do people tend to believe in sweden? 22:18:01 gilbertdeb: That drugs, not religion is the solution. 22:18:21 and the women? 22:18:27 do they believe similarly? 22:18:29 Where "drugs" refer to legal ones, since the anti-drug propaganda is quite intense :) 22:18:37 In general, yes. Why?= 22:18:51 I might be interested in visiting sweden sometime. 22:18:56 when I have a lot of money. 22:19:17 you rather have that for sweden 22:19:30 especially if you like drinks 22:19:30 Hehe. 22:19:33 or fags 22:19:39 I don't drink. 22:19:40 o_O 22:19:47 Talking from personal experience now? ;) 22:19:53 gilbertdeb: Yay, good boy. 22:19:55 never been to sweden 22:20:00 :~( 22:20:02 can't afford it :) 22:20:03 I do'nt smoke and I think there is nothing wrong with fags as long as they leave the women to me. 22:20:20 Haha, I like that attitude :) 22:20:34 oh. meant english fags 22:20:45 that's slang for cigarettes 22:20:48 Speuler: why is that? have they heard rumors? 22:20:52 oh. 22:20:55 never mind. 22:21:40 cloppes 22:22:13 shouldn't use ambigious slang words. 22:22:24 Damn right you shouldn't, 22:22:38 do either of you listen to jazz? 22:22:40 thought, from drugs, alcohol context, 't would be clear 22:22:49 there is a nice stream here: http://www.live365.com/play/bascomb 22:24:25 Speuler: context was clear. 22:24:37 for some reason, i thought the spelling was 'fegs' 22:25:12 dict feg 22:25:12 No definitions found for "feg", perhaps you mean: ... 22:29:56 ah. found simple way to speed up bashforth 22:30:06 how? 22:30:13 functions can be unset 22:30:28 why is that a good thing? 22:30:49 reduces search time for docode, docolon, dovar 22:31:03 docode = primitive 22:32:16 btw I corrected the date. so it is now 'correct' 22:32:58 you were wrong 22:33:22 you said "you never that these things up correctly" 22:33:26 set ... 22:33:45 or, you imply, now = never 22:34:38 the setup has to go through a number of patch upgrades I haven't bothered to get. 22:35:03 ntp may help 22:35:13 since I am most usually on this nice debian box ... 22:35:41 which I vastly prefer (because it shows movies :D ), I haven't payed much attention to being a good solaris admin. 22:35:50 you have open firmware in the solaris box ? 22:36:57 yep. 22:37:03 it already has a forth! 22:37:12 right 22:37:14 nice 22:37:16 but when I hit 'stop a' every single thing freezes. 22:37:21 true 22:37:30 until "go" 22:37:34 yes. 22:37:42 and I can't access this facility remotely. 22:37:49 need to redraw the screen then 22:38:01 or move a window around 22:38:08 wiping out the forth prompt :) 22:38:17 yes. one would think a key would have been provided for the purpose. 22:38:50 or "xrefresh" executed after go 22:39:20 you can put an icon on the desktop which does that 22:39:22 forth should learn to clean up after itself. 22:39:29 but still, it is stupid 22:39:47 lemme see there might be a key. 22:41:12 its keyboard has more keys than a piano and there is no clear screen button! 22:48:39 speuler I think I am gonna start from the beginning and chart my way up slooowly. 22:49:20 but that will be on wednesday. 22:49:32 date: invalid date `2 days' 22:49:41 seemed to work the last time. 22:49:42 oh well. 22:50:23 not just that that's a slow process, you will a: lose speed, and b: become incompatible with newer version, w/o putting quite some porting effort into it 22:51:05 I will work slowly upwards. 22:51:17 the slow process is the way I must go to understand everything. 22:51:28 that is a fact 22:52:28 if at the end I have understood everything it would have been well worth the effort. 22:52:52 well, by far the most of it can easily transferred to asm 22:52:59 can be 22:53:25 the way you'd write a forth using asm is not so different from how it was written in bash 22:54:34 or, i've written it in bash as i would have written it in asm. 22:54:56 you don't do asm now, do you ? 22:55:03 I can read x86 asm. 22:55:13 but no I don't do asm. 22:55:27 most of the 'howtos' I was using pushed macros too much and that put me off. 22:55:55 I was reading the 'mastering turbo assembler' book to learn. 22:56:22 ldx [y++] 22:56:26 jmp [x++] 22:56:31 recognize thios ? 22:56:36 yeah 22:56:44 inc y 22:56:50 seen that in bashforth ? 22:56:55 hehe :) 22:58:21 pshu y 22:58:29 leay x 22:58:47 -- 22:58:56 pulu y 22:58:57 next 22:59:00 -- 22:59:29 the logic of the virtual machine is identical 23:00:59 x86 is not such a nice cpu to write a forth virtual machine 23:01:12 whats a nice cpu to write for? 23:01:15 386 is better than 86 23:01:35 huh? 23:01:59 generally, motorola cpus are quite nice to write forth with 23:02:42 86 is more limited in terms of addressing modes and register use than 386+ 23:02:53 86? 23:03:00 8086 23:03:13 or, real mode 386 23:03:57 on 386, registers are more "general purpose" than on 8086 23:04:21 means, most addressing modes work on most registers most of the time 23:04:34 which is absolutely not true for 8086 23:06:03 on 8086, t'is almost each register has a specific function, and with it, addressing modes, only working with that register 23:06:43 mov [bx],cx is fine, but mov [ax],cx isn't 23:07:21 isn't that why they gave them specific names in the first place? 23:07:23 School, doei 23:07:40 but no one uses 86 anymore right? 23:07:49 bios does 23:08:39 really? 23:08:42 16-bit programs for windows do 23:08:55 todays bioses? use 8086? 23:09:08 386 starts in real mode 23:09:16 real mode is 8086 compatibility mode 23:09:49 not sure what the situation is now. a while ago, bios just left cpu in real mode 23:10:07 was task of os to turn to protected mode 23:11:13 think that's still the case 23:11:35 did you read about those people who wrote an os for the commodore 64? 23:11:45 and put a browser and a webserver into it? 23:11:50 in about 40k ? 23:11:54 CM would have loved them. 23:12:00 browser is more code than server 23:12:11 text only. 23:12:18 they are working on a jpeg viewer. 23:12:20 still 23:13:21 flex-09 os is about 6 kbyte 23:14:10 takes 8 k, whereof 2 k transient space for programs, loaded from disk 23:14:28 even got 256 bytes space for device drivers :) 23:14:39 flex-09 os? 23:14:40 whats it good for? 23:14:44 6809 23:14:49 oh. 23:15:01 isn't all of that CM territory? ;) 23:15:33 by then cm was busy with forth 23:15:37 oh 23:15:48 the asm code i typed earlier, was 6809 btw 23:16:13 cpu has: 23:16:20 2 pointers 23:16:26 2 index registers 23:16:31 accu 23:16:50 has exactly the addressing modi, necessary for forth 23:17:03 for efficient implementation of it 23:17:09 2 stack pointers, i mean 23:17:20 that is, two independent stacks 23:17:32 and what do you use 6809 for? 23:18:29 nowadays, you'll find some derivate of it in embedded stuff. still. is an old cpu 23:18:44 is cpu from pre-pc times 23:19:16 then were also personal computers existing, using it 23:20:29 ah. 23:20:38 its almost 2:30 am :O 23:21:03 be glad you've set your clock 23:21:13 hehehe. 23:21:23 or you would have had to guess 23:21:28 hahaha 23:21:58 it is time for my passing out ceremony. 23:22:04 a very important human ritual btw. 23:22:32 ctrl-alt-snore 23:24:01 hahaha 23:24:04 not i. 23:24:22 just redoing the doc facility 23:24:36 previous solution wasn't so good 23:24:50 --- join: serg (~serg@h138n2fls31o965.telia.com) joined #forth 23:24:52 alright. I am off to Zzzz's. 23:24:58 hi 23:25:05 sleep well 23:25:06 bye. 23:25:10 --- quit: gilbertdeb (""Monk has left the building"") 23:25:12 morning sarge 23:25:20 serge 23:25:39 where's your bird ? 23:31:26 my bird ? mice ate 23:31:31 what bird ? 23:31:43 your penguin 23:32:22 red demon fried it on trident in flame of burning NT 23:33:39 * serg heard many friends having anal sex w/ RedHat 23:33:52 /nick sergpenguinsteak 23:34:28 Linux falls prey of $$$ and lamerz 23:34:47 obscure fun with rat heads ... 23:35:35 so t'is going to be bsd for you ? 23:35:56 or waiting for hurd 23:38:07 * serg gonna install BSD after begging enough ports on CD 4 it 23:39:09 lfs and gentoo also sound ok 23:44:41 you fed up with linux because of others ... need to get used to that concept 23:44:58 others = other people 23:59:59 --- log: ended forth/03.03.10