I keep hoping to make time to work on a Chicken Scheme binding for libfossil (it would be really help in several projects I'm working on) so I'm keenly following your progress on libfossil. Anyhow in your post I couldn't help but think of Greenspuns Tenth Rule of Programming :)
http://c2.com/cgi/wiki?GreenspunsTenthRuleOfProgramming On Thu, Jul 17, 2014 at 11:38 AM, Stephan Beal <sgb...@googlemail.com> wrote: > Hi, all, > > the past two months have seen a complete rewrite of my own personal toy > scripting engine, largely inspired by limitations uncovered in it while > binding libfossil to it. As of today, partial libfossil bindings are in > place for the new language (the db abstraction layer is done), and there's > a demo script here: > > > http://fossil.wanderinghorse.net/repos/libfossil/index.cgi/finfo?name=s2/unit2/000-100-db.s2 > > Unless i get called off of vacation back to work next week, i "should" > have the remaining bits ported from the older binding by this time next > week. The older binding and this one use the same underlying scripting > engine (just different languages on top of it), so porting has been a > straightforward matter so far. The new scripting language is documented in > inordinate detail (>60 pages) here: > > > https://docs.google.com/document/d/1hvMoHSIz94dob6fCU6SLxle_s7YL6CrA_4aU12OWwWY/view > > This one (called, rather uncreatively, "s2") is much cleaner than the > first one (th1ish), with a more robust core, proper operator precedence > (with over 30 overloadable operators), and its got (if i may say so) > bordering-on-outstanding memory usage: > > > https://docs.google.com/document/d/1hvMoHSIz94dob6fCU6SLxle_s7YL6CrA_4aU12OWwWY/view#heading=h.ucmv4mn8r0rw > > Aaaaannnnddddd.... it's got an interactive shell mode: > > [odroid@host:~/fossil/libfossil/s2]$ ./s2sh -v > s2 interactive shell. All commands run in the current scope. Use your > platform's EOF sequence on an empty line to exit. (Ctrl-D on Unix, > Ctrl-Z(?) on Windows.) Ctrl-C might work, too. > > The 'g' object is at your service as a place to store things. > s2> var db = Fossil.Db.open(':memory:') > result: Db@0x85778[scope=#1@0xbeecc0d0 ref#=1] ==> Db@0x85778 > > s2> db.execMulti("create table t(a); insert into t(a) values(1),(2),(3);"); > result: Db@0x85778[scope=#1@0xbeecc0d0 ref#=1] ==> Db@0x85778 > > s2> db.each({sql:'select * from t', callback:proc(){print(this)}, mode:0}); > {"a": 1} > {"a": 2} > {"a": 3} > result: undefined@0x6f4c4[scope=#0@(nil) ref#=0] ==> undefined > > s2> db.close() > result: undefined@0x6f4c4[scope=#0@(nil) ref#=0] ==> undefined > > s2> db.close() > rc=105 (CWAL_RC_EXCEPTION) > EXCEPTION: exception@0x75370[scope=#1@0xbeecc0d0 ref#=0] ==> { > "code": 118, > "column": 8, > "line": 1, > "message": "'this' is not (or is no longer) a Db instance.", > "script": "shell input", > "stackTrace": [{ > "column": 8, > "line": 1, > "script": "shell input" > }] > } > s2> > > > > Happy Fossiling! > > -- > ----- stephan beal > http://wanderinghorse.net/home/stephan/ > http://gplus.to/sgbeal > "Freedom is sloppy. But since tyranny's the only guaranteed byproduct of > those who insist on a perfect world, freedom will have to do." -- Bigby Wolf > > _______________________________________________ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users > > -- Matt -=- 90% of the nations wealth is held by 2% of the people. Bummer to be in the majority...
_______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users