When I think Clojure 2.0, I think of CinC. We need to support this project.

If you've ever been jealous of the amazing compiler optimisations in Chez
Scheme, or the metaprogramming
facilities in Racket, CinC is a crucial step in that direction for Clojure.

I'm very glad to have the opportunity to direct funds in Nicola's
direction. Please
keep sharing how important CinC is to Clojure and let's show Nicola our
full support!

http://www.indiegogo.com/projects/typed-clojure/x/4545030

Thanks,
Ambrose


On Mon, Sep 30, 2013 at 9:50 PM, Nicola Mometto <brobro...@gmail.com> wrote:

> Given the amazing support shown by the clojure community, Ambrose's
> campaign has already raised its goal.
> As some of you might have noticed, yesterday Ambrose revealed the first
> stretch goal of his campaign and that is helping me continue develop CinC
> and I want to spend some time explaining what CinC is and why it matters
> for the evolution of core.typed.
>
> First, here's the video Ambrose posted to announce the stretch goal:
> http://www.youtube.com/watch?v=hiKBP8f4dPw
>
> What is CinC?
> CinC is a project I've been working on for the past three months as part
> of the GSoC program, it's a port of the clojure compiler/analyzer to
> clojure itself.
> It's not simply a 1:1 port, I've based the analyzer on the clojurescript
> model, extending it further by making it modular separating all the
> different logical passes and walking over the AST using the children-keys
> approach.
> The compiler uses the AST to build a data-representation of the bytecode
> before effectively emitting it.
> You can read more about it in my GSoC report post
> https://groups.google.com/forum/#!searchin/clojure/cinc/clojure/cC1yC9zrS1s/W0ducjm0uQYJ
>
> Why does it matter to core.typed?
> While CinC being a cool project in itself (I think!) I want to explain why
> Ambrose chose to try and fund further development of CinC in its core.typed
> campaign.
> core.typed uses the AST returned by the analyzer to type-check the code;
> this is really easy to do for the clojurescript-end because the AST
> returned by the clojurescript analyzer is in the form of a clojure
> data-structure -- the clojure analyzer however returns java objects which
> make AST walking really hard.
> For core.typed, Ambrose created jvm.tools.analyzer, a library that takes
> the AST returned by the clojure compiler and transforms it in a
> data-structure similar to that returned by clojurescript.
> The problem with this approach is that the analyze phase is still not
> extensible/hackable, something that core.typed might need in order to
> gather more accurate type informations/do better validation.
> On the other hand, CinC's analyzer is written in pure clojure, already
> returning an AST in the clojurescript-way and most importantly, is
> extensible!
> CinC however is still a work-in-progress and there are still lots of
> rough-spots, massive performance enhancements to do and possible
> optimizations to be explored.
>
> The purpose of this "extension" in Ambrose's campaign is to help CinC keep
> being developed as something more than just a hobby project, hoping that
> some day it will be mature enough to experiment replacing clojure's
> analyzer as the default analyzer used by core.typed and make core.typed
> even more awesome than it is!
>
>
> That being said, I want to thank again the clojure community for the
> support shown so far, and Ambrose for being such an awesome person and
> trying to fund other people's library development with his own campaign!
>
> --
> --
> 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.
>

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

Reply via email to