00:00:00 --- log: started retro/10.02.06 00:33:22 --- quit: sixforty (Quit: Leaving.) 02:09:06 --- join: virl (~virl__@chello062178085149.1.12.vie.surfer.at) joined #retro 02:17:32 --- quit: docl (Ping timeout: 246 seconds) 02:48:15 --- join: Mat2 (~5b43e0ba@gateway/web/freenode/x-owoiprzboxnpmyti) joined #retro 02:48:21 hello 02:48:56 --- quit: Mat2 (Client Quit) 04:06:23 --- quit: SimonRC (Ping timeout: 246 seconds) 06:13:39 --- join: SimonRC (~sc@fof.durge.org) joined #retro 07:48:36 --- quit: virl (Remote host closed the connection) 08:05:50 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 08:05:57 --- quit: erider (Changing host) 08:05:57 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 08:06:28 hi 08:17:20 hi 08:17:48 i'm eating lunch, then have a walk home 08:20:53 --- join: Mat2 (~5f59088e@gateway/web/freenode/x-fkctvzwckxpsqika) joined #retro 08:21:12 hi folks 08:21:42 *Mat2 trys to adapt methaphers from american tv series* 08:52:34 crcz can you talk alittle about postpone 08:59:40 hi erider 08:59:52 hi Mat2 08:59:52 hi crc 09:00:04 hey are you also dain 09:00:25 yes, it's a nickname from me 09:00:48 I read something in reva forum that someone is working on the same type of project for retro that you are 09:01:43 cool the language had your tone attached to it :) 09:02:30 *grin* 09:03:16 hey have you read the book "Hacker's Delight" 09:04:33 hmm, no, is that one of these 'I will tell you all secret knowlage of productive hacking' books ? 09:06:23 no it is about bit manipulation 09:06:56 http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654/ref=pd_sim_b_3 09:07:27 seems to be interesting 09:07:31 thanks 09:09:36 hi 09:09:53 Mat2: http://gist.github.com/296438 09:10:12 thanks a lot 09:10:34 hmm, you have compiled the older bench for AVM as I see it 09:12:03 that was with ttc including, building for rst now... 09:12:09 the new one: test-threading-BrImm-opt.c would return 400000001 as value 09:12:35 * crc will retest, one minute 09:14:00 the opt benchmark is listed here: http://rapiddatabase.assembla.com/wiki/show/avm/Benchmarks 09:14:41 please note the timings for the celeron class cpu 09:17:03 Mat2: btw interesting conversation you had with ron 09:17:57 he favored code size optimisations 09:18:52 true but I think it is because he is trying to target a broader range of cpus 09:20:34 Mat2: http://gist.github.com/296826 09:21:05 lerider: the load instructions stalls the pipeline for all x86 cpu's > Pentium 09:21:53 crc: thanks ! I will speed up the call instruction in AVM though (these are good timings) 09:22:17 the forth timings were done with the right file, so I won't rerun them 09:22:23 ok 09:22:24 no problem 09:23:48 erider: so I don't know for what cpu's he's trying to target (i386 and i486 ??) 09:24:22 I think he is trying to target as many as he can 09:25:07 with one style so he doesn't have to reinvent the wheel on different platforms 09:25:58 Mat2: at least 486, he had (at least at one point) started using instructions not on i386 09:27:26 hmm, than Reva lost a lot of perfromance on newer cpu's (like Dual Code) 09:28:04 I haven't seen the benchmarks to agree with you 09:28:17 reva isn't optimized for current processors 09:28:34 if I found time for this, I will test it out 09:28:47 , erider 09:29:13 it started as a rewrite of retro to eliminate the embedded forth stuff, to gain a bit of performance and code size reductions 09:30:40 my approach is to gain a lot of performance for newer cpu's and forget about code size reduction 09:31:29 I haven't tested it 09:36:13 crc: did you have had problems with to compiling the RST version of the interpreter ? 09:36:47 *My athlon system needs more than 1 hour for compiling it* 09:37:04 took about 10 minutes for me 09:37:44 --- join: docl (~luke@97-120-215-201.ptld.qwest.net) joined #retro 09:37:49 hi docl 09:38:13 --- join: zachk (~geisthaus@pool-71-240-243-4.syr.east.verizon.net) joined #retro 09:38:16 crc: that is reassuring 09:38:27 hi Mat2 09:38:30 hi zachk 09:39:04 Mat2: your vm is written in C right 09:39:12 yes 09:39:39 -> platform independence 09:40:13 so you are not using any external libraries 09:41:27 no 09:41:37 cool 09:41:47 only POSIX conform, standard C libs 09:42:56 that can change in future because I eventuell use the pthreads library for parallel-processing support 09:43:14 I am interesting to see how the in result is going to look 09:43:35 end* 09:43:52 i'm working slowly on the retroforth port 09:44:43 because you concern is performance, so I can understand that 09:46:03 crc did you have something for my postpone question 09:46:56 in ans forth, postpone compiles the code needed to get the compilation behavior of a word 09:47:21 basically, for normal words, it'd be equivilent to (in retro): 09:47:25 postpone foo 09:47:28 ['] foo compile 09:47:34 and for immediate words: 09:47:39 postpone foo 09:47:44 ['] foo execute 09:48:15 got it thanks 09:49:00 retro does not have postpone 09:49:19 these ANS guys seems to postponed everything .) 09:50:01 does retro have a compiler? 09:50:17 retro compiles to ngaro bytecode 09:50:50 ?! 09:50:53 erider: retro has a word called ` that does something similar 09:51:01 im reading through the wiki atm 09:51:01 zachk: retro runs on a portable virtual machine called ngaro 09:51:06 cool 09:51:07 it compiles to code for this vm 09:51:11 so postpone can be written like this : postpone ' , ; immediate 09:51:20 erider: no 09:51:44 erider: it has to account for both normal and immediate words 09:52:05 so two ' , ' , 09:52:06 zachk: it's possible to save the memory image of the vm, and reload it later for creating turnkey applicatios 09:52:08 erider: no 09:52:10 :) 09:52:17 erider: , is not a compiler, except in a dtc forth 09:53:00 ok 09:54:05 whats a turnkey application 09:54:46 zachk: an application that's considered standalone, but still has the underlying system embedded in it 09:55:40 zachk: as a simple example, a "hello world" application: 09:55:48 : hello ." hello, world!" cr bye ; 09:55:52 ' hello is boot 09:55:53 save 09:55:55 bye 09:56:06 when the image is loaded next, it'll execute 'hello' and exit 10:00:33 I'll add some notes on turnkey to the wiki 10:07:45 http://retroforth.org/pages/?TurnKey 10:07:49 just a few initial notes for now 10:09:48 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 10:11:11 crc: I have posted the message from yiyus in the new forum again because it was written briefly before you update the link to the new forum 10:11:22 updated 10:11:31 ok 10:11:38 hi sixforty 10:11:46 the forum is separate from the mailing list 10:11:53 hi, mat 10:12:10 it's an additional support mechanism :) 10:12:11 lol, ok, sorry 10:14:07 erider: it's a nice book 10:14:40 duplicating entries there isn't a problem for me though. it just increases the exposure, so it's all good :) 10:14:45 Mat2: do you recommend it 10:15:12 yes 10:16:43 I wanted to preview it but the pages that was shown wasn't enough to make a good decision 10:18:23 it presented tricks from practical experience and this is always good to know 10:19:34 yeah I read that but I didn't see any examples 10:22:15 you must have some basic assembler knowledge 10:22:42 Mat2: is it in assembly 10:23:08 no small c code snipplets 10:23:26 and some mathematical fundations 10:23:48 but some specific processor's are mentioned 10:24:07 PowerPC, IBM 360 10:24:45 cool 10:26:29 Mat2: regarding the two leading nop's, I'm testing a change to CALL and JUMP that'll skip them 10:27:26 --- quit: sixforty (Quit: Leaving.) 10:27:47 :) 10:27:55 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 10:28:14 --- quit: sixforty (Client Quit) 10:29:23 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 10:29:52 Mat2: I think I am going to buy then 10:30:57 erider: have you seen this before ? 10:31:01 http://www.osdata.com/topic/language/asm/asmintro.htm 10:31:27 I mean before you buy it ? 10:31:31 --- quit: sixforty (Client Quit) 10:32:03 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 10:32:10 Mat2: with the patch enabled, I get this with retro-fast: 10:32:12 real 0m8.453s 10:32:12 user 0m8.080s 10:32:13 sys 0m0.057s 10:32:45 llooks quite nice 10:32:58 Mat2: no I have not but looks useful thanks 10:34:44 crc: for your cpu the fast-console version should be ~ AVM (much larger 1st level cache) 10:34:51 and gforth 10:35:21 this puts it comparable with gforth and the ttc avm 10:35:47 the only flexibility you loose is the vector support 10:35:54 not really 10:36:17 the relocation over the nop's only takes place if the nop's aren't replaced 10:36:57 ah, ok 10:38:07 AVM have advantages because of its harvard design (seperating code and immediate data) 10:38:24 yup 10:38:42 this is important for cpu's like Athlon, Pentium M and Celeron 10:38:51 you can see it in the timing results 10:38:55 but this will give a nice boost within the confines of ngaro's design, so I'll likely be enabling it for the next release 10:39:34 fthats good 10:39:37 thats good 10:39:40 once I can get my cross-compilers working again, I'll try to run avm benchmark on my ipod touch if you want 10:39:58 for sure :) 10:40:00 thanks 10:41:15 I have an old iMac here and will build AVM for Mac Os 10.3 10:42:18 on PowerPC G3 10:44:27 I have updated the table: http://rapiddatabase.assembla.com/wiki/show/avm/Benchmarks 10:46:18 by the way both threaded interpreters perform very well as gforth uses inline compilation 10:46:48 alias generation of dynamic superinstructions 10:47:39 cool 10:51:42 Mat2: bit manipulation is a interesting topic and I hope that book explains it well 10:51:59 ok, buy it (it's not bad) 10:54:06 I have already bought it :) 10:54:23 lol 10:59:38 I this link should be of use for you also: http://en.wikibooks.org/wiki/X86_Assembly 11:01:17 and if you have questions, there's a forum at the flat assembler page: www.flatassembler.net 11:02:30 this is a wiki about OS development: http://wiki.osdev.org/Main_Page 11:03:05 I have those :) bookmarked already 11:04:46 time for lunch, ciao 11:05:47 --- quit: Mat2 (Quit: Page closed) 11:14:50 iphone sdk is ~3gb in size 11:16:58 lol 11:17:03 jup 11:17:06 yup 11:23:46 do any of the rst/html documents include images as of now? 11:26:23 no 11:27:29 shouldn't need them. just looking for something simple, w/images, to test a help browser. thanks 11:28:07 ok 11:29:17 what app do you use to create rst? 11:29:28 rst2html 11:29:31 err 11:29:33 nano 11:29:37 for editing 11:29:46 rst = plain text, with simple markups 11:29:55 converted to other formats with docutils 11:30:16 is there a plugin that makes rst easier, or just insert markup by hand? 11:30:25 I just do it by hand 11:30:38 * sixforty nods. thanks again 11:35:03 you're welcome 12:02:26 what words do i use to access the rstack 12:02:31 push, pop, r 12:02:40 r would be like r@ in ans 12:02:44 push like >r 12:02:47 and pop like r> 12:03:03 so if im doing tail calls 12:03:18 i can r> before i goto the next word so i dont rstack overflow right? 12:04:01 example? 12:04:12 one second 12:16:21 crc how is the in out coming 12:20:09 --- join: virl (~virl__@chello062178085149.1.12.vie.surfer.at) joined #retro 12:22:03 in out? 12:26:12 words 12:26:56 in and out words are finished for a long time 12:27:14 and I'm not adding any new I/O devices currently 12:27:43 my main goal is just to get documentation needs taken care of 12:29:29 ah ok 12:32:15 where does r> pop the return too 12:32:22 the data stack 12:32:33 so if i call a drop it will dispose of it 12:32:34 ? 12:32:37 yes 12:32:39 pop drop 12:32:42 to discard TORS 12:33:02 r> drop ? 12:33:07 or literally pop drop 12:33:15 in retro, it'd be "pop drop" 12:33:22 oh ok 12:33:27 in ANS, it'd be "r> drop" 12:34:00 : inf dup cr . 1 + pop drop inf ; 12:34:15 and now it works without overflowing stack 12:34:29 you could also use repeat/again loop here 12:34:37 : info repeat dup cr . 1 + again ; 12:34:54 how do you break out of a repeat again loop 12:35:12 ;; in a conditional 12:35:20 or 0; 12:35:54 e.g, 12:35:55 : words last repeat @ 0; dup d->name type space again ; 12:36:06 0; will exit the word when TOS=0 12:36:21 * zachk goes to eat some food 12:36:42 : words last repeat @ dup 0 =if drop ;; then dup d->name type space again ; 12:37:50 what is ;; 12:37:57 return 12:38:06 it exits the word 12:38:21 so break 12:38:27 or return :) 12:38:29 erider: yes 12:38:48 I like the lightweight elegance of 0; 12:39:26 0; was my favorite thing in herkforth, so I stole it :) 12:39:41 and you can always use "not 0;" to exit on a true condition, right? 12:39:46 is it a bad think to use recursion in forth 12:39:57 docl: yes 12:40:11 erider: not if you're careful about the return stack overflow issue 12:40:35 erider: zachk's use of "pop drop" to avoid it works nicely IMO 12:40:36 hmm how can you be careful 12:40:53 erider: know how deep the recursion will be 12:41:06 erider: and plan returns, etc accordingly 12:41:18 : foo bar baz rdrop foo ; 12:41:35 mm, I had forgotton rdrop :( 12:41:55 that's a macro that compiles in "pop drop" right? 12:42:00 * crc seriously needs to catch up on sleep. I've gone without good sleep for far to many years.... 12:42:02 docl: yes 12:42:16 I was thinking about the factorial example 12:42:43 factorial will have limitations on the size of the returned value, depending on a forth's return stack depth 12:43:13 so it is not a get idea 12:43:17 to use 12:43:47 for a factorial? no. you'll get better performance with an iterative solution, and avoid potential crashes 12:44:04 recursive fib is simple and elegant, but not practical for real use 12:51:39 : foo depth 0; drop . foo ; 12:52:30 "0; drop" is like "not if ;then" 12:52:53 docl: not if; 12:53:08 oh, ok 12:53:22 nice 12:53:23 if; = if ;then = if ;; then 12:53:27 here is a interesting example ftp://ftp.taygeta.com/pub/Forth/Applications/ANS/uudecode.seq 12:53:29 so another shortcut 12:54:56 0; = dup not if drop ;then 12:55:08 ftp://ftp.taygeta.com/pub/Forth/Applications/ANS/lzss.fo 12:56:49 interesting links http://www.taygeta.com/forth.html 12:58:20 crc have a look a the forth implementation of tcp/ip stack 12:58:33 so 0; is mainly different from if; in that it doesn't consume the input unless it triggers an exit 13:00:08 hmm, "not 0;" would have the false condition on the stack afterwards if it doesn't exit 13:00:18 erider: what aspect in particular? 13:00:49 docl: so "not 0; drop", or "not 0; not" 13:01:26 but what if you are testing against other true values besides the standard -1? 13:01:40 use if 13:01:47 the aspect of being able to implement the tcp/ip stack for a system without it 13:02:20 : 1; dup if drop ;then ; 13:02:45 erider: the only tcp stuff I see there is for interfacing with a host system's tcp/ip interface 13:02:50 erider: not a full tcp/ip stack 13:03:16 docl: you'd have to rdrop before ;then 13:03:20 docl: to exit the caller 13:03:32 Taygeta Scientific has developed a native Forth TCP/IP protocol stack that is written entirely in ANS Forth. This implementation includes IP, TCP, UDP, and ICMP. It uses SLIP or PPP interface layers and provides an API based upon the BSD socket interface. It is designed to be easily subsettable, by setting some compiletime switches, so that only a portion of the full protocol can be used if... 13:03:34 ...that is desired. 13:03:53 erider: and there's no code posted for it 13:04:40 there are tarballs 13:04:52 not for that interface 13:05:52 erider: the code in the tarballs interfaces with the host oses tcp/ip stack, and doesn't create one purely in forth 13:06:00 ah I see what you are saying 13:07:24 crc sorry I just read the intro and that is what I understood to be advertised 13:07:33 ok 13:08:29 but it would have been neat to see that implementations in forth 13:09:03 it would be neat to see some device driver code in forth 13:16:55 http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel/forth/device/display.fs 13:18:27 http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel/forth/util/pci.fs 13:18:54 these are from openbios (open firmware, a low-level forth for replacing a BIOS) 13:19:47 thanks crc hey what do you think about uudecode and uuencode utilities in forth 13:22:24 crc defer is part of the top-down model right? 13:22:52 defer is like retro's vectored execution 13:23:09 it lets you make a name/generic word that can be changed later 13:23:40 uuencode/decode are ok 13:23:57 * crc hates the CAPS but they are required by ANS :( 13:26:40 with "is" 13:26:52 yes 13:27:34 crc very clean code and inspiring as well 13:32:11 crc very easy to follow and it didn't have a bunch of words that are not familiar 13:32:32 : 1; dup if drop rdrop ;then ; 13:32:34 : foo key 32 - 1; foo ; 13:32:41 good use of variable 13:32:54 docl: that should work 13:33:31 rdrop I guess drops on the return start 13:33:43 erider: basically 13:33:50 erider: rdrop = same as "pop drop" 13:34:05 so I guess the 1; is like a break 13:34:20 yes, break if tos <> 0 13:35:03 so in my example, anything other than space will cause it to exit the loop 13:35:20 what is ;thne 13:35:25 ;then 13:35:32 erider: same as ;; then 13:36:50 990mb downloaded, 2.1gb left :( 13:38:05 docl: that works in reva too 13:38:35 cool :) 13:38:44 docl: why do you need the ;then in that case and not just then 13:40:37 now that you mention it, it doesn't look necessary in this case 13:41:10 ;then is useful when you have code after it that you don't want executed unless the condition is false 13:42:27 crc what are you downloading 13:42:52 --- join: Mat2 (~5f59088e@gateway/web/freenode/x-saxfguvbroxlnlnr) joined #retro 13:43:04 hello again 13:43:15 : 1; dup if drop rdrop then ; seems to work 13:43:17 hi Mat2 13:43:21 docl: yeah it works without ;then 13:43:29 hi docl 13:43:35 hey Mat2 13:44:28 searching for alternate conditionals ? 13:44:35 yeah 13:45:08 I found the colorforth style useful: 13:45:36 Mat2: http://graphics.stanford.edu/~seander/bithacks.html#InterleaveBMN 13:45:50 http://graphics.stanford.edu/~seander/bithacks.html#OperationCounting 13:45:55 : if ... ; ... ; 13:46:57 hmm 13:47:09 is the first ; an else statement? 13:47:29 no it's like ;; in retroforth and exit in ANS 13:47:49 for retroforth: 13:48:16 : name if ... ;; ... ; 13:48:24 ups sorry 13:48:28 that is wrong 13:48:46 0; is useful in more contexts than 1; 13:48:53 : foo key 32 - 0; 32 + emit foo ; for example 13:49:04 (exit only if it is a space) 13:49:13 : name if ... ;; then ... ; 13:50:12 *colorforth have no else* 14:03:39 erider: sthe stanford link is nice 14:04:53 retro only recently gained an 'else' 14:06:48 hi crc 14:09:53 crc that is some clean code man! very inspirational 14:27:44 crc: I cant metacompile retro with the current sources on my Pentium4 box (OpenSuse 11.2) -> core dump 14:29:20 can't 14:30:33 odd 14:30:46 does build.log contain anything? 14:33:37 no build log created 14:34:03 cd image 14:34:27 ../retro --with source/final.retro --with source/core.retro --with source/meta.retro 14:35:39 ok, that works, make core dumped 14:36:18 there's no "make core" in current sources 14:36:55 no I mean the make program doesn't work 14:37:07 what version of make? 14:37:24 3.81 14:37:43 smae version I'm using 14:37:59 * crc doesn't have opensuse to test against 14:38:11 can be one of these syntax differences 14:39:26 *Mat2 can't keep track of syntax pitfalls between BSD make, gmake, cmake .. make* 14:39:38 Treebeard:image charleschilders$ make --version 14:39:39 GNU Make 3.81 14:40:34 make --version GNU Make 3.81 14:42:07 make[1]: *** [image] Fehler 139 14:42:17 Fehler -> error 14:43:04 make[1]: Leaving directory `/home/retro-10.4/image' 14:43:51 cd image 14:43:51 make 14:44:13 Mat2: how you doing on memory/swap space? 14:44:58 1 % in use 14:45:24 768 MiB 14:46:05 56 % on / free 14:46:50 http://tldp.org/FAQ/Linux-FAQ/error-messages.html#make-says 14:47:52 look at the "bitwizard" link especially 14:50:21 thanks, but for all other sources (gforth etc.) this error does not happen 14:51:25 gcc shouldn't be used after the makefile leaves the vm directory 14:52:37 ok, the problem is && 14:52:57 @cd image && make 14:53:19 what shell? 14:53:49 sh 14:54:01 which sh? :) 14:54:05 use bash or ksh 14:54:19 it works with ksh 14:54:32 * crc has only tested with bash and ksh 14:54:47 --- quit: erider (Ping timeout: 256 seconds) 14:55:23 so better lensre one of both is running 14:55:27 ensure 14:55:31 it's hard to test with sh, as bash-called-as-sh just isn't very sh 14:55:39 I will try with csh 14:55:47 it'll work 14:55:52 Mat2: how can I set the shell using make? 14:56:49 for gmake I don't know 14:59:34 set SHELL = ksh for example 15:00:59 the documentation says you should set SHELL in the makefile 15:01:09 http://www.gnu.org/software/make/manual/make.html#Choosing-the-Shell 15:03:00 there was no SHELL variable set so make has assume sh as shell 15:03:31 does bsd make have -C parameter? 15:04:05 note: I gave up on *bsd, or I'd tell ya 15:04:11 ok 15:04:26 I'll use -C, and test on bsd after I get it setup under vmware again 15:04:34 #netbsd would be happy to tell you 15:05:44 bsd make have -C 15:06:00 ok, I'll switch the makefiles to use -C instead of && 15:07:11 *these damn make concept sucks* 15:07:49 ok, git repo updated with -C usage 15:08:05 if I do a 10.4.x release, I'll change the makefiles there too 15:08:42 crc: have you considered to use SCons ? 15:09:14 http://www.scons.org/ 15:09:30 so, if I use dd outfile>vm to bootstrap a vm ('cause I'm a flake), then I should be able to get an image from there by typing the remaining commands in the Makefiles, without having a C compiler? 15:10:03 make that "bootstrap a _vaild_ vm" 15:11:22 sixforty: there are non-C implementations of the vm 15:12:21 ok, so what besides one of those is needed to compile the image? 15:13:09 you need a console vm implementation 15:13:24 that's it, if you can pipe or use --with to get the files into the vm 15:14:09 Mat2: I've looked at scons briefly in the past 15:15:08 ok, why have you choosen make ? 15:15:32 I don't know python 15:16:25 I basically use make in place of shell scripts 15:16:52 the actual building of the c stuff is done by a custom build script in vm/tools 15:23:44 ok I have now a retroImage but without some words like words if else etc. 15:23:50 crc: why is the value passed to push from execute one less than the xt? 15:24:06 docl: due to the way the vm increments the ip register 15:24:56 ahh 15:25:16 crc: can you give me a link to a workin retroImage please ? 15:25:24 http://retroforth.org/retroImage 15:25:59 thanks 15:26:03 works fine 15:27:38 that's the same image I'm using 15:28:17 Mat2: you could implement vectors with a single cell that holds the address, which is skipped by execute if it is zero. 15:28:37 but that would probably be less efficient at runtime, is my thought 15:29:27 docl: if you haven't done so, please pull from the assembla repo and build a new 'retro' binary; I need more testing done against the latest changes (optimizations related to vectors) 15:29:50 cool 15:30:18 how can I test them? 15:30:35 --- quit: Mat2 (Ping timeout: 248 seconds) 15:30:35 just use the new binary in place of the old one 15:31:00 ok 15:31:02 it's designed to skip the two leading nop's during calls/jumps, unless they are replaced by a jump 15:31:24 It appears to work ok, but I'd like more usage to see if it causes any odd problems to arise 15:31:54 --- join: mat2 (~5f59088e@gateway/web/freenode/x-dlvqcbcexekmunyc) joined #retro 15:32:05 docl: with this loaded, the number of NOP instructions processed during metacompile goes down to around 14,000 15:32:21 nice 15:32:39 back from crash 15:34:50 docl: as compared to over 3,000,000 with the old vm implementation 15:34:57 woah! 15:34:57 wb Mat2 15:35:08 I'm not seeing any differences so far 15:35:18 good 15:35:24 thanks 15:36:21 crc: the fastest ngaro executable: Pentium 4 ~ 8.521s with patched .word class 15:36:36 AVM 5.692 15:37:02 gForth (itc): 6.755 15:37:40 gforth: 5.280s 15:39:49 ok, time for some sleep, ciao crc, docl 15:40:07 and all others 15:40:14 goodnight mat 15:40:22 --- quit: mat2 (Quit: Page closed) 15:51:52 nite 15:52:01 --- quit: sixforty (Quit: Leaving.) 15:55:48 --- join: Shain (~steve@32.176.32.141) joined #retro 16:06:43 --- quit: Shain (Quit: ircII+tkirc2) 16:49:05 --- quit: virl (Read error: Connection reset by peer) 17:08:17 --- quit: SimonRC (Ping timeout: 246 seconds) 17:11:36 --- join: SimonRC (~sc@fof.durge.org) joined #retro 18:19:41 --- quit: SimonRC (Ping timeout: 246 seconds) 18:27:02 --- join: SimonRC (~sc@fof.durge.org) joined #retro 18:55:00 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 18:55:08 --- quit: erider (Changing host) 18:55:09 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 20:07:32 crc does retro have closure 20:44:30 --- quit: erider (Ping timeout: 272 seconds) 22:26:19 crc: is the jump instruction strictly necessary as part of the vector? 22:28:43 seems like it could just check if it is zero (nonvector) and assume a nonzero value at the address needs to be followed. 22:31:20 : foo ( a-a ) dup @ 0 =if 1+ else @ then ; 22:35:46 --- join: probonono (~User@unaffiliated/probonono) joined #retro 23:59:32 --- join: virl (~virl__@chello062178085149.1.12.vie.surfer.at) joined #retro 23:59:59 --- log: ended retro/10.02.06