This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-01-28
Channels
- # beginners (33)
- # cljs-dev (9)
- # cljsjs (1)
- # cljsrn (5)
- # clojure (123)
- # clojure-uk (2)
- # clojured (1)
- # clojurescript (11)
- # datomic (71)
- # defnpodcast (2)
- # dirac (8)
- # emacs (35)
- # events (4)
- # figwheel (7)
- # fulcro (29)
- # hoplon (6)
- # immutant (1)
- # keechma (4)
- # lumo (43)
- # nyc (1)
- # off-topic (16)
- # om (1)
- # onyx (9)
- # re-frame (12)
- # rum (15)
- # shadow-cljs (18)
- # spacemacs (1)
- # sql (6)
- # uncomplicate (1)
- # unrepl (5)
- # vim (1)
Opened an interesting ticket: https://dev.clojure.org/jira/browse/CLJS-2485
@dnolen Thanks! This one was recently discovered, and could be a regression for code like (rseq (first {:a 1}))
https://dev.clojure.org/jira/browse/CLJS-2484
It is great that the map entry changes end up being more than just for "correctness". Here is the perf snippet from the news article:
Finally, using a dedicated map entry type can lead to performance improvements in some code that works with map entries. For example, in :advanced
mode, this code
[source,clojure]
(simple-benchmark [m (zipmap (range 100) (range))]
(reduce (fn [a [k v]] (if (even? v) (+ a k) a)) 0 m) 100000)
runs 11% faster in JavaScriptCore, 18% faster in V8, and a whopping 105% faster in SpiderMonkey. And if you use the dedicated key
and val
functions instead of destructuring, the V8 performance goes to 44% faster and SpiderMonkey 112%.