Hello,
2014-04-02 11:33 GMT+02:00 Christophe Grand <christo...@cgrand.net>: > Hi Kovas, > > On Wed, Apr 2, 2014 at 3:26 AM, kovas boguta <kovas.bog...@gmail.com>wrote: > >> Looking through the source for parsley & paredit.clj, I'm halfway >> convinced that maybe its not so hard to port these to clojurescript. >> >> Anyone have input in either direction? >> > > We (Laurent and me) are planning an overhaul of paredit.clj. > I confirm what Christophe says. Paredit.clj does the job currently, but it's a nightmare to maintain / add new features to it, mainly because the primitive it uses are too low level. We have indeed plans with Christophe to eventually replace it with sjacket. Since it's not possible and would be very inefficient to rewrite everything and wait for being ready, we will probably introduce the new solution in parallel to the current one, and it could start adding value by implementing new features bound to new commands / key bindings. This would be a proof of concept that it's working in CCW, would prevent the "big bang" effect of replacing an implementation by another. And then, at their own pace, old features of paredit.clj could be replaced with features in sjacket, either eagerly or reactively for "fixing" bugs. That's not to say that there's no value in trying to port parsley+paredit.clj "as is" technically to ClojureScript. As I said, if you can live with its imperfections, paredit.clj currently does the job. I just don't know what to expect in terms of performance? (Christophe might have a better idea on this subject) > > >> >> Most of the Java interop seems to be >> 1. ArrayList (in parsley) >> 2. Various string methods (.endsWith, .indexOf, etc) >> 3. Regular expressions >> >> Is there something I'm missing that would require structural change? >> > > Apart from the fact that I'm far from being satisfied by the state of > parsley, none I can think of. > > <rant> > Rant on the state of parsley; > 1/ what I think is mostly right with it: true total incremental lexerless > parsing updating multiple views ("functional trees"). > 2/ what I think is wrong with it: its expressive power -- switching to > more lookahead would be doable but a meager gain for a sizeable effort -- > I'd like to bring incrementalism to a parser capable of handling any CFG > but I fail to find a sensible[1] way to make a CFG-class parser to be total > while not realizing most of the parse forrest > > [1] one that nearly minimize the ignored input length and is stateless (a > parsing from scratch should return the same ignored spans) > </rant> > > Christophe > -- > On Clojure http://clj-me.cgrand.net/ > Clojure Programming http://clojurebook.com > Training, Consulting & Contracting http://lambdanext.eu/ > > -- > 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/d/optout. > -- 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/d/optout.