Thank you for the feedback, Zach! I only tested on Dalvik so far, with Clojure and most part of Neko lean-compiled (including neko.ui). I plan to try it on ART soon, since Adam Clements made CoA finally working with ART.
Alex Yakushev http://www.bytopia.org On Aug 12, 2014 6:49 PM, "Zach Oakes" <zsoa...@gmail.com> wrote: > 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 a topic in the > Google Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/KsaLNBwj4os/unsubscribe. > To unsubscribe from this group and all its topics, 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.