%p Ok, that was surprising: I just wrote a language in two months. Parser, compiler, working binaries and all. %p Then i %a{:href => "/typed/typed.html"} documented it , detailed the %a{:href => "/typed/syntax.html"} syntax and even did some = succeed "." do %a{:href => "/typed/benchmarks.html"} benchmarking %p So, the good news: it %strong it works %p Working means: calling works, if, while, assignment, class and method definition. The benchmarks were hello world and fibonacci, both recursive and by looping. %p I even updated the %a{:href => "/book.html"} %strong whole book to be up to date. Added a Soml section, updated parfait, rewrote the register level . . . %h3#it-all-clicked-into-place It all clicked into place %p To be fair, i don’t think anyone writes a language that isn’t a toy in 2 months, and it was only possible because a lot of the stuff was there already. %ul %li %a{:href => "/typed/parfait.html"} Parfait was pretty much there. Just consolidated it as it is all just adapter. %li The %a{:href => "/typed/debugger.html"} Register abstraction (bottom) was there. %li Using the ast library made things easier. %li A lot of the %a{:href => "https://github.com/ruby-x/salama-reader"} parser could be reused. %p And off course the second time around everything is easier (aka hindsight is perfect). %p One of the better movie lines comes to mind, ( %a{:href => "http://www.imdb.com/title/tt1341188/quotes"}> paraphrased ) “We are all just one small adjustment away from making our code work”. It was a step sideways in the head which brought a leap forward in terms of direction. Not where i was going but where i wanted to go. %h3#open-issues Open issues %p Clearly i had wobbled on the parfait front. Now it’s clear it will have to be recoded in soml, and then re-translated into ruby. But it was good to have it there in ruby all the time for the concepts to solidify. %p Typing is not completely done, and negative tests for types are non existant. Also exceptions and the machinery for the returns. %p I did a nice framework for testing the binaries on a remote machine, would be nice to have it on travis. But my image is over 2Gb. %h3#and-onto-the-next-compiler And onto the next compiler %p The ideas about how to compile ruby into soml have been percolating and are waiting to be put to action. %a{:href => "http://book.salama-vm.org/object/dynamic_types.html"} The theory looks good,but one has to see it to believe it. %p The first steps are quite clear though. Get the %a{:href => "https://github.com/whitequark/parser"} ruby parser integrated, get the compiler up, start with small tests. Work the types at the same time. %p And let the adventure continue.