Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
As the author of said libraries, I'd love to see somebody pick them up during GSoC and continue the work. The reason why development seems to have stalled, is different for each library: - tools.analyzer and tools.analyzer.jvm are pretty much done and stable, all that's left to do is fixing a couple of bugs around reflection and investigate performance enhancements - tools.analyzer.js has stalled around a year and a half ago, I simply couldn't keep up with the development speed of clojurescript while also maintaining 5 other contrib libraries - tools.emitter.jvm has stalled around the same period, since I decided that my time would be best spent maintaining libraries that have actual real world use rather than an experimental compiler :) this is not to say that it's an abandoned project, just that it's now very low priority for me. If anybody wants to pick up some work around tools.analyzer.js or related to tools.analyzer, I'd be more than happy to help them through, although I can't commit to the role of a proper GSoC mentor Nicola > On 22 Feb 2016, at 10:57, Thomas Heller wrote: > > Projects for this already exist but are somewhat dormant. > > See: > https://github.com/clojure/tools.analyzer > https://github.com/clojure/tools.analyzer.jvm > https://github.com/clojure/tools.analyzer.js > https://github.com/clojure/tools.analyzer.clr > https://github.com/clojure/tools.emitter.jvm > > Neither Clojure or ClojureScript currently use them since they are either > incomplete or have performance issues compared to the default implementation. > The idea was however to have a pluggable solution that can share as much code > as possible. IIRC it all started as GSoC work, so it might be useful to > continue in this way. I'm not sure who was involved but authors are still > around I think. > > Cheers, > /thomas > > > > On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote: > Pluggable back-ends architecture for ClojureScript compiler > > Brief explanation: There are a lot of ClojureScript script compiler forks > exist to provide different compilation targets other than js. Most of them > are currently stuck because of rapid ClojureScript development and > difficulties with keeping fork in sync with upstream. We could consider > refactoring ClojureScript to provide plugable backends architecture, > specifically to allow users replace code generation stage of compiler and > implement js generator as one of such backends. > > Expected results: ClojureScript compiler is refactored to allow further > active development of plenty other backends to bootstrap Clojure in such > environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to use > clojure mostly everywhere. > > Knowledge: ClojureScript, Clojure, JavaScript > > Need to know, what do you think guys. > > -- > 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. signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
Just wanted to jump in here and say that Thomas is correct. Plugging into the CLJS compiler is probably not the right place to start. The CLJS compiler is built for speed and as such is somewhat less modular than the tools.analyzer/tools.emitter projects. So start there if you're looking to build a tool or a new compiler backend. The resulting compiler may not be as fast as a one or two pass compiler (like CLJS) but it's easier to reason about in my experience. On Tue, Feb 23, 2016 at 6:29 AM, Frank Castellucci wrote: > Would not we want to "plug in" to the Clojure compiler? > > Feels weird to plug-in to ClojureScript to generate, say, python code. > > > On Monday, February 22, 2016 at 6:52:43 PM UTC-5, Antonin Hildebrand wrote: >> >> I like the idea. >> >> I was thinking about a similar project. The goal would be to design and >> implement user-configurable, pluggable system for "jacking" into >> ClojureScript compilation pipeline as discussed here[1]. >> >> The first dog-fooding application could be instrumentation middleware for >> collecting code-coverage information. I believe this could be implemented >> by rewriting forms between reader and analyzer. Or instrumenting AST output >> from analyzer before it gets passed to emit-phase. >> >> just my 2cents, >> Antonin >> >> [1] >> http://blog.fogus.me/2012/04/25/the-clojurescript-compilation-pipeline/ >> >> >> On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote: >>> >>> >>> >>> *Pluggable back-ends architecture for ClojureScript compilerBrief >>> explanation:* There are a lot of ClojureScript script compiler forks >>> exist to provide different compilation targets other than js. Most of them >>> are currently stuck because of rapid ClojureScript development and >>> difficulties with keeping fork in sync with upstream. We could consider >>> refactoring ClojureScript to provide plugable backends architecture, >>> specifically to allow users replace code generation stage of compiler and >>> implement js generator as one of such backends. >>> >>> *Expected results: *ClojureScript compiler is refactored to allow >>> further active development of plenty other backends to bootstrap Clojure in >>> such environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to >>> use clojure mostly everywhere. >>> >>> *Knowledge:* ClojureScript, Clojure, JavaScript >>> >>> Need to know, what do you think guys. >>> >> -- > 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. > -- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth) -- 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.
Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
Would not we want to "plug in" to the Clojure compiler? Feels weird to plug-in to ClojureScript to generate, say, python code. On Monday, February 22, 2016 at 6:52:43 PM UTC-5, Antonin Hildebrand wrote: > > I like the idea. > > I was thinking about a similar project. The goal would be to design and > implement user-configurable, pluggable system for "jacking" into > ClojureScript compilation pipeline as discussed here[1]. > > The first dog-fooding application could be instrumentation middleware for > collecting code-coverage information. I believe this could be implemented > by rewriting forms between reader and analyzer. Or instrumenting AST output > from analyzer before it gets passed to emit-phase. > > just my 2cents, > Antonin > > [1] > http://blog.fogus.me/2012/04/25/the-clojurescript-compilation-pipeline/ > > > On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote: >> >> >> >> *Pluggable back-ends architecture for ClojureScript compilerBrief >> explanation:* There are a lot of ClojureScript script compiler forks >> exist to provide different compilation targets other than js. Most of them >> are currently stuck because of rapid ClojureScript development and >> difficulties with keeping fork in sync with upstream. We could consider >> refactoring ClojureScript to provide plugable backends architecture, >> specifically to allow users replace code generation stage of compiler and >> implement js generator as one of such backends. >> >> *Expected results: *ClojureScript compiler is refactored to allow >> further active development of plenty other backends to bootstrap Clojure in >> such environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to >> use clojure mostly everywhere. >> >> *Knowledge:* ClojureScript, Clojure, JavaScript >> >> Need to know, what do you think guys. >> > -- 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.
Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
I like the idea. I was thinking about a similar project. The goal would be to design and implement user-configurable, pluggable system for "jacking" into ClojureScript compilation pipeline as discussed here[1]. The first dog-fooding application could be instrumentation middleware for collecting code-coverage information. I believe this could be implemented by rewriting forms between reader and analyzer. Or instrumenting AST output from analyzer before it gets passed to emit-phase. just my 2cents, Antonin [1] http://blog.fogus.me/2012/04/25/the-clojurescript-compilation-pipeline/ On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote: > > > > *Pluggable back-ends architecture for ClojureScript compilerBrief > explanation:* There are a lot of ClojureScript script compiler forks > exist to provide different compilation targets other than js. Most of them > are currently stuck because of rapid ClojureScript development and > difficulties with keeping fork in sync with upstream. We could consider > refactoring ClojureScript to provide plugable backends architecture, > specifically to allow users replace code generation stage of compiler and > implement js generator as one of such backends. > > *Expected results: *ClojureScript compiler is refactored to allow further > active development of plenty other backends to bootstrap Clojure in such > environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to use > clojure mostly everywhere. > > *Knowledge:* ClojureScript, Clojure, JavaScript > > Need to know, what do you think guys. > -- 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.
Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
Yeah I forgot about tools.analyzer. Maybe just updating its JS emitter to work with the latest ClojureScript would be a good project. It still wouldn't solve the issue of keeping up with the latest ClojureScript releases, but it seems like it would be a decent scope for a GSoC project. On Monday, February 22, 2016 at 5:57:57 AM UTC-5, Thomas Heller wrote: > > Projects for this already exist but are somewhat dormant. > > See: > https://github.com/clojure/tools.analyzer > https://github.com/clojure/tools.analyzer.jvm > https://github.com/clojure/tools.analyzer.js > https://github.com/clojure/tools.analyzer.clr > https://github.com/clojure/tools.emitter.jvm > > Neither Clojure or ClojureScript currently use them since they are either > incomplete or have performance issues compared to the default > implementation. The idea was however to have a pluggable solution that can > share as much code as possible. IIRC it all started as GSoC work, so it > might be useful to continue in this way. I'm not sure who was involved but > authors are still around I think. > > Cheers, > /thomas > > > > On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote: >> >> >> >> *Pluggable back-ends architecture for ClojureScript compilerBrief >> explanation:* There are a lot of ClojureScript script compiler forks >> exist to provide different compilation targets other than js. Most of them >> are currently stuck because of rapid ClojureScript development and >> difficulties with keeping fork in sync with upstream. We could consider >> refactoring ClojureScript to provide plugable backends architecture, >> specifically to allow users replace code generation stage of compiler and >> implement js generator as one of such backends. >> >> *Expected results: *ClojureScript compiler is refactored to allow >> further active development of plenty other backends to bootstrap Clojure in >> such environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to >> use clojure mostly everywhere. >> >> *Knowledge:* ClojureScript, Clojure, JavaScript >> >> Need to know, what do you think guys. >> > -- 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.
Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
Projects for this already exist but are somewhat dormant. See: https://github.com/clojure/tools.analyzer https://github.com/clojure/tools.analyzer.jvm https://github.com/clojure/tools.analyzer.js https://github.com/clojure/tools.analyzer.clr https://github.com/clojure/tools.emitter.jvm Neither Clojure or ClojureScript currently use them since they are either incomplete or have performance issues compared to the default implementation. The idea was however to have a pluggable solution that can share as much code as possible. IIRC it all started as GSoC work, so it might be useful to continue in this way. I'm not sure who was involved but authors are still around I think. Cheers, /thomas On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote: > > > > *Pluggable back-ends architecture for ClojureScript compilerBrief > explanation:* There are a lot of ClojureScript script compiler forks > exist to provide different compilation targets other than js. Most of them > are currently stuck because of rapid ClojureScript development and > difficulties with keeping fork in sync with upstream. We could consider > refactoring ClojureScript to provide plugable backends architecture, > specifically to allow users replace code generation stage of compiler and > implement js generator as one of such backends. > > *Expected results: *ClojureScript compiler is refactored to allow further > active development of plenty other backends to bootstrap Clojure in such > environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to use > clojure mostly everywhere. > > *Knowledge:* ClojureScript, Clojure, JavaScript > > Need to know, what do you think guys. > -- 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.
Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
That's a really good idea. There are a lot of clojurescript-to-something projects that would benefit from that, along with any future ones. It may help to actually choose a specific backend to work on while you refactor the compiler itself. Also, it would be good to limit the impact on the current JS generation code for the sake of the ClojureScript maintainers. They can chime in about the likelihood of merging this. I'm happy to mentor, though having one of them as a mentor would obviously be better =) On Sunday, February 21, 2016 at 3:20:18 AM UTC-5, Edward Knyshov wrote: > > > > *Pluggable back-ends architecture for ClojureScript compilerBrief > explanation:* There are a lot of ClojureScript script compiler forks > exist to provide different compilation targets other than js. Most of them > are currently stuck because of rapid ClojureScript development and > difficulties with keeping fork in sync with upstream. We could consider > refactoring ClojureScript to provide plugable backends architecture, > specifically to allow users replace code generation stage of compiler and > implement js generator as one of such backends. > > *Expected results: *ClojureScript compiler is refactored to allow further > active development of plenty other backends to bootstrap Clojure in such > environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to use > clojure mostly everywhere. > > *Knowledge:* ClojureScript, Clojure, JavaScript > > Need to know, what do you think guys. > -- 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.
[GSoC idea] Pluggable back-ends architecture for ClojureScript compiler
*Pluggable back-ends architecture for ClojureScript compilerBrief explanation:* There are a lot of ClojureScript script compiler forks exist to provide different compilation targets other than js. Most of them are currently stuck because of rapid ClojureScript development and difficulties with keeping fork in sync with upstream. We could consider refactoring ClojureScript to provide plugable backends architecture, specifically to allow users replace code generation stage of compiler and implement js generator as one of such backends. *Expected results: *ClojureScript compiler is refactored to allow further active development of plenty other backends to bootstrap Clojure in such environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to use clojure mostly everywhere. *Knowledge:* ClojureScript, Clojure, JavaScript Need to know, what do you think guys. -- 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.