Amos, I'm curious about your motivation for this. Fun? Curiosity? Business need? I'm using Om/CLJS in a Ruby on Rails app, so this caught my eye.
On Dec 2, 2014, at 8:35 AM, Amos Wenger <[email protected]> wrote: > shin (新) is an early-stage but relatively complete implementation of a > ClojureScript-to-JavaScript compiler, written in Ruby, and that does not rely > on Google Closure's libraries or compiler: https://github.com/memoways/shin > > The README contains probably more than you ever want to know about Shin, but > I am of course happy to answer any of your questions :) > > The main differences are: > > - It's not based on any previous Clojure compiler - no use of the analyzer, > etc. > - It generates AMD modules rather than Google Closure modules > - Data structures are implemented on top of Matt Bierner's HAMT+ for the > time being (but that may change) > - Macros are expanded in JavaScript, using V8 (driven from Ruby) > - Uses `escodegen` to generate JavaScript > > What sorely missing? At this time: metadata support, type annotations, > transducers, a cache for the compiler so recompiles are faster, and actually > passing source location information from the AST to escodegen. > > But otherwise, functions, defprotocol/deftype, macros, base collections > (list, cons, hash-set, hash-map) > > Right now the most involved piece of ClojureScript code (except for ~30% of > cljs.core and 100% of clojure.string) is probably Reagent, which I am almost > done making work with Shin: https://github.com/memoways/reagent-shin — I > wanted to wait till it was complete to make the announcement, but I figured I > could probably use some help along the way :) > > Why should anyone care about this ? > > - Alternative implementations of a language are just plain healthy, even if > you don't use them. > - Polyglot programming is awesome (Clojure/Ruby/JS all in one!) > - 330 specs and growing: https://github.com/memoways/shin/tree/master/spec > (maybe we can get a runnable specification of ClojureScript at some point?) > > Oh, and hopefully obvious disclaimer: don't use it for anything serious! It > still breaks often, it's not even a month old, handle with care. > > That said, helping hands are more than welcome, in particular in these areas: > > - Identifying differences in behavior with the mainline CLJS implementation > - Writing more specs & porting more of cljs.core > - Profiling & making the compiler faster (probably more for Ruby folks!) > - Figuring out a JS-friendly way to distribute libraries (bower? component?) > — eventually have libraries that compile both on mainline and shin? > > Love, > — Amos > > P.S: I'm not sure how the whole licensing thing works, since ClojureScript is > EPL+CA and Shin is just MIT-licensed. There's a note in the README, let me > know if there's anything else I need to do! > > -- > Note that posts from new members are moderated - please be patient with your > first post. > --- > You received this message because you are subscribed to the Google Groups > "ClojureScript" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/clojurescript. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/clojurescript.
