This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-17
Channels
- # aws (16)
- # beginners (82)
- # boot (29)
- # cider (43)
- # cljs-dev (90)
- # cljsrn (14)
- # clojure (79)
- # clojure-dev (12)
- # clojure-greece (4)
- # clojure-italy (12)
- # clojure-russia (81)
- # clojure-shanghai (1)
- # clojure-spec (39)
- # clojure-uk (28)
- # clojurescript (159)
- # consulting (1)
- # cursive (16)
- # data-science (6)
- # datomic (18)
- # devops (3)
- # emacs (22)
- # figwheel (1)
- # graphql (15)
- # hoplon (3)
- # jobs (1)
- # jobs-discuss (8)
- # leiningen (1)
- # luminus (6)
- # lumo (1)
- # off-topic (18)
- # om (6)
- # onyx (38)
- # pedestal (30)
- # perun (3)
- # re-frame (38)
- # reagent (8)
- # ring-swagger (2)
- # rum (2)
- # sql (2)
- # unrepl (14)
- # untangled (1)
- # vim (8)
Huh, I thought wasm was just some binary format of JS. I guess it won't be a compile target for Clojure then
@U1WMJ5CQ2 :thinking_face: it's not "some binary format of JS" but the latter is still possible (you need to think abt mem mgmt explicitly tho)
While it's possible, I really don't think it's worth the trouble of implementing a new Clojure runtime when CLJS works perfectly fine.
At some point someone will make an LLVM target for Clojure.
If you could somehow hook in to the V8 GC, it could work... if you have to do GC yourself, it's very very unlikely to beat the performance of cljs
Clojure generates a ton of garbage
And it's very hard to do static analysis for things like escape analysis to cut down on it
yeah, I think Clojure just isn't designed to be hosted on a low-level runtime like wasm easily. That said, I've seen native Clojure runtime implementations before like ferret-lang that supports a subset of Clojure. http://ferret-lang.org/
I have no numbers to back it up, but I feel like the overhead of stop the world non generational boehm for many programs would exceed the computation + GC in cljs on v8
let alone the overhead of the computations themselves
which is to say, don't do that for performance. I'd be surprised if any program you ever wrote or library you ever used ran faster on that toolchain
I use unity compiled to wasm via IL2CPP, and it's OK, but still an order of magnitude slower than native
a lot better than IL2CPP->emscripten JS though
DOM is fine just implement a UI in WebGL and shaders (or just direct SPIR-V target for shader dsls)
but yea first you want a resource mgmt dsl to impl the other dsls in and have them do economics with each other (GC is actually just about currency... lol)