This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-12-15
Channels
- # adventofcode (110)
- # announcements (30)
- # aws (2)
- # babashka (39)
- # babashka-sci-dev (112)
- # beginners (155)
- # calva (5)
- # cider (12)
- # clj-kondo (11)
- # cljs-dev (1)
- # cljsrn (2)
- # clojure (144)
- # clojure-australia (2)
- # clojure-europe (14)
- # clojure-nl (5)
- # clojure-spec (3)
- # clojure-uk (2)
- # clojurescript (22)
- # core-async (23)
- # cursive (31)
- # data-science (3)
- # emacs (12)
- # events (1)
- # fulcro (8)
- # honeysql (7)
- # jobs-discuss (11)
- # lsp (1)
- # missionary (28)
- # nextjournal (7)
- # off-topic (64)
- # pedestal (3)
- # polylith (19)
- # reagent (14)
- # reitit (12)
- # releases (4)
- # shadow-cljs (33)
- # tools-deps (3)
- # xtdb (3)
@borkdude what is https://github.com/babashka/babashka/pull/1099/files#r769331216 used for? should i comment it back again? apart from this the PR looks quite ready for action 😄
nice! so now you can run these images on arm cloud things - is that the main benefit?
they should be. the amd64 ones were run on qemu
ooh ouch, that's slow right? can't you "just" run docker via rosetta2 and then run amd64?
no, rosetta2 can't run x86_64 virtual machines
so docker's embedded linux VM has to be arm64
it's been surprisingly not so far. I thought the same thing going in, but then all of the earlier-than-me adopters were still just getting work done so I took the plunge. been great so far!
but yeah, there was likely more pain earlier than I jumped on board
I might buy myself a Macbook Air M1 so I can just have the M1 within my reach for testing
and I can hook it up with a self-hosted circleci / github action runner when releasing 😂
if you want I can show you a nifty thing I recently figured out where you can tell your local docker "always send builds / containers of this arch over to this other host" which you could probably get pretty far w/ a raspberry pi 4 w/ 8GB of RAM. maybe not for graalvm builds, but maybe... 😉
yeah, it's just nice that the builds and containers are much faster when they don't have to run under qemu
@cap10morgan curious, can you test how fast this is in m1 arm64 docker?
$ bb -e "(time (loop [val 0 cnt 10000000] (if (pos? cnt) (recur (inc val) (dec cnt)) val)))"
"Elapsed time: 2496.274002 msecs"
10000000
arm64: "Elapsed time: 1421.087168 msecs"
emulated amd64: "Elapsed time: 20665.796677 msecs"
always good to get an order of magnitude speed up 🙂
graalvm native-image builds just grind to a halt
and some things just crash
but it's nice to have b/c it usually works, eventually haha
oh man, it's a tradeoff I'd make again in a heartbeat
everything else is insanely good & fast
and since I learned how to farm out docker builds and runs to amd64 hosts, this isn't even much of an issue anymore either
yeah; the graalvm folks are saying early 2022 for darwin/arm64 support
that would be awesome!
yeah, I think once apple releases a more "pro" arm mac mini a lot of those dominoes will fall
https://aws.amazon.com/about-aws/whats-new/2021/12/amazon-ec2-m1-mac-instances-macos/
sorry, meant to paste the link not the time again haha
yeah it's not a speed demon
I guess it's running qemu under an arm linux VM 😬
you said, "curious, can you test how fast this is in m1 arm64 docker?" 🙂
docker-free test coming right up!
I said compared to your rosetta2 usage on the same computer
but apparently this can be interpreted in multiple ways :)
ah, yeah. no rosetta2 in docker. 🙂
yeah, I meant: run it in your shell, as you would normally do as a mac user who downloads bb
yep. interestingly 0.7.1-SNAPSHOT in docker appears to be much faster than 0.7.0 outside it. did some perf improvements land?
no, but I expect that arm has some perf benefits over intel with respect to these kinds of loops
this is all arm64
linux/arm64 inside docker vs. darwin/arm64 outside it (maybe that's the difference)
no, no rosetta2 here
I haven't run the intel one yet
yes, I understand what you want me to do
I'm pointing out an interesting aside
bb 0.7.1-SNAPSHOT linux/arm64 in docker runs that loop much faster than bb 0.7.0 darwin/arm64 does
just thought that was interesting
all arm64 above, not amd64 as I unfortunately first typed
so that's what is interesting
no rosetta2 nor emulation at work here
bb 0.7.0 darwin/arm64: "Elapsed time: 2273.238791 msecs"
and then I'll need to download some things to try out intel on rosetta2
there must be rosetta2 here right, since native graalvm on arm64 isn't a thing yet for mac
ohhhhhhh yes. you're right. I keep forgetting that even though we just talked about it.
the linux vs. darwin / amd64 vs. arm64 quadrant keeps tripping me up hahaha
that makes a ton more sense 🙂
yes, it works decently well there
also docker is working on direct darwin platform support too: https://github.com/containerd/containerd/pull/4526
that will be nice someday
yeah, VM-less Docker on Mac
similar to the windows/amd64
images I guess