Hi puzzler, I have a project <https://github.com/JeremS/cljss-core/tree/v0.4.0> that I have been meaning to be useable from Clojure and ClojureScript. To do so I am using lein-dalap <http://birdseyesoftware.github.io/lein-dalap.docs/>.
I totally agree with you about the issues you have foreseen. The protocols aren't exactly the same, the java specific parts would need to be rewritten in cljs, I don't know how much work it would need to have the incremental vector working in cljs since hashing isn't 'embedded' in JavaScript (cljs uses the google closure libraries for that). lein-dalap <http://birdseyesoftware.github.io/lein-dalap.docs/> helps resolve some of these issues but not all of them. (cljx<https://github.com/lynaghk/cljx> might also be an alternative) I will totally add a request on github. I know it's a big wish to see instaparse in cljs and I'd love to contribute as best I can. I'd also like to give a little rationale for the cljs adaptation. I am a big fan of LightTable, which I use most of the time now. LT is written in ClojureScript and I can't wait to see the plugin system released in future versions. Using instaparse to extend it would be really neet since it supports ABNF grammar and, as your wiki taught me, ABNF makes for standard grammars that we can find on the internet. It would be nice to exploit directly these grammar in LT using instaparse. Another useful use case is in browser editors for syntaxes like markdown. I have read a blog post considering markdown potentially armful and arguing in favour of the wiki creole syntax. There is an EBNF grammar for creole... Last but very not the least, there are some very inspiring talks from Alan Kay that advocate lisp philosophy of programming, molding the language to your problem and coding in a language that suits the domain of the problem. Instaparse is a great tool to generate our own languages and I am coding some ClojureScript code at the moment so call me biased... :) Cheers, Jeremys On Wednesday, June 12, 2013 12:09:56 AM UTC+2, puzzler wrote: > > Honestly I hadn't yet given it any thought. Thanks for the interest in > having it on Clojurescript. Here are a few issues that come to mind: > > 1. To achieve performance, I've spent time coding custom data structures > that implement various Clojure and Java interfaces. I haven't done much > with Clojurescript, but my impression is that the ecosystem of protocols is > completely different, so I imagine that could be a pain to transfer over. > > 2. I don't know much about the performance of Javascript/Clojurescript's > underlying data structures. For example, in Java, the substring operation > used to be O(1), but recently, much to my dismay, they changed it to O(n). > That change was annoying, and it means I'm going to have to rework some > code to deal with that, but at least I heard about it and can take it into > account. But in Javascript I don't even *know* the performance > characteristics of its strings and substring operation. What other > Javascript performance gotchas don't I know about? > > 3. I'm assuming that due to the above, it won't be as simple as just > recompiling the code for Clojurescript. I have no idea what's involved > with maintaining a code base for the two target languages simultaneously. > Sounds non-trivial, although maybe it won't seem so intimidating once > things have settled down and I'm not making quite so many performance > tweaks and feature enhancements to the code. > > In any case, please add your request as a github issue, so I don't forget > about it. > > On Tue, Jun 11, 2013 at 8:06 AM, JeremyS <jschof...@gmail.com<javascript:> > > wrote: > >> Hi Puzzler, >> >> I was wondering if you planned to port Instaparse to ClojureScript. I >> know it's asking a lot, but I am one of those who would love >> to be able to run it in a browser or in node.js... >> >> Cheers, >> >> Jeremys. >> > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.