00:00:00 --- log: started retro/12.08.21 03:51:26 jyfl987: I prefer it on the right; no functional reasons (right handed) 05:25:18 --- quit: karswell () 06:24:58 --- join: Kumul (~Kumul@67.224.129.123) joined #retro 08:14:26 --- quit: Kumul (Remote host closed the connection) 08:26:09 --- join: tangentstorm (~michal.wa@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 08:26:21 hey all 09:29:10 hi tangentstorm 09:29:59 hi crc :) 09:30:38 The color terminal for javascript is pretty much working now 09:31:51 is launchpad still the main place to send patches? (i've found github and i think 2-3 fossil repos) 09:33:41 http://i.imgur.com/ZOPV1.png 09:35:24 launchpad is the main repo. the github is inactive, and the fossil repos are old and unsupported now 09:36:16 nice 09:36:25 cool... well, then there'll be a submission coming your way before too long 09:37:25 this version doesn't scroll when you write to the lower right hand corner... that's intentional, because i'm treating it as a psuedo-graphical display... i'm thinking i might add something to the protocol to toggle that 09:58:35 --- join: impomatic (~digital_w@87.114.37.21) joined #retro 10:26:38 --- join: Kumul (~Kumul@67.224.129.123) joined #retro 11:32:14 in your screenshot, you could simplify rand to: : rand push ^math'random pop mod ; or : rand [ ^math'random ] dip mod ; 11:37:00 oh nice. yeah, i printed out the function list but haven't gotten around to studying it too carefully... i'm juggling way too many things at the moment :/ 12:30:17 --- quit: tangentstorm (Ping timeout: 248 seconds) 13:20:46 hi all 13:22:23 hi erider 13:24:00 hi crc 16:16:56 --- join: arescorpio (~arescorpi@2001:5c0:1400:a:8000:0:be10:eff8) joined #retro 16:17:20 --- part: arescorpio left #retro 16:45:36 --- part: impomatic left #retro 17:13:08 hi all 17:16:09 hi 17:16:20 * crc is working on random number generators 17:24:22 * erider is trying to figure out how : is coded in c 17:25:58 in which forth? 17:26:31 in a forth language like language I am working on 17:27:49 I am using this design but not obfuscated 17:27:58 http://www.ioccc.org/1992/buzzard.2.design 17:36:05 https://gist.github.com/3420880 first two random number generators. I'm looking into adding a mersene twister to the mix, but this will be harder 17:39:48 --- join: tangentstorm (~michal.wa@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 17:55:00 do you have a pointer to a non obfuscated source? 18:03:43 crc: no 18:04:38 I am trying to rework it, to try to understand the opcode it is building on the fly 18:05:06 erider: can i see? 18:05:49 tangentstorm: http://www.ioccc.org/1992/buzzard.2.c 18:06:02 in r(x), the 0 case 18:06:40 the outcome is pretty code 18:08:37 nice 18:09:33 the case is one of the internal primitives 18:10:07 I think it is pushint 18:11:23 it's pushing something onto a stack 18:11:23 case 1 is compile me and case 2 is run me I think 18:12:14 and then f seems to be some kind of read pointer? 18:12:39 no.. some kind of general purpose register, and I is the intrustion pointer. 18:13:18 i think you're right... it's like LIT 18:25:29 crc: how is the retroImage made and does ngaro run any other images 18:26:04 ngaro can run any image with compatible bytecode in it. there just isn't anything big other than retro at the moment 18:26:19 an image is made using a cross compiler, or an assembler 18:27:35 examples/languages has an assembler, a brainf*ck compiler, and a simplisitc basic interpreter 18:32:39 you can also just hand code an image by typing the numbers into a hex editor or the retroImage.js file 18:32:51 true 18:33:02 my earliest images were hand coded 18:35:20 http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html <- "bootstrapping a compiler from nothing"... this is cool but you have to understand the format of executables... whereas if you use a nice virtual machine like ngaro you could simplify things considerably. 18:39:05 bootstraping from scratch is a pain, and almost never necessary 18:39:23 tell me about it :) 18:40:03 b4 == bootstrap forth :) 18:41:52 what's really sick is that i just ordered an FPGA so i can start at the transistor level... 18:48:38 I've thought about trying to do a custom cpu 18:51:00 nicklaus wirth (the pascal guy) wrote a little e-book about how he designed a RISC style register machine... then he updated his compiler construction book to target that machine 18:51:14 interesting 18:51:28 but he didn't really do the bootstrapping thing, and i think it would be a whole lot simpler with a stack architecture 18:52:33 erider : http://www.inf.ethz.ch/personal/wirth/ it's all free on his page there if you want to see it 18:59:07 what should I look at there 19:13:58 crc: how do you use the assembler.rx 19:29:26 erider: "FPGA work" has the RISC stuff... "compiler construction" has the compiler book. sorry, was afk 19:29:47 ok 19:30:20 thanks 19:31:34 erider: look at the bf.rx, it uses it 19:32:10 how to you write in ngavo 19:34:07 for the assembler, : prefix makes a label, label names push pointers to the stack. use # to compile a literal, or call/jump/etc to compile approriate bits of code. it's basically a cut down version of meta.rx 19:34:50 the commentary.txt in doc/ covers the metacompiler, so it'll be the best overall reference to building something 19:37:37 crc : so what's parable all about? 19:38:26 parable is basically a testbed for new ideas, and something that might map more closely to my current needs/wants 19:42:22 (reading your blog) how's the sliced memory model working out? 19:42:36 it probably won't be very useful to anyone other than me, but some bits will probably become part of retro12 19:42:45 so far it's not too bad 19:43:42 it's harder for some things, but it's definitely helpful in terms of being able to have more control over the final memory usage 19:45:03 if I get around to porting the runtime parts to embedded targets it should pay off nicely as I can discard all non-necessary bits and have a much smaller footprint 19:47:13 for the oberon system, wirth used something like this... but he basically made 5 sets of them, with fixed-sized slices... each set being a different size 19:48:20 the picolisp guy, on the other hand, basically said "screw arrays" and used cons cells for everything... then you simply can't have memory fragmentation, because everything is the same size. 19:50:11 both are kind of wasteful... but i can't decide if that waste is worth it to make the code easier to write and understand 19:51:01 I currently accept a good deal of waste; I can refine things once I have more code to run and analyize 19:52:22 * crc has recently noticed that the current ui for parable is almost identical to a console-based interface I had considered for retro years back 19:52:58 "hope to rewrite Ngaro in CoffeeScript for the next release of Retro." :) I was thinking of doing this too 19:54:04 I'm still hoping to do that 19:54:16 coffeescript is way nicer than raw javascript 19:55:12 it sure is :) 19:56:19 in the parable demo, i'd expect the little pen to edit the definition, and the book to show the documentation... but they both seem to just load the documentation... 19:58:00 the pen should bring up the source in the editor, the book should show the docs in a blue box above the input area/stack display 19:58:41 not working for me... might just be that i'm running aurora 19:59:20 ah, yeah.. chrome likes it :) 19:59:26 I'll have to check that tomorrow 20:00:10 I use a mix of opera, chrome, and safari, depending on device. I've tested it under IE8 and IE9 as well, but not anything gecko based 20:03:16 push and pop is done on the return stack? 20:04:33 yep 20:05:48 lit/dup and drop are kind of the equivalents for the main stack 20:06:32 --- quit: ivan``_ (Ping timeout: 276 seconds) 20:07:36 the interesting think is the image 20:08:14 ? 20:08:31 retroImage sorry 20:08:48 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 20:09:46 the image is only mildly interesting. it's just a flat memory dump 20:10:28 yeah but it is the language that is running on top of ngaro 20:10:48 I've begun thinking that future implementations of ngaro (or its successor) will change that to also store the current stack and internal register state 20:11:28 (I'm going to do this in parable, to allow a session to be completly suspended and resumed on other devices later) 20:13:27 crc : that was the entire reason i went looking for a virtual machine in the first place :) 20:14:47 also why i picked ngaro, specifically... you had all those implementations already built 20:17:14 I wrote the implementations to ensure that any computer I use can run retro with minimal effort 20:18:03 it was well worth the time 20:18:30 is the header information for a function store in the dictionary or is it mapped to the dictionary but in another array 20:19:55 in retro? 20:20:01 yes 20:20:26 it's a linked list, interspersed between code and data 20:23:26 ok so it is not in two different arrays 20:23:56 nope 20:24:21 erider : you may find this helpful https://github.com/sabren/b4/blob/master/ref/crc-retro-wisdom.org 20:24:31 the image is all one big blob of stuff 20:25:16 https://raw.github.com/sabren/b4/master/ref/crc-retro-wisdom.org 20:26:11 yeah it seems to me that you need to know how the internals work to get the most out of a forth like language 20:27:33 tangentstorm: thanks 20:27:39 --- quit: ivan`` (Ping timeout: 260 seconds) 20:30:34 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 20:39:42 some numbers in retro causes the compiler to be turned off? 20:41:06 like what? 20:41:24 ok 3 20:41:25 ok 4 20:41:55 that is not compiled it is just pushed on the stack 20:43:01 it should be compiled into LIT 0x03 LIT 0x04 20:43:08 if you're in a definition 20:43:11 only if the compiler is on 20:44:42 erider... ":" and "[" turn on the compiler... ";" and "]" turn it off... it's off by default... and if it's off, every word you type is executed immediately. 20:44:44 so the default behavior of the listener is to have to compiler state set to off? 20:44:49 yes 20:47:44 crc: the forth model hold the fn ref in the code, what about your retro lang? 20:47:56 ? 20:48:29 they hold the static fn ref after compiling 20:49:29 : say ." hello" cr ; : test1 say ; : say ." world" ; : test2 say ; test1 test2 20:50:27 retro would follow the forth model in this case 20:50:29 crc: i just wonder if there are any dynamic fn refering model so that both test1 and test2 could ouput " world" 20:50:53 (in the docs, this is described; it's a "hyperstatic global environment") 20:51:02 yep 20:52:05 jyfl987 : there are languages ( maybe even some forths? ) that work that way, but retro isn't one of them. 20:52:25 parable would be one where say is replaced by the latest definition 20:52:34 tangentstorm: so if some forth follow that model, how dare they call themself forth? 20:52:58 they probably don't 20:53:02 crc: :] 20:53:10 forth is a bit of a loose family of languages, not a rigidly enforced set 20:53:33 but there is ANSI standard, although i dont like it 20:53:46 e.g., retro is a forth, though it's highly non standard. factor could be considered a forth of sorts 20:55:17 that's good, how's parable's effecience? 20:55:24 where is parable hosted 20:55:51 i want to make a key-value database like redis while put a low level vm inside it 20:56:17 so that i could build any cmd by burning my firmware :] 20:56:43 want to give stack machine a try 20:56:46 jyfl987: parable is highly experimental and unfinished, but it's mot low level 20:56:50 erider : http://rx-core.org/parable/ 20:56:54 erider: on my servr 20:57:10 crc: then nagro? 20:57:11 tanget beat me (getting late here, amd I'm starting to gt tired) 20:57:22 i happened to have it open :) 20:57:23 jyfl987: that would be a better starting point 20:57:47 tangentstorm: I always have it open :) 20:58:04 :D 20:58:33 crc: will have a try, but my domain needs special extend opcode, while on nagro vm i seems need to impl that via service call? 20:59:10 you use it in the browser? 20:59:30 erider: yes 20:59:34 jyfl987 : the thing about forth is you don't have to know or care which words are primitive 21:00:09 jyfl987: it should be easy enough to add new bytecodes. none of the vm imoplementations are large or complex 21:04:09 crc: how do you run the demo 21:04:57 write code, click run :) 21:05:45 the pencil icon gives source for functions, the book documentation, and the other shows all dependencies w/source 21:06:02 it's a purely rpn based language 21:06:42 http://rx-core.org/parable/README gives some hints on syntax (prefixes, etc) 21:07:14 cool 21:07:32 http://rx-core.org/parable/doc has some stuff too 21:08:04 parable seems much more beginner-friendly than retro 21:09:57 tangentstorm: that'll increase soon; documentation files will be viewable within parable very soon 21:18:20 crc: did parable inspired by lighttable? 21:20:15 jyfl987: no. lighttable has some cool ideas, but it's not a direct influence 21:20:52 hey was coffee created in c 21:22:13 crc: then i mentioned that on the dictionary panel, there's much func under a ns, how about folder then? 21:23:25 crc: you could display the dictionary in folder style or tree style, so user could see number, and click on it or hover it, it could expend ,then you got number.odd? number.absolute 21:23:41 jyfl987: not a bad idea 21:25:38 this might let user quickly got a global view of the code if there's much library or fn in the dictionary, it wont cause the scroll bar smaller and smaller until that's too hard to operate it extractly 21:25:56 +1 on that idea :) 21:29:20 when i thinking on making a ide on android touchscreen device, i think this tree style display could let coder input less and just select the defined fn on the tree 21:32:12 goodnight all 21:32:34 night 23:25:35 --- quit: Kumul (Quit: gone) 23:34:34 --- quit: TheStitch (Ping timeout: 246 seconds) 23:59:59 --- log: ended retro/12.08.21