gratitude

Matt Smith 2024-08-01T09:30:24.805219Z

Thank you Alan Malloy, oxalorg and borkdude for 4clojure.

18
borkdude 2024-08-01T09:31:01.170269Z

Link for reference: https://4clojure.oxal.org/ cc @mitesh

2
1
💚 1
🙏 1
lyall 2024-08-01T09:32:05.939139Z

big +1! been going through more of it recently myself too

💜 1
Alex Miller (Clojure team) 2024-08-01T21:42:22.185339Z

big thanks to @alexyakushev for https://github.com/clojure-goes-fast/clj-java-decompiler which I literally use every day to disassemble Clojure code. it has made my job 10x easier in working on Clojure itself. :)

33
❤️ 17
oyakushev 2024-08-01T21:47:57.744949Z

Thank you for the kind words! I also get value out of it every single day. Imagine how sore our eyes would be from reading all that bytecode as-is! 😅

oyakushev 2024-08-01T21:49:49.082169Z

One thing that annoys me is it fails to decompile letfns. That fact alone makes me use letfn less, it's unfair.

3
😱 1
2024-08-02T01:14:58.284589Z

why can't it decompile letfns?

oyakushev 2024-08-02T06:45:27.081879Z

It's the underlying Procyon library that fails to decompile it. I guess, letfn emits bytecode that has no suitable Java representation at all. Maybe one day I'll try to look at it:)

pfeodrippe 2024-08-25T12:31:57.113649Z

I see a blank page when opening one of these atlassian links on Mobile, wonder if people have the same issue (on PC, it works fine)

Alex Miller (Clojure team) 2024-08-25T13:04:33.147149Z

It redirects to a mobile page (or the app if you have it), might depend on your mobile browser

pfeodrippe 2024-08-25T13:09:02.836529Z

Thanks, Alex o/

borkdude 2024-08-02T08:52:39.411009Z

Hey I remember Alex saying that you should take the output of this tool with a grain of salt since the only truth is in the bytecode (something along these lines), but good to know Alex uses this himself now too ;)

borkdude 2024-08-02T08:56:19.086629Z

Helpful lies are still useful :)

borkdude 2024-08-02T08:57:01.309499Z

I love the tool btw, thanks @alexyakushev

❤️ 1
😛 1
oyakushev 2024-08-02T08:59:34.702139Z

I agree with Alex that decompilers can lie (especially since we take bytecode compiled from one language and decompile it to another), so in tricky and really important cases it is worth double-checking the bytecode. But in other 99% cases it really doesn't matter.

👍 1
oyakushev 2024-08-02T09:05:51.799969Z

Actually, in Alex's kind of work – working on the compiler where you manually emit all the DUPs and ARETURNs – I wouldn't trust the decomplier much either. For everyone else, when you just use it with stable Clojure, there is less chance that the decompiler would lie and confuse you. But it still happens sometimes, so be on guard 😄.

Alex Miller (Clojure team) 2024-08-02T12:24:19.516089Z

I don't use the decompile at all, just the disassemble (bytecode), which is not a lie :)

oyakushev 2024-08-02T12:25:46.636849Z

Hah, you should still try the decompiler once in a while, makes life much easier:)

Alex Miller (Clojure team) 2024-08-02T12:34:35.892989Z

it's ok, I've been reading bytecode for a long time :)

😄 1
Alex Miller (Clojure team) 2024-08-02T12:35:21.426159Z

like I've been working on locals clearing all week, and I really need that level to even see that

👍 1
oyakushev 2024-08-02T12:36:16.014209Z

Yeah, of course, for such matters reading bytecode is the only way to go.

borkdude 2024-08-02T12:57:59.448139Z

out of curiosity, what is it about locals clearing that needed improving?

Alex Miller (Clojure team) 2024-08-02T13:01:04.649569Z

https://clojure.atlassian.net/issues/CLJ-2145 and https://clojure.atlassian.net/browse/CLJ-2317

👍 2
2024-08-03T00:49:23.094329Z

Does this mean it makes you a 10x dev? 😎