This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-10-11
Channels
- # aleph (7)
- # bangalore-clj (11)
- # boot (70)
- # cider (11)
- # cljsjs (3)
- # cljsrn (17)
- # clojure (88)
- # clojure-brasil (8)
- # clojure-dev (17)
- # clojure-greece (1)
- # clojure-italy (6)
- # clojure-poland (8)
- # clojure-russia (2)
- # clojure-spec (44)
- # clojure-uk (32)
- # clojurescript (176)
- # cloverage (2)
- # component (5)
- # cursive (3)
- # datomic (23)
- # defnpodcast (6)
- # dirac (15)
- # emacs (6)
- # garden (19)
- # hoplon (126)
- # leiningen (1)
- # off-topic (3)
- # om (66)
- # onyx (56)
- # re-frame (8)
- # reagent (7)
- # ring-swagger (43)
- # specter (18)
- # untangled (110)
- # vim (3)
- # yada (39)
https://github.com/ghadishayban/clojure/tree/invokedynamic A branch with some usages of invokedynamic
in the compiler. all tests pass and is binary compatible with current release
var
s used as expressions are indified, so are keywords, and keyword invoke sites (:foo thing)
Still need to do protocol invokes (relatively straightforward) and lazy var loading (hard)
@ghadi If performance is "identical", could you summarize the other benefits for this, in a sentence or two?
Ah, cool. Thanks.
I have more interesting things locally, but the above changes are what I'll show to Rich, probably after the 1.9 cycle
Heh, I’m happy to have 1.9.0 Alpha 13 in production but I’ll stick to official Clojure/core builds 🙂
(I kid. But in all honesty I did stick to very conservative changes. If you had a handy benchmark harness by all means...)
To be clear, will mostly affect startup time of aot code (so not your typical repl)