I am so excited to use this, Alex! A hello world uberjar with Skummet is 1 
MB slimmer and launches twice as fast on my netbook, though I won't call it 
a scientific test. And of course you know I'm excited about the prospects 
for CoA -- have you been testing it with ART yet, or just Dalvik? Great 
work.

Zach

On Tuesday, August 12, 2014 10:18:23 AM UTC-4, Alexander Yakushev wrote:
>
> So I am finally comfortable for showing Project Skummet to the general 
> public.
> Skummet is a experimental Clojure branch that features a modified 
> AOT-compiler
> providing the following features:
>
> a) Compiling vars into objects stored as namespace's static fields;
> b) Skipping emission of macros;
> c) Skipping emission of metadata without eliding it completely (so it is 
> used
> during compilation but not emitted in the resulting classes).
>
> Since it's still in alpha stage, bugs might occur. I was able to 
> lean-compile
> Clojure, core.async and a few other small libraries, but for others it 
> might
> fail for one reason or another. The most usual problem is when a library
> declares a var that it then references explicitly (by "with-redefs" or by
> calling methods on that Var object). How to deal with that is described 
> below as
> step 3.
>
> To try Skummet you need to add two things to your Leiningen's project.clj:
>
> 1. Add special Clojure version to the :dependencies
>
>    [org.bytopia/clojure "1.7.0-skummet-SNAPSHOT"]
>
> 2. Add lein-skummet to the :plugin section:
>
>    [lein-skummet "0.1.4-SNAPSHOT"]
>
> 3. If errors with direct Var usage occur, you can put a vector to
> :skummet-skip-vars that contains stringified var names that have to be made
> non-lean:
>
>    :skummet-skip-vars ["#'neko.context/context" 
> "#'neko.resource/package-name"]
>
> Then to compile a project with Skummet use "lein skummet compile". This 
> will
> produce AOT-compiled Clojure classes. You can then run it with "lein 
> skummet
> run" (the only difference from "lein run" is that no source dependencies 
> are
> included to the classpath, so you are sure you are running only the compile
> code); or you can execute "lein skummet jar" to create an uberjar that can 
> then
> be used regularly.
>
> There is a sample project that already has all necessary configuration for
> Skummet: https://github.com/alexander-yakushev/leantest.
>
> I'd be really grateful if you tried this project and shared your 
> experiences
> (specifically disappointing ones:)). It is important now to test Skummet 
> with
> different libraries and find code where it falls short compiling. A good 
> idea
> will be to benchmark results. My experiments so far show a reduction in 
> startup
> time by ~40% for Clojure, core.async and for Clojure on Android (right now
> lein-skummet cannot be used with lein-droid, but this option will be 
> available
> soon).
>
>

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

Reply via email to