Here we go, let's see how the new M1 chips do on Go benchmarks!
(Might be a good time to mute #M1, I have a new toy and I took time off work until the end of the month.)
First step is
$ GOOS=darwin GOARCH=arm64 ./bootstrap.sh
on my corp MacBook.
Well, it couldn't be too easy I suppose.
Ran bootstrap[.]sh (which is just a convenience wrapper for make + mv bin/darwin_arm64/go bin/go + tar), sent it over with webwormhole.io, cleared the quarantine xattr, and...
Alright, the friction is high because the Go linker does not automatically codesign binaries like the system linker (which will be a major pain for cross-compiling) but I should be able to get some benchmarks to compile.
Trying to find apples to apples comparisons since the amd64 assembly in the Go crypto tree is quite a bit better.
In the meantime, the brokenness is noticeable. magic-wormhole doesn't install as PyNaCl doesn't compile. Chrome runs under Rosetta 2 (cool!) but is not fast. #M1
#M1 first impressions 24h in:
· this thing is honestly fast
· Rosetta 2 is kind of amazing
· many CLI tools only run under R2 for now, and that's fine
· native makes a difference for heavy apps
· code signing is a bit annoying but makes sense, and hopefully tooling will catch up
For developing in Go on Apple Silicon, there's two main issues to be aware of:
The police is arresting, shooting, and macing journalists.
They are driving tanks into cities and escalating.
They're getting recorded and they don't care.
Defund the police. Disarm them. Drop qualified immunity.
A black CNN reporter was arrested after identifying himself while filming on a highway that was blocked by police and protesters.
Easy UNIX piping! No config options! Modern crypto! No keyrings! Public keys that fit in a tweet! No more looking up how to encrypt a file on StackOverflow. 💥
Alright Twitter, it’s time to #killgpg. If you use gpg to encrypt files, tell me how and what features you need.
Do you care about signatures? Streaming? Do you pipe tar into it? Do you need seeking? CLI or libraries? Big or small files?
Today we’re going after encryption, not signing. Signing is not a tooling problem but a trust problem, and to the extent it is, it’s mostly covered by signify.
Emails are also out of scope. Again, a trust and medium problem. (Which OpenPGP does not solve.)
I’m hearing a lot of passwordstore.org, and that’s my own last use case for it! So the new tool will definitely work as a pass backend, and support YubiKeys through the PIV applet.
Oh my. Apparently, AMD CPUs will sometimes return bad results from RDRAND after a suspend. That's bad, but if everyone has been following the cryptographer's advice and _just used getrandom()_ that's not a problem.