|
|
|
|
|
by zahlman
110 days ago
|
|
> the compiler had enough static information to emit a single arraylength bytecode instruction. I'm skeptical. If it can prove that the input actually matches the hint, then why does it need the hint? If it can't, what happens at runtime if the input is something else? > We replaced a complex chain of method calls with one CPU instruction. JVM bytecodes and CPU instructions really shouldn't be conflated like that, although I assume this was just being a bit casual with the prose. |
|
I'm not certain I understand your first point. When I add the type hint, it's me asserting the type, not the compiler proving anything. If the value at runtime isn't actually a byte array, I would expect a ClassCastException.
But I am new to Clojure, and I may well be mistaken about what the compiler is doing.