00:00:00 --- log: started retro/12.10.27 00:39:08 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 00:44:09 anyone awake in here? 00:45:21 i'm working on the test suite for ngaro, and starting to suspect that the "loop" opcode is never actually used anywhere. 00:49:18 hmm. okay. i take that back. it's just never used by name. 00:51:38 bbl 00:51:39 --- quit: tangentstorm (Quit: leaving) 05:59:55 foucist: I'm not afraid of colorforth, I just prefer punctuation 06:05:45 I implemented a colorforth mode over retro in the past, but never really found a use for it 06:06:42 (as an aside, the prefixes in parable [and to a lesser degree, retro] correspond generally to the use of colors in colorforth) 07:22:21 --- quit: ivan`` (Ping timeout: 246 seconds) 07:24:17 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 12:17:09 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 13:27:47 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 13:27:52 hello 13:30:01 heya :) 13:32:10 hi tangentstorm 13:32:28 the parallela funding has reached his goal 13:36:31 I think about buy one board (64 cores + an ARM dual core and 1 gB ram is very attractive) 13:40:00 yeah i saw that ! :) 13:40:21 i'm interested in it. i just don't have any money coming in at the moment. 13:41:39 there plan to offer there board for less than $100 13:41:53 let us see 13:42:04 i think he said $99 in the video 13:42:38 still out of my price range ... i stopped doing client work a while back to focus on this project, so i'm like... dirt poor at the moment :) 13:45:05 ups 13:45:50 seems I'm not the only one with flexible time management :) 13:47:14 an alternative would be this: 13:47:18 http://www.duinomite.com/ 13:58:54 tangentstorm: I have assembled a small interface for handling text and semigraphic though a character and a attribute map. Have you some special requirements for text processing ? 14:06:46 not sure what you mean 14:08:25 actually, i do have special requirements :) 14:08:53 lately, i've been making pretty heavy use of the 32 lowest ascii characters 14:09:43 for terminal control ? 14:09:55 in particular ^A, ^B, ^C ( for hierarchical documents, like lisp/xml ), ^G ( as sort of a "todo" marker ), ^L for page breaks in code 14:10:26 and characters 28, 29, 30, 31 for tabular data 14:10:40 also terminal control though, yeah ( character 27 / escape ) 14:11:30 so my requirement is to be able to change the font and make these characters visible. 14:11:36 not sure if that's what you meant. 14:11:58 that was my question, yes 14:12:23 i also plan to make use of a non-unicode character set, accessed with the shift in / shift out control codes 14:12:31 i forget what their codes are 14:13:05 http://www.cs.tut.fi/~jkorpela/chars/c0.html 14:15:58 my plan was to add a new ngaro device, or possibly extend the character generator device, and give you the ability to change the font for a particular character 14:16:45 changing the font would require SDL or a similar library 14:17:21 the first retro versions based on ngaro used this method 14:17:57 possibly you will find useful code there 14:21:14 ok, I will add some functionality for font selection 14:21:32 and palette support 14:23:46 in my repro you will find a subdirectory named backport. Next week you will find a ngaro version with a new device; That is the backport of my navm code for character generation 14:24:55 in this directory 14:30:29 need some sleep, ciao 14:30:35 --- quit: Mat2 (Quit: Verlassend) 14:41:29 :) 16:49:43 so, anyone: what's a good unit test for the jump instructions? 16:53:14 i guess maybe something like the test for if in tests/base.rx [ -1 [ 1 ] [ 2 ] if ] expected: { 1 } 17:09:31 --- join: Z_Mass (~zachary@bas1-cornwall24-1242467096.dsl.bell.ca) joined #retro 17:17:56 --- join: kumul (~kumul@173.215.130.73) joined #retro 17:24:38 heya Z_Mass! :) 17:34:49 Hey :) 17:41:05 you want a quick go job? :) 18:02:21 tangentstorm: Sure, why not. 18:11:32 cool :) 18:11:55 basically, i'm making a test suite for the virtual machine 18:13:33 i'm trying to make sure they all work the same way, and fix mine ( which doesn't ) 18:14:39 so... the mission is to add a feature to the go version that will dump the content of the two stacks and the image when the program exits 18:17:14 I can try, but I really have no idea how the retro code works 18:18:01 well, what it should be is three arrays of integers 18:18:15 one for each stack and one for the ram 18:18:37 Gotcha. Is the Go code in the lpmc repo, or somewhere else? 18:19:05 yep. one sec 18:19:15 k 18:20:09 hrm 18:20:17 https://github.com/LearnProgramming/retro-language/tree/master/vm/vm/complete/go 18:20:29 it shouldn't be vm/vm though... i must have screwed something up 18:21:21 ugh. that repo's a complete mess 18:21:45 i tried to just push the version from google code and github wouldn't let me 18:23:20 git clone https://code.google.com/p/retro-language/ 18:23:37 i'll have to redo the lpmc one 18:24:59 here's what the python version looks like : http://bazaar.launchpad.net/~tangentstorm/retro-language/docwork/view/head:/vm/complete/retro.py#L402 18:25:32 Cool, I'll clone that and have a look. :) 18:25:48 cool :) 18:37:16 So would this be going in main.go? 18:37:51 i just got go-mode installed for emacs.. just starting to look at this 18:38:10 i think maybe so 18:38:25 those flag.XXX stuff look like command line arguments 18:40:55 var dump_after = flag.Bool("dump", false, "dump stack and ram after running for ngarotest.py") 18:41:06 something like that maybe to get --dump ? 18:42:33 Hmm, never used the flag package, will have to check it out. 18:43:42 how come sometimes the code uses = and sometimes := ? 18:44:18 := is an assignment within a function 18:45:02 i'm looking at line 105 err = vm.Run() ... right above it is vm := ... 18:46:02 err is declared on line 68 18:46:30 oh so := is like declare + assign? 18:46:48 := is like using auto in C++. = is for re-assigning a value, or declaring with a type 18:46:57 Yep 18:47:21 cool 18:49:46 hrm 18:49:54 ? 18:50:03 looking at core() in core.go 18:50:22 it looks like data and addr might be internal to that function 18:50:39 whereas ram is attached to the vm via vm.img 18:51:21 this version of the vm has support for multiple concurrent instances in their own goroutines 18:51:52 i'm wondering if they all share the same image but different stacks? 18:52:58 tangentstorm: have you read this book? http://www.catb.org/esr/writings/taoup/ 18:52:58 Not too sure, lol 18:53:15 Is there like a wiki of some sorts on this? 18:53:16 heya docl. i've read parts of it 18:53:16 it has some good discussion of OO vs other paradigms 18:53:34 I'm reading through it slowly now. good stuff. 18:54:07 I'm up to chapter 5 18:54:24 Z_Mass: there was a wiki for retro but it was covered in spam... there's a bunch of docs, but probably not specifically for the go version 18:55:39 docl: esr's a pretty smart guy. i read through a lot of his stuff back when the cathedral and the bazaar came out 18:55:55 Gotcha. Will probably have to read up on how it works a little more before I can write some tests for it :P 18:56:06 Z_Mass: i can talk you through it if you can supply the go syntax :) 18:56:23 oh 18:56:31 sorry. i haven't explained this very well :) 18:56:36 tangentstorm: yeah me too. this is a bit more recent than that though. 18:57:02 Z_Mass: what i'm shooting for here is one test suite that applies to all the implementations of the vm 18:57:40 so i'm writing the tests in python here: http://bazaar.launchpad.net/~tangentstorm/retro-language/docwork/files/head:/test/ngaro/ 18:58:30 ngarotest.py has a little assembler in it that generates an image for each test 18:58:33 tangentstorm: I can try but I'm no Go expert ;). I think I'm a little too tired tonight but in the next few days for sure :) 18:59:12 So each languages version will use a python test suite? 18:59:57 yeah... if you look at the makefile in the directory i just linked, you can see where i'm testing both the python and pascal versions 19:00:36 ngarotest.py generates a bunch of little image files, then invokes whatever virtual machine you want and tells it to run that image and --dump 19:00:54 image meaning like... a snapshot of ram 19:01:36 i'm just using python for the tests because python ships with a testing library 19:02:23 I see. I've gotta head out for a bit, but I'll look this stuff over and hopefully I can help you out this week. 19:02:34 the idea is that no matter which vm you're using, if you pass in an image and --dump you should get the same output 19:02:38 ok 19:02:59 cool. it's no rush or anything. just thought you might want something to do :) 19:03:16 --- quit: Z_Mass (Quit: Leaving) 19:07:31 docl: not sure this is the book i was thinking of. thanks for the link :) 19:25:41 tangentstorm: the history of computing stuff made me think of you. also the discussion of object-oriented programming. 19:26:32 where does he talk about that? 19:26:47 rule of composition maybe? 19:27:00 one of the early chapters. history I think, maybe chapter 2? 19:27:31 http://www.catb.org/~esr/writings/taoup/html/unix_and_oo.html 19:29:13 that must be the one 19:31:48 that reads like advocacy for pascal to me... i must be kind of biased :) 19:31:57 :) 19:33:31 i think unix itself does a lot of what OO is meant to offer. you don't really need an OO language inside it. 19:33:56 yes, that is basically what I got out of it. 19:34:04 hiding one process from the other 19:34:34 with the sole exception of the textual output stream 19:35:22 that's the part i don't like :) 19:35:36 (well, mostly textual.) 19:35:47 stream good, textual bad i guess 19:37:27 unix pipes can deal with binary data too, from what I understand. 19:38:18 yeah, it's just bytes 19:38:55 i'm just grumbling about the line-oriented nature of everything. 19:39:43 the fact that newlines usually mean something? 19:41:52 no, that everything is passing strings around instead of structured data 19:42:05 so you have to have parsers for everything 19:42:20 --- join: obobo_ (~chatzilla@dyn-dsl-ly-98-124-43-42.nexicom.net) joined #retro 19:43:55 --- quit: obobo (Ping timeout: 244 seconds) 19:43:57 hmm. he cites non-textual records as a major source of opacity, and a form of premature optimization. 19:44:00 --- nick: obobo_ -> obobo 19:44:26 textual stuff is more transparent. 19:45:04 i don't mean raw binary data 19:46:41 i mean it would be nicer if instead of everything focusing on lines, you had pipelines for something like xml, json, etc. 19:47:04 json good, xml bad (imo) 19:47:05 you can do that now, but the standard tools don't know about those formats, only lines 19:48:22 yeah he notes that xml is good for deeply nested stuff, but doesn't play well with traditional unix tools. 19:48:34 json > xml :) ... not sure i want to go so far as to say json is good :) 19:48:47 :) 19:49:29 yaml > json > xml 19:49:45 colon-delimited text maybe, like unix password files 19:50:09 but yeah... the problem is with the tools though.. they're all line-oriented, so they can't see that structure 19:50:31 but what if you want to put colons in your text ? 19:50:44 \: 19:51:11 http://www.cs.tut.fi/~jkorpela/chars/c0.html 19:51:59 characters 1,2, and 3 seem to me like they'd do the job xml or lisp does, for nested structures. 19:52:54 28 - 31 give you a delimiter to put between tables, groups ( header row vs content rows ), records, and fields 19:53:36 no conflicts with anything you'd want to type by hand, since they're invisible 19:54:13 invisible is part of the problem though... you don't necessarily know they are there. 19:54:32 how do you know tabs and spaces and linefeeds are there, though? :) 19:55:29 i'd probably show something. they look like ^A ^B ^C in vim and emacs 19:55:47 by how they move stuff around I guess 19:55:53 as soon as i get that terminal workign i'm going to make up some glyphs for them 19:55:53 yeah 19:56:37 i have my emacs set up to show only the information between ^L (form feed, i think) 19:56:49 so i can page back and forth without scrolling 19:56:59 i think it's really readable 19:57:22 i was worried compilers would gripe but they don't seem to 23:03:10 --- quit: obobo (*.net *.split) 23:03:11 --- quit: timg (*.net *.split) 23:03:42 --- quit: kumul (*.net *.split) 23:43:31 --- quit: karswell (*.net *.split) 23:43:36 --- quit: oPless (*.net *.split) 23:43:51 --- quit: ivan`` (*.net *.split) 23:44:16 --- quit: yiyus (*.net *.split) 23:44:24 --- quit: saper (*.net *.split) 23:45:24 --- quit: foucist (*.net *.split) 23:52:46 --- join: foucist (~foucist@ps14150.dreamhost.com) joined #retro 23:52:47 --- join: ivan`` (~ivan@unaffiliated/ivan/x-000001) joined #retro 23:52:47 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #retro 23:52:47 --- join: saper (saper@wikipedia/saper) joined #retro 23:52:47 --- join: oPless (~oPless@lart.doosh.net) joined #retro 23:52:47 --- join: yiyus (1242712427@je.je.je) joined #retro 23:59:59 --- log: ended retro/12.10.27