Deuce translates Emacs Lisp to Clojure and has to deal with some similar issues. Doing 80% and deal with the rest by hand wasn't an option here (but at times tempting). Initially I tried generating mildly "idiomatic" Clojure, but gave up in favor of getting it to work first. For example, Emacs Lisp relies heavily on mutability.
A large problem with my port is that Emacs lacks tests, but I assume there are compliance suites for Common Lisp one can use to guide the effort. I'm mainly porting Emacs Lisp to eventually get rid of it, and unsure if I would go down this road again. The more are I get to work, the less integrated with Clojure it becomes, at least for now. I once used the easier approach of mashing up ABCL and Clojure to run OPS5 with a few inter-op macros, which while far from perfect, worked pretty well. I would be tempted exploring that avenue in this case. Having said that, I look forward to see what you come up with! cheers, Hakan On Sunday, 16 June 2013 13:27:27 UTC+1, Rich Morin wrote: > > This is undoubtedly an open-ended (and probably naive) question, but I'm > wondering > how much of the task of translating Common Lisp code into Clojure could be > done by > a program and how useful (eg, idiomatic) the result would be. > > I can think of various kinds of differences that would need to be > addressed, eg: > > approach (eg, CLOS vs FP), > support (eg, Quicklisp vs Clojars), > syntax (eg, functions, macros), > and, of course, function differences > > However, if a mechanized translation could move Common Lisp 80% closer to > Clojure > (in a reasonable fashion), it might be useful for some projects. And, > given the > existence of Common Lisp implementations on the JVM (eg, ABCL, Kawa, > SISC), it > might be possible to perform the translation in an incremental fashion. > > So, is this a reasonable notion to consider? (ducks) > > -r > > -- > http://www.cfcl.com/rdm Rich Morin > http://www.cfcl.com/rdm/resume r...@cfcl.com <javascript:> > http://www.cfcl.com/rdm/weblog +1 650-873-7841 > > Software system design, development, and documentation > > > -- -- 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.