00:00:00 --- log: started retro/12.10.28 00:28:27 woohoo! 10 passing tests, showing that retro.py, retro.c, and retro.pas all work the same way for 8 opcodes. :) 00:30:45 pushed to lp:~tangentstorm/retro-language/docwork under test/ngaro 00:30:55 i think i'm gonna call it a night. later all. 00:30:58 --- quit: tangentstorm (Quit: leaving) 00:43:17 --- quit: karswell (*.net *.split) 00:43:22 --- quit: foucist (*.net *.split) 00:43:29 --- quit: oPless (*.net *.split) 00:43:42 --- quit: ivan`` (*.net *.split) 00:44:37 --- quit: yiyus (*.net *.split) 00:44:37 --- quit: saper (*.net *.split) 00:53:32 --- quit: docl (*.net *.split) 01:31:34 --- join: docl (~docl@unaffiliated/docl) joined #retro 01:41:01 --- join: foucist (~foucist@ps14150.dreamhost.com) joined #retro 01:41:01 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 01:41:01 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #retro 01:41:01 --- join: saper (saper@wikipedia/saper) joined #retro 01:41:01 --- join: oPless (~oPless@lart.doosh.net) joined #retro 01:41:01 --- join: yiyus (1242712427@je.je.je) joined #retro 01:59:47 --- join: obobo (~chatzilla@dyn-dsl-ly-98-124-43-42.nexicom.net) joined #retro 01:59:47 --- join: timg (~timg@pool-71-180-13-77.tampfl.fios.verizon.net) joined #retro 02:08:45 --- quit: obobo (*.net *.split) 02:08:54 --- quit: timg (*.net *.split) 02:11:09 --- join: obobo (~chatzilla@dyn-dsl-ly-98-124-43-42.nexicom.net) joined #retro 02:11:09 --- join: timg (~timg@pool-71-180-13-77.tampfl.fios.verizon.net) joined #retro 02:34:45 --- quit: karswell (*.net *.split) 02:34:48 --- quit: foucist (*.net *.split) 02:34:54 --- quit: oPless (*.net *.split) 02:35:11 --- quit: ivan`` (*.net *.split) 02:35:38 --- quit: yiyus (*.net *.split) 02:35:48 --- quit: saper (*.net *.split) 02:38:53 --- join: foucist (~foucist@ps14150.dreamhost.com) joined #retro 02:38:53 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 02:38:53 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #retro 02:38:53 --- join: saper (saper@wikipedia/saper) joined #retro 02:38:53 --- join: oPless (~oPless@lart.doosh.net) joined #retro 02:38:53 --- join: yiyus (1242712427@je.je.je) joined #retro 02:39:41 --- quit: SimonRC (Remote host closed the connection) 02:41:25 --- join: SimonRC (~sc@fof.durge.org) joined #retro 02:45:41 --- quit: docl (*.net *.split) 02:56:26 --- join: docl (~docl@unaffiliated/docl) joined #retro 06:23:02 --- join: ncv (~quassel@89.35.216.197) joined #retro 06:23:02 --- quit: ncv (Changing host) 06:23:02 --- join: ncv (~quassel@unaffiliated/neceve) joined #retro 09:59:07 --- join: kumul (~kumul@173.215.130.73) joined #retro 12:37:08 --- quit: timg (Ping timeout: 245 seconds) 12:46:16 --- join: timg (~timg@pool-71-180-13-77.tampfl.fios.verizon.net) joined #retro 12:49:13 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 13:18:44 --- join: Z_Mass (~zachary@bas1-cornwall24-1242467096.dsl.bell.ca) joined #retro 14:08:18 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 14:08:23 good afternoon 14:10:35 afternoon Mat2 :) 14:10:44 hi kumul ! 14:10:53 i guess this means you wont go to sleep in the middle of a very interesting conversation 14:11:50 sorry, about what ? 14:15:51 i've spend some frustrations with the SDL library 14:19:55 crc: The bitmap fonts in retro 10, was there your own creation ? 14:23:59 --- quit: ncv (Ping timeout: 260 seconds) 14:27:31 lol kumul :) 14:27:51 what's happening with sdl, mat2? 14:30:47 hi tangentstorm 14:31:19 only some little API changes in the new 2 version 14:31:50 I've been working on that ngaro test suite. So far, it tests retro.py, retro.c, and retro.pas... And I've got 18 tests passing on all 3. 14:32:23 and I guess there work identical 14:32:34 yep, or the tests would fail! 14:33:14 i'm pretty sure there's a problem in retro.py somewhere. it was crashing on me when i was messing with the help text 14:33:28 ( but the c version worked with the same code ) 14:33:55 lots of bugs in my pascal version, but i'm whipping it into shape :) 14:34:16 that can be an implicit side effect of the phyton vm 14:34:51 it's got to read about your progress 14:35:01 Mat2: I've already got some character drawing code in javascript and coffeescript 14:35:26 you mean python's own virtual machine? 14:35:30 yes 14:36:05 I work on something like a soft processor for text and later graphic generation 14:36:06 could be. i don't remember what i did to cause the problem or i'd debug it. 14:37:31 this would allow a lot more control above simple bitmap based functions 14:38:09 Like what? 14:38:09 like resolution changes, blit and screen split effects, palette changes and so on 14:38:37 vsync control 14:38:52 interesting 14:39:22 I'm still planning to use Aggpas. I'm pretty sure it has truetype in there. 14:39:48 it has 14:40:03 it does all its work on arrays, so it should work with any display technology. 14:42:24 I plan to port my vm to at least two boards, the arduinomite and my new raspberri pi 14:42:40 Mat2: are you still using the same basic protocol for I/O as ngaro? 14:43:02 no, i'm using a syscall like interface 14:43:23 crc mentioned wanting to revamp the i/o protocol 14:43:49 where would i look in your code to see it? 14:43:57 the vm should run on bare metal, so I can not use antigrain or cairo 14:44:24 under sources (the interpreter-.. files) 14:47:25 i don't understand what i'm looking at :) 14:48:21 look at the mSYS macro, it is at current a stub but I upload the complete interface this week 14:49:10 each parameter execute as independent thread if finished 14:49:12 so it would be like SYS 0 = halt SYS 1 = clear screen 14:49:19 yes 14:49:42 SYS 2 = init text mode 14:49:49 SYS 3 = init graphic mode 14:50:05 SYS 4 = init semigraphic mode 14:50:08 you said a while back there were 16 opcodes but this looks like a lot more... ? 14:50:53 this is one opcode with an immediate parameter 14:51:31 like LI (load literal) 14:52:23 i mean https://www.assembla.com/code/avm/git/nodes/master/sources/interpreter-dtt32.h#ln242 14:52:44 is that every combination of 2 ? 14:53:00 yes 14:53:08 oh :) 14:53:38 the interpreter fetches instruction bundles, not single instructions 14:54:19 so you don't have to do a lot of shifting at runtime. makes sense. 14:54:27 the code format is defined in a way up to 16 instructions can be freely combined for interpretation 14:54:47 my current version bundles 2 instructions 14:57:10 whereby an opcode is a packed bundle of either 8 instruction bundles (64 bit cell size) or 4 (32 bit) 14:59:16 neat 14:59:16 so the interpreter only need 1 load operation for 8 or 4 bundles which are cached in a cpu register 15:00:07 it is an ISA for efficient interpretation 15:00:28 and this means minimisation of the interpretation overhead 15:01:14 it really works a bit like a MISC cpu 15:03:00 the whole syscall interface will work asynchron and parallel (good for modern multicore cpus's) 15:09:35 i think this is neat but don't know what to do with it yet :) 15:11:52 I plan this as kind of soft core for implementing my own operation environment 15:12:54 i mean i don't know how to fit it in with what i'm doing yet. but i'm interested :) 15:14:20 so you may find this interesting 15:14:34 look, if you want to embed an platform independent forth like vm, that is one way to go in an performance effective way 15:15:11 yeah, that's why i like it :) 15:16:28 who knows, possibly I found a way one time to reprogram the microcode of these damn Intel cpu's and make it a cheap hardware solution :) 15:16:33 haha 15:17:10 Mat2: i'm kind of thinking about using your vm with google's NaCl to provide a super fast vm in the browser that isn't javascript 15:18:29 good idea but what is NaCl ? An JIT compiler ? 15:18:33 meanwhile: these tests i'm running... they average about 0.114s on my machine for retro.pas ... and 0.876s for retro.c 15:18:36 Native Client 15:18:46 ah ok 15:18:49 it lets your run intel machine code in google chrome 15:19:02 http://code.google.com/p/nativeclient/ 15:19:50 i don't know why the pascal version is faster. i'm kind of surprised. i expected it to be much slower, looking at the code. 15:20:00 maybe just startup time 15:20:07 thanks for the link, that is a good opportunity 15:20:16 do you use freepascal ? 15:20:25 yes 15:21:01 feeepascal compiles case constructs very efficient 15:21:04 retro.pas uses an array of pointers to procedures for opcode dispatch 15:22:08 whereas retro.c is using a case statement 15:22:30 i really thought the overhead of the procedure calls would slow things down 15:23:33 it may just be startup time though, because it's invoking a new copy of the executable on each test, and there are only a handful of instructions in each image 15:23:35 in C each function is called per double indirection and the function body's for stack frames must be compiled without some obscure optimisations 15:24:26 i've also got range checking and stack checking and stuff turned on in pascal 15:25:06 yes but pascal compiler can distinguish procedures from functions 15:25:47 because of the pascal syntax (that was the reason for it) 15:26:46 you can test this, let the compiler generate an assembler listing and look for the stack frames 15:27:52 good idea. i'll give it a try after i finish testing all these opcodes. 15:28:56 these NaCl feature is a nice way for web based programming 15:29:19 --- quit: timg (Read error: Connection reset by peer) 15:29:54 hmm, I need a good looking bitmap font 15:33:36 https://twitter.com/i/#!/tangentstorm/media/slideshow?url=pic.twitter.com%2FXLVRz0TX 15:34:02 that one came from escapes.js http://256.io/escapes.js/ 15:36:17 0 5 * 1 5 * 5 5 * retro.pas says: -5 -4 0 nice! :) 15:36:23 new math 15:36:32 thanks 15:37:23 uh, looks like your code does multiply signed values 15:37:24 i bet i copied and pasted the subtraction op :) 15:38:23 sorry add 15:38:33 procedure vm.oMUL ; begin data.push( -data.pop + data.pop ) end; 15:38:54 yay copy and paste :) 15:39:37 ... brings back the fun of obscure errors :) 15:41:03 i must have looked at that 20 times and not seen it 15:42:18 woohoo! and now it actually runs test/base.rx 15:42:27 good 15:43:02 oh, but core.rx fails. guess i still have work to do 15:43:30 I think its only a matter of one or two days 15:43:50 can you please give me a link ? 15:44:14 to pascal stuff? 15:44:16 oh sorry 15:44:41 https://github.com/sabren/b4/ 15:45:19 it's kind of a mess... retro.pas , ngaro.pas , and ng.*.pas have the vm 15:48:50 https://github.com/sabren/b4/blob/master/vm/ngterm.js has the character generator i made for ngaro.js 15:49:07 somewhere i have a coffeescript version that uses a typed array and should be a little faster 15:51:19 can I use the font data ? 15:52:36 --- quit: Z_Mass (Quit: Leaving) 15:55:04 oh, that is the VGA rom font I see 15:56:08 i think you're right 15:57:51 where have you found it ? 15:59:47 i took it from the code for that escapes.js ( an ansi art terminal for javascript ) 16:00:00 but i think you're right. it's probably originally came from the standard vga font 16:00:39 the ngterm.js link i posted at 17:48 has the data at the bottom 16:02:15 I have found the font of the atari800 series 16:02:20 quite nice 16:02:44 but sadly only 7x8 16:07:54 i have one i made in high school... don't have a screenshot though. it's just binary. 16:08:33 plan is to make a font editor in retroforth as one of my lessons 16:09:09 oh! terminus 16:09:45 your font editor will have a happy user: me ! 16:11:24 http://terminus-font.sourceforge.net/shots.html 16:11:33 that ships with debian. it's pretty nice 16:15:59 thanks, I know these fonts from NetBSD but does not know there bundled with debian 16:31:19 time for some sleep 16:31:21 ciao 16:31:28 --- quit: Mat2 (Quit: Verlassend) 17:39:35 yay! all 31 opcodes, plus the implicit "gosub" are now tested externally in ngarotest.py, and all 3 implementations with the --dump hook pass! :) 19:23:03 --- join: Z_Mass (~zachary@bas1-cornwall24-1242467096.dsl.bell.ca) joined #retro 20:21:26 --- quit: Z_Mass (Quit: Leaving) 22:45:13 --- quit: kumul (Quit: WeeChat 0.3.9) 23:59:59 --- log: ended retro/12.10.28