00:00:00 --- log: started retro/12.02.09 00:21:50 --- quit: virl (Remote host closed the connection) 02:55:54 --- join: retro-commits (~retro-com@50-57-128-197.static.cloud-ips.com) joined #retro 02:55:55 [retro-language] crcx pushed 2 new commits to master: http://git.io/hMGADw 02:55:55 [retro-language/master] Update from upstream. - Oleksandr Kozachuk 02:55:55 [retro-language/master] pull arduino updates from ok2 - crc 02:55:55 --- part: retro-commits left #retro 07:54:22 --- log: started retro/12.02.09 07:54:22 --- join: clog (~nef@bespin.org) joined #retro 07:54:22 --- topic: 'Retro Language | http://retroforth.org | Logged @ http://rx-core.org/dev/rancid | Latest Release @ http://s3.retroforth.org/download/11.x/retro-11.2.tar.gz | Repo @ https://code.launchpad.net/retro-language | Blog @ http://rx-core.org/dev/corpse | Donations @ https://www.wepay.com/donate/179527' 07:54:22 --- topic: set by crc!~quassel@li125-93.members.linode.com on [Mon Jan 16 05:01:30 2012] 07:54:22 --- names: list (clog @crc karswell C-Keen scj SimonRC yiyus_ ivan`` oPless @ChanServ ok2) 08:06:24 --- join: virl (~virl__@85-127-156-180.dynamic.xdsl-line.inode.at) joined #retro 08:33:11 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 08:44:25 hi all 08:45:10 crc how do you setup uninitialized memory without .comm or .lcomm? 09:00:54 I don't think I've ever used .comm or .lcomm 09:01:39 crc: so have do you define memory 09:02:24 crc: so what I am trying to do is make a stack 09:03:20 so I got .comm stack 1000,4 09:03:41 How would you do that without .comm 09:07:02 under fasm I used something like: 09:07:06 section writeable executable 09:07:18 stack rb 4000 09:08:02 rb is like .comm 09:08:07 this may not work with other assemblers though 09:08:33 I am using gas but later I would like to convert to tinycc assembler 09:08:38 I have only a little experience with assemblers other than fasm 09:09:54 short of doing stack: .byte 0,0,0,0,0... 09:13:31 this may help: http://lists.libreplanet.org/archive/html/tinycc-devel/2007-05/msg00201.html 09:15:58 yes I was just looking at http://sourceware.org/binutils/docs/as/Space.html#Space 09:20:49 crc: thanks I am going to give that a try 12:13:04 --- join: Kumul (~Kumul@67.224.209.208) joined #retro 13:05:00 hi all 13:12:48 * crc is exploring possible alternative means of implementing quotes 13:27:55 crc: what are you thinking so far 13:44:22 use of a helper function (named "quote") to replace the need to lay down a jump and a literal. Would save three cells per quote and reduce the image to under 8700 cells 13:45:15 cells are 4 bytes each? 13:46:34 2, 4, or 8, depending on the bit size of the target platform 13:46:57 most common (default) is 4 bytes/cell 13:47:15 so 4*8700 then? 13:47:21 --- join: retro-commits (~retro-com@sh1-ext.rs.github.com) joined #retro 13:47:21 [retro-language] crcx pushed 2 new commits to master: http://git.io/Kqucug 13:47:21 [retro-language/master] add 'quote' and new implementation of quotes; image down to 8666 cells - crc 13:47:21 [retro-language/master] update javascript images - crc 13:47:21 --- part: retro-commits left #retro 13:47:23 yes 13:48:12 are you taking a lot of space in the dictionary 13:48:17 plus some space is needed for string buffers (see http://rx-core.org/dev/corpse/article/169) 13:49:42 basically, a minimal build (16-bits, with ^diet'extreme for the string buffers) will use about 9.5-10k cells 13:51:03 I can run in 32KiB of physical memory on ARM under a 16-bit VM, with around 4-5K cells (8-10KiB actual RAM) free for application use 13:54:52 maybe you can reduce the size of the stacks 13:58:20 that saves a little 13:58:46 I use 32 cells for data, and 128 or 192 for addresses on embedded targets 13:59:45 I would say you don't need a large stack 14:00:17 I think you handle loops with jmps right 14:00:22 address stack needs some depth 14:01:08 I'll hit 50-60 elements on that easily 14:01:31 why some many 14:01:45 deep nesting of function calls 14:02:07 quotes are functions, combinators are functions, etc 14:02:20 stats from displaying the main page of corpse: 14:02:21 Max SP: 18 14:02:21 Max RSP: 58 14:02:36 so you are making a new stack frame for each call? 14:02:59 no frames, just addresses added/removed from the address stack 14:03:15 since we don't have local variables, we avoid frames 14:04:36 yeah you don't need local variables 14:05:28 anything recursive will use a lot of address stack (e.g., displaying the stack contents) 14:06:08 putting and displaying 100 values on the stack: 14:06:09 Max SP: 111 14:06:09 Max RSP: 213 14:07:46 even just starting and immediately exiting uses a fair bit: 14:07:47 Max SP: 6 14:07:47 Max RSP: 13 14:07:50 do you have anymore wiggle room on size 14:08:25 there's always a tiny bit of room 14:09:07 but it's to a point where I have to decide if I want to sacrifice readability and performance for possible tiny gains in image size 14:09:23 is it the vm that is the size hog 14:09:24 --- quit: Kumul (*.net *.split) 14:09:48 --- join: Kumul (~Kumul@67.224.209.208) joined #retro 14:10:11 the vm sizes vary. on my mbed, the vm consumes around 30KiB of ROM and 8KiB, which isn't too bad given that it's using the libraries included with the mbed sdk 14:12:45 that is not bad at all, then what is your issue 14:13:43 it's not too bad now. but when I first started, the image was a lot bigger, and the VM was less optimal. The early builds for mbed only had a couple hundred cells free for user code 14:17:01 ok2 is working on arduino implementation of the VM, which supports boards with less RAM. 14:19:48 I guess you need to decide if you need to rewrite it for that systems or leave it alone :) 14:20:10 same image, different vm implementations :) 14:21:16 the base image is the same for everyone, there are optional vocabularies specific to each platform, but the core language and image is consistent across all supported systems 14:22:00 crc: hey do you have a very simple forth like language that is less then 300 line of c or do you know of one 14:22:41 well I guess it would be the bootstrap code 14:28:24 I used to have something, but am not sure where the source is now 14:29:40 :( 14:31:59 crc: do you know any links to anything? 14:45:51 --- quit: erider (Remote host closed the connection) 14:46:15 --- join: erider (~chatzilla@pool-173-69-151-233.bltmmd.fios.verizon.net) joined #retro 14:46:37 --- quit: erider (Changing host) 14:46:37 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 14:46:55 back 14:50:33 crc: is it hard to write a compiler or a interpreter 15:15:52 depends on the language 15:25:33 a simple compiler ia easy. something with lots of syntax is hard 15:47:52 yeah 16:00:25 toka took a couple of months to write, working aan hour or so each evenkng 16:02:09 adding a compiler to retro 10 took around an hour to write and test 16:02:26 I am looking for something real small 300 line or less 16:28:15 crc: over than that what else is going on 16:28:41 have you built a reboot yet that you can program with retro 16:57:56 --- quit: Kumul (Quit: gone) 17:28:42 --- quit: erider (Quit: ChatZilla 0.9.88 [Firefox 9.0.1/20111220165912]) 21:55:46 --- quit: yiyus_ (Ping timeout: 240 seconds) 21:55:53 --- quit: SimonRC (Ping timeout: 244 seconds) 21:56:24 --- quit: ivan`` (Ping timeout: 244 seconds) 22:00:03 --- join: yiyus (1242712427@je.je.je) joined #retro 22:02:30 --- quit: oPless (*.net *.split) 22:02:30 --- quit: ok2 (*.net *.split) 22:07:39 --- join: ok2 (ok2@kozachuk.info) joined #retro 22:07:57 --- join: oPless (~oPless@lart.doosh.net) joined #retro 22:08:14 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 22:14:14 --- join: SimonRC (~sc@fof.durge.org) joined #retro 22:31:53 --- join: karswell_ (~coat@93-97-29-243.zone5.bethere.co.uk) joined #retro 22:33:22 --- join: ivan``_ (~ivan@unaffiliated/ivan/x-000001) joined #retro 22:33:49 --- join: virl__ (~virl__@85-127-156-180.dynamic.xdsl-line.inode.at) joined #retro 22:34:03 --- quit: ivan`` (Ping timeout: 248 seconds) 22:34:03 --- quit: yiyus (Ping timeout: 248 seconds) 22:34:04 --- quit: virl (Ping timeout: 248 seconds) 22:34:04 --- quit: karswell (Ping timeout: 248 seconds) 22:34:05 --- nick: ivan``_ -> ivan`` 22:35:11 --- join: yiyus (1242712427@je.je.je) joined #retro 22:57:45 --- quit: SimonRC (Ping timeout: 240 seconds) 22:58:36 --- join: SimonRC (~sc@fof.durge.org) joined #retro 23:05:14 --- quit: SimonRC (Ping timeout: 240 seconds) 23:07:24 --- join: SimonRC (~sc@fof.durge.org) joined #retro 23:59:59 --- log: ended retro/12.02.09