This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-03-01
Channels
- # aleph (4)
- # arachne (24)
- # beginners (231)
- # boot (4)
- # cider (63)
- # clara (36)
- # cljs-dev (57)
- # clojure (195)
- # clojure-dev (12)
- # clojure-gamedev (2)
- # clojure-greece (1)
- # clojure-italy (10)
- # clojure-poland (4)
- # clojure-spec (36)
- # clojure-uk (65)
- # clojurescript (133)
- # core-async (8)
- # core-logic (2)
- # cursive (18)
- # data-science (3)
- # datomic (58)
- # defnpodcast (3)
- # duct (2)
- # emacs (2)
- # fulcro (27)
- # graphql (3)
- # hoplon (18)
- # jobs (2)
- # jobs-discuss (10)
- # jobs-rus (1)
- # lumo (1)
- # mount (6)
- # nyc (2)
- # off-topic (27)
- # pedestal (13)
- # re-frame (71)
- # reagent (105)
- # reitit (4)
- # ring (2)
- # ring-swagger (1)
- # rum (10)
- # shadow-cljs (172)
- # spacemacs (24)
- # sql (26)
- # tools-deps (1)
- # uncomplicate (4)
- # unrepl (51)
- # vim (3)
- # yada (11)
It is unfortunate that -t nodejs
and -re node
have inconsistent values, owing to historical reasons.
seems like this shaping is up nicely, if I can finish the jar caching stuff on Friday I think we’re probably set for a release next week
Just logged a cljs.main
node
compilation ticket. Hoping it is a simple oversight (or perhaps a misunderstanding on my part). https://dev.clojure.org/jira/browse/CLJS-2586
I wonder if there is some intrinsic startup overhead that we can or can't remove.
$ time clojure -m cljs.main -h
with deps.edn
containing
{:deps {org.clojure/clojurescript {:mvn/version "1.10.64"}}}
Comes in at about 5.8 seconds for me. Hrm.And if you do the same with Clojure:
$ time java -jar clojure.jar -h
you get 0.8 s. Hmmmmmmmmmm.Ahh, I see, the clojurescript-1.10.64.jar
in .m2
only has cljs/compiler.cljc
, while the cljs.jar
has lots of AoT stuff like cljs/compiler$emitln.class
. Cool. I wasn't aware of that.
Makes complete sense, though: You want the Maven-shipped JAR to be compatible with different versions of Clojure, I suppose.
I think I'll start putting deps.edn
in the Environment field in JIRA—that seems like a natural place for it.
To be clear when we build the jar we create two artifacts, one source only, the other AOTed. The Uberjar is a third manual artifact.
Ahh, thanks. I missed the point of that. So, with deps.edn
containing
{:deps {org.clojure/clojurescript {:mvn/version "1.10.64" :classifier "aot"}}}
then
$ time clojure -m cljs.main -h
drops down to 2.1 sYeah can’t be made faster far as I can tell - ClojureScript is pretty big, start time perf would have to come from Clojure
With Alex Miller’s lazy loading experiment thing I think that shaves off another 500ms maybe a bit more?
It also makes me wonder if Clojure could do something similar to what ClojureScript does with caching compiled artifacts (class files). Especially a global cache of artifacts compiled from JARs or git deps.
@mfikes I fixed the Node.js compile issue, was simpler than I thought, no need for another pass, what was there was already working
:local/root
is a definitely a nice way to test, and given the development process, the git sha deps.edn approach to reporting is interesting
I was considering writing the "`cljs.main` tour" post in terms of a small initial bit involving setting up a deps.edn
pointing to a ClojureScript git dep. If we take that approach, and you end up wanting the post as a "Sneak Preview" kind-of thing, then it could be posted prior to the formal release and people can actually try the things shown in the post.
The only two disadvantages I can currently think of: No Windows, and no ability to :classifier "aot"
.
Yeah, in that case, we just need to sort out how users get that uberjar. If the post coincides with the release, that solves it. If it is a "Sneak Preview" that's another matter. No big deal—I'l focus on the meat of the post and not worry about how the user obtains cljs.jar
I will try master as well..maybe my bug is related to the last changes
@dnolen I think I found a few examples in the "tour" post that pretty much cover the bulk of cljs.main
's capabilities and flags https://github.com/clojure/clojurescript-site/pull/178
it’s really great to see just how much can be done easily on the command (i.e. running tests)
Yeah. I'll make another edit pass through it, testing, etc. Later we can figure out it if is a "Sneak Preview" kind of post, or one to come out with the release, and how to get the cljs.jar
.
@dnolen Yeah, I see that clojure-site has an assets/images directory that clojurescript-site doesn't yet have. I'll try adding something (following the example of https://github.com/clojure/clojure-site/tree/master/assets/images/content/news/2012-02-17)
I can see there being an image of the default HTML page (perhaps shrunk down to fit), and an image or two of the circles / canvas stuff in the browser app
no bug not fixed yet
very nice ^. I like it. I tried the examples in the clojurescript repo and the twitter one and at least one other one no longer work. It was offputting. Be nice to see some examples and patterns right away
found the bug of CLJS-2582, sending over a patch soon