This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-02-01
Channels
- # aatree (1)
- # admin-announcements (11)
- # beginners (77)
- # boot (73)
- # braid-chat (29)
- # cbus (3)
- # clara (3)
- # cljs-dev (16)
- # cljsjs (2)
- # cljsrn (68)
- # clojure (149)
- # clojure-austin (1)
- # clojure-czech (2)
- # clojure-miami (8)
- # clojure-poland (28)
- # clojure-russia (165)
- # clojure-ukraine (1)
- # clojurebridge (3)
- # clojurescript (64)
- # community-development (1)
- # core-async (27)
- # core-matrix (2)
- # cursive (38)
- # data-science (2)
- # datavis (4)
- # datomic (3)
- # dirac (78)
- # emacs (10)
- # events (1)
- # funcool (6)
- # hoplon (25)
- # immutant (2)
- # jobs (3)
- # ldnclj (34)
- # luminus (4)
- # mount (23)
- # off-topic (26)
- # om (121)
- # onyx (320)
- # other-lisps (1)
- # proton (13)
- # re-frame (33)
- # yada (3)
@seancorfield: you are on a roll!
I’ll blog about boot-new
next I expect, and then go back to some of the specifics of our setup at work.
@seancorfield: Looking forward to the boot-new post - will be taking a look this week. Hoping to put together a template this week — hopefully with a couple of variants in the template to choose from.
The timing is impeccable, @seancorfield. I woke up this morning and my first thought was, ‘I’m switching to Boot!'
@donmullen: So boot -d seancorfield/boot-new new -t template -n mytemplate
will get you started
@akiva: If there’s anything specific you’d like me to blog about… no promises, but always open to suggestions…
I’ll see if I come up with anything. I only messed with it a bit this morning. But my experience with Boot has been similar to yours. I was unimpressed when I first messed with it last year but the latest release is, as you put it, ‘hella slick’.
> Unfortunately there was no equivalent for Boot so this was my first chance to roll up my sleeves and write a Boot task as a standalone project. @seancorfield typo in that sentence I believe
how do you approach that, as the task would need to modify the version in build.boot
- do you put the version in a separate file?
e.g. I'd want to update to non-snapshot version, tag in VCS, build the artifact and push to the repo
Feel free to try:
boot -d tulos/boot-criterium \
bench -l "1.6" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.6.0 -- \
bench -l "1.7" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.7.0 -- \
bench -l "1.8" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.8.0 -- \
report -f table -O
Some people use a version.properties
file in the project root
@dm3 :
boot -d tulos/boot-criterium \
> bench -l "1.6" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.6.0 -- \
> bench -l "1.7" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.7.0 -- \
> bench -l "1.8" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.8.0 -- \
> report -f table -O
Retrieving boot-criterium-0.1.0.jar from
WARNING: JVM argument TieredStopAtLevel=1 is active, and may lead to unexpected results as JIT C2 compiler may not be active. See .
WARNING: Final GC required 5.281677860549284 % of runtime
WARNING: Final GC required 44.58526630009102 % of runtime
WARNING: JVM argument TieredStopAtLevel=1 is active, and may lead to unexpected results as JIT C2 compiler may not be active. See .
WARNING: Final GC required 5.656352080834244 % of runtime
WARNING: Final GC required 41.77912144672444 % of runtime
WARNING: JVM argument TieredStopAtLevel=1 is active, and may lead to unexpected results as JIT C2 compiler may not be active. See .
WARNING: Final GC required 4.922599703901996 % of runtime
WARNING: Final GC required 47.784064042933686 % of runtime
| :benchmark/goal | :mean | :variance | :upper-q | :lower-q | :evaluation-count | :outlier-effect |
|-----------------+------------+-------------+-------------+------------+-------------------+-----------------|
| 1.6 | 94.4719 µs | 4.9134 µs | 100.3137 µs | 88.4984 µs | 6960 | :moderate |
| 1.7 | 29.8147 µs | 666.6242 ns | 30.6617 µs | 29.2901 µs | 20262 | :moderate |
| 1.8 | 34.3943 µs | 1.7045 µs | 35.8316 µs | 31.3956 µs | 18414 | :moderate |
Implicit target dir is deprecated, please use the target task instead.
Set BOOT_EMIT_TARGET=no to disable implicit target dir.
boot -d tulos/boot-criterium \
bench -l "1.6" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.6.0 -- \
bench -l "1.7" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.7.0 -- \
bench -l "1.8" -g "'(reduce + (range 1000))" -Q -d org.clojure/clojure:1.8.0 -- \
report -f table -O
WARNING: Final GC required 2.56721392080561 % of runtime
WARNING: Final GC required 56.36157027919461 % of runtime
WARNING: Final GC required 3.1793859479060917 % of runtime
WARNING: Final GC required 38.52524948607234 % of runtime
WARNING: Final GC required 4.761463704088819 % of runtime
WARNING: Final GC required 60.68148534637626 % of runtime
| :benchmark/goal | :mean | :variance | :upper-q | :lower-q | :evaluation-count | :outlier-effect |
|-----------------+------------+------------+-------------+------------+-------------------+-----------------|
| 1.6 | 87.9661 µs | 16.9452 µs | 103.3679 µs | 66.0190 µs | 5832 | :moderate |
| 1.7 | 11.3507 µs | 3.5532 µs | 17.4694 µs | 9.4659 µs | 41754 | :severe |
| 1.8 | 28.1620 µs | 4.1321 µs | 31.3467 µs | 22.3552 µs | 20616 | :moderate |
Where’s the typo @martinklepsch ? https://clojurians.slack.com/archives/boot/p1454321141001517
"Unfortunately there was no equivalent for Boot so this was my first chance to roll up my sleeves and write a Boot task as a standalone project." I think that probably was meant to be "no equivalent for Expectations" ?
For Boot. As opposed to for Leiningen
I'm with Martin on this one - also felt it reads as if "there was no equivalent [of boot test
] for Boot" to me. And that's probably not what was mean, but "there was no equivalent [of the leiningen Expectations task] for Boot".
IMO task would be confusing, because last task mentioned is boot test
. I think something like "there was no Expectations task for Boot" with "equivalent" optionally before "Expectations".
@seancorfield: Not a biggie, but yes, I was also confused with that sentence.
maybe typo wasn't quite the right word 😊
Ah, now I’m not reading this on my phone while out exercising, I see what you mean… yes, that could be clearer… I was thinking it was a different part of the blog post… Sorry!
Fixed.
Thank you for reading!
Thanks for writing @seancorfield 👍
hey all, for those that frequent IRC also - just created #bootclj on freenode
#C08BDAPRA doubled as the boot channel there for many years, figure it's high time for boot to graduate
No, Boot converts it for you.
so —opt foo
becomes :foo
in the opt
variable.
If you have o opt VAL #{kw} "keyword args"
for example, then -o foo —opt bar
will produce #{:foo :bar}
in the opt
variable.
I found this gist for using google-maps as a foreign lib: https://gist.github.com/bensu/edd68d11102c2197a729. Trying give the cljs compiler the foreign lib in task-options like this:
cljs {:source-map true
:compiler {:foreign-libs [{:file ~(str ""
$APIKEY
"&libraries=places")
:provides ["google.maps"]}]}}
Just directly copy pasted from the gist give me an error that #'clojure.core/unquote
is unbound. Replacing :file val with just a string will seem to work, but the “google.maps” namespace won’t be found.
@asolovyov: that is a bad idea!
d’oh ignore my question above, the correct key is :compiler-options
, not :compiler
like lein
@sooheon: at the time I didn't realize it but when you do that, you fetch the google maps file at compile time and they come with another key which then expires
@bensu: Ah didn’t see you were the author of the gist :) So there’s a better way to do it than this?
Hello master booters! I have a question for ya'll... I am deploying an http-kit application & was wondering what you guys recommend for simple versioned deployment. Ideally I'd like to be able to run my application with systemd. In the past I made an uberjar and installed that to the local maven repo - I get the versioning & I can run the app with java -jar. I have heard this may not be the best way to do things & am curious what ya'll think.. gracias
@seancorfield: thanks for pushing 0.3.1 of boot-new so quickly, now the hoplon tutorial doesn't require lein! https://github.com/hoplon/hoplon/wiki/Get-Started
Nice! Have you tried it on Windows? Two folks complained in comments on my blog that Boot and more specifically the Hoplon tutorial "doesn’t work" on Windows?
BTW, where it says "You will need to make two small changes to the generated files before Running on Windows." — the page it links to has only one change (adding BOOT_EMIT_TARGET=no
).