Re: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler

2016-02-23 Thread Nicola Mometto
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

2016-02-23 Thread Timothy Baldridge
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

2016-02-23 Thread Frank Castellucci
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

2016-02-22 Thread Antonin Hildebrand
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

2016-02-22 Thread Zach Oakes
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

2016-02-22 Thread Thomas Heller
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

2016-02-21 Thread Zach Oakes
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

2016-02-21 Thread Edward Knyshov
 

*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.