00:00:00 --- log: started forth/03.02.24 00:10:31 --- quit: flyfly (leguin.freenode.net irc.freenode.net) 00:10:31 --- quit: sma (leguin.freenode.net irc.freenode.net) 00:10:31 --- quit: skylan (leguin.freenode.net irc.freenode.net) 00:10:31 --- quit: OrngeTide (leguin.freenode.net irc.freenode.net) 00:10:38 --- join: sma (stephenma@207.6.229.22) joined #forth 00:10:38 --- join: flyfly (~marekb@ip164.ktvprerov.cz) joined #forth 00:10:38 --- join: OrngeTide (orange@rm-f.net) joined #forth 00:10:38 --- join: skylan (sjh@207.164.213.129) joined #forth 02:42:52 --- log: started forth/03.02.24 02:42:52 --- join: clog (nef@bespin.org) joined #forth 02:42:52 --- topic: 'The channel for active & collaborating Forth coders | IsForth: runs on linux, coded in x86 asm - http://isforth.clss.net | official forth sites: http://www.ultratechnology.com/forth.htm & http://www.colorforth.com' 02:42:52 --- topic: set by thin on [Sat Feb 01 12:00:41 2003] 02:42:52 --- names: list (clog Klaw flyfly skylan OrngeTide sma TreyB @ChanServ ianni onetom Jaster XeF4 fridge) 03:01:09 --- join: Fractal (gpod@h24-77-171-28.ok.shawcable.net) joined #forth 03:24:26 --- quit: flyfly (Read error: 54 (Connection reset by peer)) 04:25:35 --- join: Speuler (~Speuler@mnch-d9ba47ee.pool.mediaWays.net) joined #forth 05:53:06 --- join: flyfly (~marekb@ip164.ktvprerov.cz) joined #forth 05:58:40 --- quit: flyfly ("using sirc version 2.211+KSIRC/1.2.1") 05:59:50 --- join: flyfly (~marekb@ip164.ktvprerov.cz) joined #forth 06:18:31 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 06:58:48 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 07:03:01 --- quit: gilbertbsd (Remote closed the connection) 07:05:57 --- quit: Kitanin (Read error: 54 (Connection reset by peer)) 07:12:37 http://logilan.info/~l/bashforth_v0.25 07:15:18 --- quit: flyfly (Remote closed the connection) 07:22:29 Speuler: thx. nice implementation :) 07:35:06 onetom: thank you 07:40:36 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 08:00:56 http://logilan.info/~l/bashforth_v0.26 08:02:36 why did you change header to 'reveal header'? 08:03:52 gilbertbsd: since hide/reveal hsa been implemented, headers need reveal to be visible. as the words in the script should compile ok, i reveal those already during header creation 08:04:16 you know what reveal is for ? 08:04:22 * gilbertbsd nods no 08:04:34 : foo 1 . 2 . sfdgkjfghg ; 08:04:45 won't compile, sfdgk... not found 08:04:52 foo 08:04:54 * gilbertbsd nods 08:04:56 word not found 08:05:17 only if foo compiles allright, does semicolon set the reveal bit 08:05:56 in the bash source, i don't need semicolon to set it 08:06:31 if it won't compile, bashforth won't start or run properly anyway 08:06:46 ahem ... "compile" :) 08:08:41 --- quit: TreyB (Read error: 60 (Operation timed out)) 08:09:29 what was your first forth written in ? 08:09:33 .( fgf ) s( tretert) type : foo ." test" ; : bar s" test" type ; 08:09:42 gilbertbsd: 6809 asm 08:10:36 my first forth is not written :D 08:10:51 bashforth may teach you 08:11:50 I am learning. 08:12:36 most forths are finished forths. 08:12:37 most of writing an interpreter is pretty easy and straightforwards. there are a few things which are not always easy. 08:12:48 its easier to see how it grows from the roots. 08:13:02 does> is one example of those 08:14:19 i tend to put the vm together, define a high-level word doing "emit", then go on with the primitives 08:15:02 as you already can emit, you can output diagnostics 08:16:03 also running 'set' shows exactly what is happening as well. 08:16:31 but that's bashforth specific 08:16:43 what is? 08:16:56 set for debugging 08:17:08 ah yes. 08:18:35 revealheader "set" ; code set set 08:21:24 then you can do echo "set bye" | ./bashforth | less 08:22:10 --- quit: gilbertbsd (Read error: 54 (Connection reset by peer)) 08:24:15 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 08:24:31 I had reboot and rebol on my path. you would never guess which one tab completed first. 08:29:55 --- quit: Fractal (Read error: 60 (Operation timed out)) 08:37:08 speuler did you just do --sp as a shorthand for sp-1? 08:37:34 ... or does --sp make a difference? 08:39:26 i do hope it makes a difference. it saves code though, as sp will be modified, not just the result displaced by 1 08:39:44 otherwise i had to use two lines 08:40:11 decrement sp, and then use sp in its context 08:40:51 when it says (( --foo )), thats just a shorthand for let foo=foo-1 08:41:49 but s[--sp]=$tos is really let sp=sp-1 ; s[sp]=$tos 08:42:42 so performance wise, its mostly the same then. 08:43:22 don't think so in case 2 08:43:34 but haven't tried 09:09:33 l@sandwich:~/shellf$ cat x1 09:09:33 #!/bin/sh 09:09:33 a=5 09:09:33 b=() 09:09:33 for ((i=0 ; i<10000 ; i++)) ; do 09:09:34 b[--a]=x 09:09:37 ((a++)) 09:09:38 done 09:09:40 l@sandwich:~/shellf$ time ./x1 09:09:42 real 0m1.290s 09:09:44 user 0m1.270s 09:09:46 sys 0m0.020s 09:10:22 l@sandwich:~/shellf$ cat x2 09:10:23 #!/bin/sh 09:10:23 a=5 09:10:23 b=() 09:10:23 for ((i=0 ; i<10000 ; i++)) ; do 09:10:23 let a=a-1 09:10:24 b[a]=x 09:10:27 let a=a+1 09:10:28 done 09:10:42 l@sandwich:~/shellf$ time ./x2 09:10:43 real 0m1.864s 09:10:43 user 0m1.800s 09:10:43 sys 0m0.010s 09:13:05 5 throw from input line , no catch, is handled gracefully now 09:28:18 --- join: Robert (~snofs@h138n2fls31o965.telia.com) joined #forth 09:36:54 school. 09:36:56 --- quit: gilbertbsd ("Client Exiting") 09:40:40 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 09:43:17 Hi TreyB 09:51:49 --- quit: TreyB (Read error: 60 (Operation timed out)) 10:20:03 --- join: Fractal (nwjehirm@h24-77-171-28.ok.shawcable.net) joined #forth 10:46:55 --- quit: Fractal (Read error: 110 (Connection timed out)) 11:05:32 --- join: the_rob (~robert@h138n2fls31o965.telia.com) joined #forth 11:24:27 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 11:24:37 Hi, there. 11:24:44 Hello. 11:26:48 --- join: flyfly (~marekb@ip164.ktvprerov.cz) joined #forth 11:27:39 Hi, flyfly 11:29:34 hi 11:33:06 --- part: flyfly left #forth 11:44:43 --- quit: Speuler (Read error: 60 (Operation timed out)) 12:38:43 --- join: wossname (wossname@HSE-QuebecCity-ppp81413.qc.sympatico.ca) joined #forth 13:05:38 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 13:11:04 wossname. 13:11:20 Version me! 13:11:21 the_rob??!!?~~~ 13:11:37 That's what Speuler keeps calling me. 13:11:38 bkah :( 13:11:51 >:) 13:12:51 minix is sux 13:13:18 Yep. 13:13:48 gomoku is /not/ the key requirement of an os. just saying 13:14:25 Bah, it's a good game! 13:14:43 Well, a good system is one you can IRC from. 13:15:04 :) 13:15:11 can't be true :(( 13:15:23 Of course it is! 13:15:49 because you could just use a 486, serial cable + ``protocol'' and your chip would be a good os 13:16:59 Yes..? 13:17:08 ;D 13:40:46 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 13:40:57 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 13:42:11 Hi gilbert 13:44:17 hi robert 13:44:27 How's life? 13:44:57 tiring :) 13:45:04 I played soccer and it knocked me about a bit. 13:45:07 how is yours? 13:45:46 I played...the game if trying to make computers obey my commands. 13:45:49 of 13:46:28 heheh. 13:46:32 are they listening? 13:47:14 Sort of... 13:47:44 what are you working on? 13:48:13 Playing with Forth on my AVR :) 13:48:39 --- join: Herkamire (~jason@ip68-9-68-123.ri.ri.cox.net) joined #forth 13:48:46 Hi Herkamire 13:49:52 hi the_rob :) 13:51:04 I'm working up a forth with pre-parsed source 13:51:24 the source file has a dictionary, and data, and source tokens in it. 13:51:35 Anyway, once I get the last part of this DataFlash controlling code done, I have 256kB of sweet memory for my AVR to play with. 13:51:49 More than enough for a Forth! 13:52:02 the source tokens are an index into the dictionary, and a "type" (compile, define, execute, literal, etc) 13:52:03 Nice, Herkamire :) 13:52:07 AVR? 13:52:17 Yes... www.atmel.com 13:54:12 whats the device? 13:54:33 AT90S8515 13:54:39 On an STK500 board. 13:57:19 what products are these chips used on ? 13:57:58 tea kettles 13:58:09 hahahahahha 13:58:23 why not? 13:58:47 why on gods good earth would you wanna have a tea kettle with a chip? 13:59:08 sure you can put a marketing spin on it... 13:59:14 but ... 'whyyyyyyyyyyyyyyyyyyy'? 13:59:28 a user customized sound plays when your tea has steeped, configured by number of bags/volume/blend 13:59:34 mmmm, excellent 13:59:41 yeah. 13:59:51 overkill 14:00:06 :( 14:00:12 comfort. 14:00:16 Your tea kettle would enjoy Forth. 14:00:25 I can't explain. 14:00:35 You would not understand. 14:01:11 Hm. Ignore the last two lines. They're from the song I'm listening to. 14:01:30 thats impossible. 14:01:41 the_rob == Robert T/F? 14:02:32 Well, the_rob is what Speuler tends to call me when he's bored. That client's on a Minix laptop. ;) 14:03:07 And.. when I'm too lazy to move to the IRC computer, I use this one. 14:13:22 --- join: Fractal (pwfs@h24-77-171-28.ok.shawcable.net) joined #forth 14:42:40 --- quit: TreyB () 14:48:23 --- quit: gilbertbsd ("Client Exiting") 15:13:03 --- join: sma_ (stephenma@207.6.229.22) joined #forth 15:20:47 Hi 15:24:02 --- part: sma_ left #forth 16:09:39 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 16:24:06 Time for Minix to die, I guess. 16:24:08 --- quit: the_rob () 16:24:45 --- part: gilbertbsd left #forth 16:52:59 --- quit: wossname ("nethack :(") 17:05:08 --- join: Speuler (~Speuler@mnch-d9ba47bb.pool.mediaWays.net) joined #forth 17:06:21 'morning 17:22:34 v0.27 uploaded. top level catch. errors throw 17:36:30 :) whatta speed 17:39:15 you're behind a quick machine, then 17:46:32 nonono, i was refering the devel speed 17:46:44 ..refering 2 .. 17:47:47 was hardly busy on it the last two days. just returned maybe half an hour ago 17:48:15 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 17:48:29 only looks that way because i've been incrementing version numbers nevertheless :) 17:48:53 hi 17:49:01 hi gilbertbsd 17:50:27 speuler I don't understand: debug --- next start --- 17:50:35 what are the dashes for? 17:51:10 for visual emphasizing 17:52:01 they will be displayed 17:52:08 try echo --- :) 17:52:28 hehe 17:54:07 Speuler: 17:54:07 cold=$dp 17:54:08 compile $init_stacks $hello $cr $warm 17:54:15 colon warmhandler $init_stacks $prompt $quit 17:54:25 colon bracketquit \ 17:54:26 $init_stacks 17:54:28 .. 17:54:47 the init_stacks is executed 3 times. why? 17:55:06 in quit, because i want to clean stack upon rentry 17:55:20 reentry? 17:55:37 in warmhandler, because i want to have them in a known state before executing hi-level word prompt 17:56:36 in cold, same as for warm, but for reason of executing hello and cr 17:57:21 abort does quit, for example 17:57:36 aha 18:00:35 Speuler: what about a colorbashforth? 18:00:54 yes, why not. 18:00:59 noooooooo 18:01:09 :)) 18:01:11 can branch versions 18:02:53 bashforth would be be suited for trying out experimental stuff, proof of concept, or in general weird ideas 18:03:05 where speed doesn't matter 18:03:30 but ease of modification is a plus 18:05:28 i might put some elastic concepts into it 18:05:53 oh. elastic was my experimental forth 18:07:47 "forget:" was nice. especially with the forward refs. 18:09:15 could be used to for example automatically restore deferred words to there previous setting upon forgetting the word it was deferred to 18:12:24 had an output editor. could go back in the text output, and execute lines from there 18:13:00 so, menus on function keys where basically lines containing commands 18:13:50 had examples behind bookmarks in menus, which you tried by moving the cursor to the line and pressed enter 18:14:08 oh. bookmarks, yeah ... 18:14:22 plenty of weird stuff in there. 18:15:26 bookmark foo in the source listed the bookmarked paragraph from file on screen upon executing foo 18:16:13 one of those lines usually said edit foo 18:16:34 which, when cursor moved to, and enter pressed, opened the source and let me edit the "menu 18:16:36 " 18:17:10 and, it had an object oriented backscroll buffer :) 18:17:54 whats the name of this output editor? 18:18:05 accept 18:18:10 ? 18:18:16 query 18:18:17 accept from bashforth? 18:18:29 bashforth hasn't got those things 18:18:34 maybe not yet :) 18:19:38 was not an isolated word. was integrated into elastic line input 18:20:05 vocabularies where also kind of special there 18:22:03 there where a few pointers to words on a per-vocabulary-base. one of them was a pointer to find, which was used when that particular voc was searched. 18:22:28 that is, one could set up the vector to do case sensitive search in certain vocs only. 18:22:42 or create a vocabulary with pattern-matching search 18:23:34 searches through other vocs where not affected by setting a different search method for one voc 18:23:41 sid:~# echo ': / div asd qwe' | sed -e 's/: \([^ ]\+\) \([^ ]\+\)/revealheader \1 ; code \2 \2 ; function \2 {/' 18:23:43 revealheader / ; code div div ; function div { asd qwe 18:26:10 ah. source prettifier ? 18:27:18 the quotes around / are gone 18:27:53 don't do that to * :) 18:29:25 or it will happily extend the word name to the list of files in your directory 18:32:38 hey, it was just a test 18:32:57 of course there has 2 b " around \1 18:33:28 but the main idea is the shortening of the source 18:34:30 so it can b more concise => easier 2 comprehend 18:36:20 i would "factor" the stack comments out in2 a separate file 18:36:52 so a lot of primitives would only take 1 line instead of 7 18:36:56 # ( x1 x2 -- x3 ) 18:36:56 revealheader "xor" 18:36:56 code xor xor 18:36:56 function xor { 18:36:56 let tos="tos^${s[sp++]}" 18:36:59 } 18:37:01 18:37:56 could write a function which is just called with the relevant pars. forth name, bash name, function body 18:38:43 : and { let tos="tos&${s[sp++]}" } 18:38:58 : or { let tos="tos|${s[sp++]} } 18:39:07 : xor { let tos="tos^${s[sp++]} } 18:39:18 : ! .... ; ??? 18:39:20 : invert { let tos=-tos } 18:39:35 : ! store { ... } 18:40:38 lookup non-alphanumerical in ascii table, index ascii into ascii->alphabetic name 18:40:47 ! -> store 18:40:56 ? 18:40:59 ( -> br 18:41:24 umean we can also automate it? 18:41:36 ! -> 33 , name[33] 18:42:30 : 0< less0 { if [ $tos -lt 0 ] ; then tos=-1 ; else tos=0 ; fi } 18:42:39 name[33]=store 18:43:00 ? 18:43:10 0 -> zero < -> less 18:43:22 0< -> zeroless 18:43:26 aha 18:43:35 very good 18:43:49 but also take a look @ the above definition 18:43:56 its only 65 chars long 18:44:09 onetom, what are you doing? 18:44:12 it pretty much fits on2 a line 18:44:12 playing jazz ? ;) 18:44:16 :) 18:44:20 i tried to assign result of comparison to bash var 18:44:25 didn't work yet 18:44:42 speuler is this going into the next bashforth? 18:45:08 : 0< tos=$(( $tos < 0)) ; 18:45:18 true = 1 in bash 18:45:28 und falsch ? 18:45:32 0 18:45:54 so will it go into the next bashforth oder ja :D 18:46:15 : 0< tos=$(( -($tos < 0) )) ; 18:46:47 i'm still focusing on functional additions, not cosmetical 18:46:57 ack 18:47:43 Speuler: its not a simple cosmetical operation if u chop the src size 2 half of itself 18:47:47 maybe a meta-scriptgenerator 18:48:08 Speuler: via pipeing it through a <10 lines script 18:48:16 onetom: it doesn't add functionality 18:48:46 onetom with speuler's composition you might record a track? 18:48:54 Speuler: but amplifies readability, understandability, navigation speed, number of developers ;) 18:48:56 would be worth to check whether and how execution speed would be affected 18:49:32 Speuler: by what? 18:49:44 shorter source 18:50:20 it wont b affected 18:50:27 i know a way which is very likely to improve execution speed. 18:50:49 maybe, considerably 18:50:50 nah, tell us! 18:51:06 have a look at the threading "technologie" 18:51:16 look at what is in the cfa of a word 18:51:33 do that by typing ' dup @ . 18:52:51 also have a look at next, where it executes the "address" of the word in the cfa 18:53:13 ${m[w]} 18:53:58 yes, and? 18:54:00 thus, executing primitive "dup" will execute function "primitive" 18:54:12 * onetom is very tired yet 18:54:16 those word handlers are part of the normal word list 18:54:23 no no onetom, you must prevail. 18:54:24 all words are in there 18:54:38 that means, searching more than necessary 18:54:58 by putting the word handlers into an own "vocabulary" (array with word names) 18:55:05 and, only those, 18:55:17 next should be able to find them much quicker 18:55:42 aha 18:56:55 adding words to the wordlist wouldn't slow down next 18:57:25 hmm 18:57:26 nope 18:57:31 won't do 18:57:53 doesn't find function through the word list 18:58:07 but through the (bash maintained) list of function names 18:58:50 do u know the graphviz package? 18:59:06 negative 18:59:20 what does it do? 19:01:32 ah 19:01:55 http://www.research.att.com/sw/tools/graphviz/examples/directed/datastruct.gif 19:02:35 ah yes its a language. 19:02:52 it would b a nice habit 2 document the structure of the surctures of a program this way 19:03:35 i would like 2 c such graphs 4 the memory structure of bashforth & flux... 19:05:28 i found an easy way to speed up 19:06:09 will the cosmetic changes be reflected in the version number speuler? 19:06:46 yes. by being incremented 19:06:58 I mean as opposed to functional. 19:07:22 versions are so i got a fall back in case i mess up 19:07:30 that applies to cosmetic changes too 19:07:34 ack 19:08:13 i think the next version is going to be twice a quick 19:08:24 Speuler: howM? 19:08:28 -M 19:08:32 or, half that slow :) 19:08:38 :)) 19:08:56 the "primitive" threading is stupid, and unnecessary 19:09:05 what it does is: 19:09:35 cfa contains "primitive" which, when executed, reads next cell (name of primitive), and executes that one 19:09:46 that is, i don't need "primitive" 19:10:03 i can put the name of the primitive into the cfa, instead of "primitive" 19:10:26 needs only one, instead of two, function lookups 19:11:07 ' find @ . 19:11:07 nest ok 19:11:13 what does it mean? 19:11:17 in common forth threading technologie, i would say: 19:11:32 i don't need a pointer to a pointer to code for primitives 19:11:36 just a pointer to code 19:12:06 it says "nest" 19:12:13 because find is a colon word 19:12:34 you mean, why does "." say "nest" ? 19:12:56 ah, its docol actually, right? 19:13:01 right 19:13:08 i call them nest and unnest 19:13:27 k, know i remember 19:13:34 k, now.. 19:14:27 and "." outputs a string, because "." does echo $tos :) 19:14:45 if tos happens to contains a non-numerical string, that's fine too ... 19:15:24 you don't store things as binary representation in environment variables . 19:15:57 if there's a number, it is just the string of characters 0...9 19:16:56 revealheader "if" ; colon fwhile 19:17:06 revealheader "while" ; colon fwhile 19:17:09 try ' find @ constant foo 19:17:10 is it okay? 19:17:11 foo . 19:17:32 funny 19:17:47 foo dup dup .s 19:19:49 i didn't exploits those possibilities in bashforth ... 19:19:58 was afraid of the confusion that may cause 19:20:11 except, in does> 19:20:29 does> cfa contains dodoes 19:20:58 "pointer" to dodoes, AND pointer to does part, at the same time 19:21:48 by does> cfa, i mean cfa of a word defined by using a create .. does> defining word 19:22:23 internally, a string is sometimes returned in tos 19:22:39 but not kept floating around on stack 19:23:44 .( & ." both refers 2 doquote & 19:23:59 ( & \ also both refers 2 bracket 19:24:09 why? 19:24:44 .( is interpret, ." is compilation 19:24:59 ah 19:25:21 same name, you mean 19:25:27 sure 19:25:35 forgot to give it another name :) 19:25:39 same name after the word colon 19:25:56 if & while also has fwhile... 19:26:10 would have noticed when compiling $dotquote into a bash definition 19:26:28 tif and while are correct 19:26:38 while is nothing else then if 19:27:00 but they still have different definitions.. :/ 19:27:07 true 19:27:18 can't use them in bash defs anyway 19:27:35 really? why? 19:27:39 need to branch nn branch0 nn there 19:28:03 * onetom is 2 tired 2 get the whole concept behind bash4th 19:28:06 $if would compile if to definition, not execute 19:28:24 bash doesn't respect immediate flag 19:28:28 only forth does 19:28:31 aha 19:28:46 now, ive understood 19:29:55 picking out the double bash level word names was a good one 19:30:32 noticing copy-and-paste there :) 19:33:35 anyone running bashforth on non-x86 ? 19:33:48 I tried. 19:33:52 it bombed 19:33:59 ui. 19:34:02 < 2.05 19:34:12 stepan runs it on alpha 19:34:15 2.05 19:34:35 did some performance comparison 19:35:09 is it faster than on the x86? 19:35:24 same loop om alpha 466 mhz: 19:35:30 real 0m25.161s 19:35:30 user 0m14.866s 19:35:30 sys 0m5.569s 19:35:55 intel p3 or 4, 500 mhz: 19:35:59 real 0m13.234s 19:36:00 user 0m12.320s 19:36:00 sys 0m0.850s 19:36:37 snellen is > on the x86 19:36:54 which surprised me 19:37:11 stepan says it may be theresult of the alpha port of linux 19:37:15 how much ram did his machine have? 19:37:21 ah okay. 19:37:23 some parts not ported as they should 19:37:31 Speuler: I have PPC chip. but I haven't been paying attention in here. you want me to try something? 19:37:41 bashforth 19:37:57 ppc, now THAT would be interesting 19:38:16 there is speuler's forth: http://logilan.info/~l/ 19:38:18 what version of bash do you run ? 19:38:39 2.05a.0(1)-release 19:38:43 good 19:38:48 should do 19:39:39 get v27 from the url gilbertbsd has given you, 19:39:52 done 19:39:57 how do I run the test? 19:40:00 if it works, run: 19:40:15 time echo ": foo 10000 0 do loop ; foo bye" | ./bashforth_v0.27 19:40:46 bashforth should the set +x for the test 19:41:55 it won't say much about bashforth, more about the linux port, compiler quality and cpu effectiveness 19:42:33 is it supposed to spit out a bajillion "ok\n"s 19:42:56 hmm... no. just one 19:43:49 ah 19:43:54 you forgot the quotes 19:44:29 : doesn't work 19:44:38 : foo 1 ; foo 19:44:39 word not found 19:44:39 ok 19:45:03 start it just ./bashforth_v0.27 19:46:02 yeah 19:46:11 gpl, ok prompt ? 19:46:16 . bashforth 19:46:50 Speuler: exactly. then I type ": foo 1 ; foo" and it says "word not found\n ok" 19:47:23 your echo seems different 19:47:40 the \n should translate to linefeed 19:47:44 I get word not found from just typing ":\n" 19:48:00 Speuler: it does 19:48:09 if it doesn't, other things won't work too, because echo is used internally too 19:48:19 I just typed \n figuring you would translate :) 19:48:25 ah 19:49:02 hmm. 19:49:07 grmbl 19:49:25 there goes the dream of "easy porting" 19:49:38 * Speuler is shattered 19:50:14 looks like bashforth is more sensitive to the version of bash than expected 19:50:42 noooooo 19:50:46 do'nt be shattered. 19:51:42 possibly, getting it to run with <2.05 would cure (some of) these deficiencies 19:52:52 ah 19:52:56 new purpose 19:53:03 bash test suite 19:53:14 I can upgrade to bash 2.05b if you like :) 19:53:14 run new versions of bash against it :) 19:53:26 * Speuler checks his version 19:53:48 2.05b-6 debian 19:54:16 grumble 19:54:58 it works fine on mine man. 19:55:07 do we need an ansi standard for bash script language ?? 19:55:13 bash 2.05b coming right up 19:56:55 found a machine with bash2.05a-12 19:57:29 and one with 2.05a-11 19:57:56 2.05b-1 19:58:34 we need to not use arrays and other overkill features in bash ;) 19:59:04 what to use then Herkamire? 19:59:11 ah 19:59:27 2.05a-11 : word not found ... 19:59:37 now that's good news 19:59:47 can reproduce the error 20:02:38 Speuler: ok, bash 2.05b.0(1)-release works much better 20:02:45 real 0m12.657s 20:02:45 user 0m11.600s 20:02:45 sys 0m1.260s 20:02:55 about 500 mhz ? 20:03:13 I have dual 450Mhz 20:03:58 I asume it's only using one of the processors 20:04:16 yeah. someone had to have something extreeeeme. 20:04:18 is very much in line with pentium. somewhat quicker, about 20 % 20:04:43 sys load is higher... 20:04:50 mem management maybe 20:05:00 shuffling strings around ... 20:05:46 ppc gets more bang out of the khz 20:06:33 Speuler: yep :) 20:07:02 : #bits 0 begin swap ?dup while dup 1- and swap 1+ repeat ; 20:07:03 -1 #bits . 20:07:22 that's to determine what math ppc bash uses 20:07:33 ppc generally often has 2X speed over lates x86 of same Mhz 20:07:57 what about sparc Herkamire? 20:07:58 alpha and pentium both use 64 bits 20:08:18 gilbertbsd: I don't know anything about sparc 20:08:34 1. its risc 20:08:41 2. I dunno anything else :D 20:09:29 Speuler: 64 bits for what? 20:09:33 i'm looking forward to run it on a strongarm or xscale cpu 20:09:42 math 20:09:48 intager math? 20:09:51 right 20:10:03 riight 20:10:10 that'll come in handy every year or so 20:10:30 does it have 64 bit memory stores and loads? 20:10:52 no. just what result of compiling bash makes it use 20:11:01 hmm... maybe x86 asm doesn't work that way 20:11:28 oh, THAT i can't determine with bashforth, it is too far from the cpu 20:11:42 i can only determine what bash uses for math 20:11:50 no clear statement in the man 20:11:57 says "at least 32 bit" 20:12:05 cool 20:12:55 motorola made 64 bit ppc chips, but not enough people thought it was worth paying for 20:13:05 so I think they've been discontinued 20:13:58 : #bits 0 begin swap ?dup while dup 1- and swap 1+ repeat ; -1 #bits 20:14:06 this will find out what bash uses 20:14:12 nifty 20:14:43 ?!?!? I get 64 20:14:45 forgot the . to print out the result 20:14:53 heh :) I noticed 20:15:04 : #bits -1 0 begin swap ?dup while dup 1- and swap 1+ repeat . ; #bits 20:15:09 should do too :) 20:15:18 no 20:15:20 . 20:15:23 would have done the trick 20:15:33 that's in line with all versions as far 20:16:13 3000000000 dup * . 20:16:27 ( three with 9 zeroes ) 20:16:53 result is close to what can be represented with 63 bits 20:17:08 9000000000000000000 20:17:09 --- quit: Fractal ("[BX] Time wasted: 27 days -4 hours -32 minutes -44 seconds 21 milliseconds") 20:17:23 no other forth here can do that :) 20:17:33 none? 20:17:38 none i have 20:17:45 without using float or double 20:17:54 so your simple forth is dong wonders. 20:17:56 doing 20:20:23 : x 0 63 0 do 2* 1+ loop . ; 20:20:30 I really don't think my processor does 64 bit integer math 20:20:41 that's really weird that bash is. that could account partly for it being slow 20:21:12 Herkamire: nor does pentium. 20:21:19 9223372036854775807 20:21:40 that's very odd 20:21:46 but synthesizing higher prec math through c longs is of course possible 20:21:51 (no pun intended) 20:22:02 of course 20:22:18 now that's a big number :) 20:22:25 but why?? 20:22:33 why what ? 20:22:37 and I think a "long" is 32 bits on ppc 20:22:46 but "long long" is 64 20:22:50 ah. 20:22:55 long long then :) 20:22:56 or something. it doesn't matter 20:23:14 oh, I mean why compile bash with 64 bit math? 20:23:26 hardly anybody uses the math in bash as far as I know 20:23:41 I'm sure it would work fine with 32 bit math 20:23:42 as bash is not intended for speedy scripts, i figure the developers found bigger number rang more important 20:23:59 but then again, what's the harm in slow math, if nobody ever uses it :) 20:24:04 if math is not used, hardly a penalty involved 20:24:11 exactly :) 20:24:45 incrementing the odd loop index shouldn't affect speed by much 20:25:29 but now, compile bash with 128 bit math, and bashforth should be able to use it 20:26:17 with 256, the big integers hardly fit on a line anymore 20:26:28 that's very special ;) 20:26:40 just use bc 20:26:50 or smalltalk 20:26:58 smalltalk. 20:27:02 sacre bleu ou rouge! 20:27:31 bignums there 20:27:41 variable precesion? 20:28:11 digits as objects. manipulation for arithmetic as methods 20:28:27 hehe :) 20:28:51 in what base? 20:29:03 wouldn't that make it slow? 20:29:08 default 10. no idea how/whether to change 20:29:17 smalltalk is not that quick 20:29:30 about 1/10 of c compiled prog 20:29:52 not bad 20:30:03 yes. could be worse 20:30:07 I've heard good things about smalltalk, and I had a little fun with squeek 20:30:23 my smalltalk time dates long back 20:30:45 squeak was a nightmare. 20:30:47 didn't pick it up easily as the oo concept was still pretty new for me then 20:31:02 I was impressed in general, but couldn't stand their gui (even after I fixed their scrolling text widget 20:32:07 * Herkamire get's X to start building 20:32:11 was dismayed that a "hello world" program didn't fit on one floppy anymore 20:32:51 don't you love those hello world programs that are huge and complicated? 20:33:09 they could call them "Goodbye, World!" 20:33:11 Speuler: they'll tell you the hello world was now fully OO 20:33:25 Herkamire: and they would be simpler ? ;) 20:33:32 there weren't cd burners at that time 20:33:49 goodness, that must have been in the early 20's. 20:34:05 grin 20:34:29 cd burners were expensive less than 10 years ago 20:34:31 was about ... 1988/89 20:35:03 i upgraded my machine 20:35:10 from 2 to 8 mb 20:35:26 CD burners became cheap enough that normal people were buying them... what? 5-7 years ago? 20:35:27 wouldn't run nicely otherwise 20:35:42 Speuler: bloatware! 20:35:59 spent about 500 $ on the upgrade 20:36:05 heh :) 20:36:42 I'm sure I'd be saying that "those were the good old days" except I didn't get into computers (asside from playing games) untill the mid '90s 20:38:01 i'm a relict from pre-pc times 20:38:32 Herkamire: what did you do? play with Ken dolls? 20:38:37 :O 20:38:42 hehe :) 20:38:53 I didn't play much with computers either. 20:38:57 I mucked around outside a lot :) 20:39:03 touche 20:39:06 I was about to say that. 20:39:16 I was gonna say 'poor and homeless' same thing :D 20:39:22 we had some good streams for mucking around in :) 20:39:32 we had some good mud 20:39:46 real clay, not sissy play dough 20:40:33 yup 20:40:43 we made some playdough too though 20:44:22 has anybody printed a "HONK IF FORTH THEN" bumpersticker? 20:44:42 they oughtta. 20:44:45 there's gotta be a market of at least 10 people 20:44:53 they also oughta make those 4thSmith thingamabobs. 20:44:55 _I'd_ buy one :) 20:44:57 hehe 20:45:10 I'd also buy a gnu, linux, freebsd, decal. 20:45:19 maybe of the penguin and the daemon. 20:45:42 www.thinkgeek.com might have something preeedy close 20:47:05 http://www.thinkgeek.com/cubegoodies/stickers/2898/ 20:48:37 funny funny. 20:49:17 4thSmith and Honk if forth then should generating some maaaaaaad honking if it ever were recognized. 20:55:44 they don't have suunto watches in their collection at thinkgeek... 21:01:02 whats a suunto watch? 21:01:16 www.suunto.fi 21:05:45 multifunctional time pieces. compass,barometer,thermometer,heartbeat, and the like, with plenty of logging- and signalling functions 21:05:54 TMI ! 21:05:58 :) 21:06:06 still no bluetooth 21:06:07 information overload will occur. 21:06:26 would like to sync compass in suunto with gps 21:06:41 that is , the directional indicator 21:07:00 whatever happened to getting lost and asking friendly cannibal natives for help? 21:07:47 say, once every n minutes, gps turns on shortly, determines position and vector, uploads vector to destination to watch 21:08:07 prolongs battery lige 21:08:08 life 21:10:04 Yes! a watch with GPS! 21:10:07 the future is here! 21:10:16 old sstuff 21:10:30 re: my question. 21:10:33 battery life extremely limited when using gps 21:11:05 lost ? 21:11:06 hmm 21:11:30 avoiding getting lost as result of locals having sent you purposely into the wrong direction ? 21:11:39 hahahah 21:12:04 yeah but they have to laugh a little don't they? 21:12:22 nothing like laughing out loud at a technically over decked lost tourist. 21:12:23 well 21:12:42 nologically 21:13:24 GPS is cool 21:13:43 is it true TECO is like forth? 21:14:27 i lived a while in a country where my nationality is not horribly popular. cause i speak their language with an accent not typical for my native language, they mistake me from being somewhere else from. i can tell you that purposely sending people the wrong way does exist, from seeing it happen to others. 21:15:00 I have sent a few people the wrong way and been sent the wrong way an equal number of times. 21:15:10 --- quit: Herkamire ("bedtime") 21:15:21 karma is a BITCH 21:15:23 i check back with the gps 21:16:45 not being lost easily make you much more free to explore 21:17:17 those situations "don't in there, we won't find back" are past 21:18:22 also helps finding your tent you've setup in a covered spot, then exploring local pubs, returning when it is dark 21:18:56 even returning to your car parked in an unknown city, and set out strolling around 21:25:12 problem with 2.05a is that smudge bit of headers is not set. 21:26:35 well, one problem. 21:27:40 eine problem? 21:27:48 oder > eine ? 21:28:18 there's another, but w/o smudge bit testing, the entered word will at least be found and executed 21:29:24 that means, there's not a lot wrong with it 21:40:08 --- join: Fractal (xghyl@we.brute.forced.your.pgp.key.at.hcsw.org) joined #forth 21:42:41 --- part: gilbertbsd left #forth 21:43:07 ah 21:43:14 that's a bug with bash :) 21:43:20 they fixed it 21:50:51 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 21:58:56 --- quit: TreyB () 22:09:18 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 22:15:26 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 22:17:44 real 0m8.371s 22:17:44 user 0m7.570s 22:17:44 sys 0m0.800s 22:18:46 was: 22:18:49 real 0m13.234s 22:18:49 user 0m12.320s 22:18:49 sys 0m0.850s 22:19:01 how did you speed it up? 22:19:35 removing one line of code :) 22:19:44 which? 22:20:12 function code { 22:20:12 export $1=$dp 22:20:12 shift 1 22:20:12 m[dp++]="$*" 22:20:12 } 22:20:39 so what did you replace it with? 22:21:05 that's the same as the old version minus one line 22:21:38 so what about the things which depend on 'code'/ 22:21:38 ? 22:21:59 rephrase 22:38:43 v28 is online 22:57:14 --- quit: Serg_Penguin (Read error: 110 (Connection timed out)) 23:04:50 --- quit: gilbertbsd (Read error: 60 (Operation timed out)) 23:05:33 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 23:14:18 --- quit: Serg_Penguin () 23:35:34 --- quit: Robert (Read error: 113 (No route to host)) 23:54:12 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 23:54:29 seems like Robert fell :(( 23:59:59 --- log: ended forth/03.02.24