Though it is less visible than the changes in the blog post, I'm also happy about the possibility introduced in 1.8 of removing LLVM from the runtime to create a smaller Julia runtime.<p>Not to mention the new effect system, which allows for quite aggressive constant propagation and constant evaluation.<p>Then there are a few small things: The new `eachsplit` function, for example, or the ability to read a file line by line, backwards, the introduction of "lazy strings" that makes writing informative errors more performant and the ability to match regular expressions to error messages in tests.<p>The real big one is the latency reduction, though, and the promise that it brings in the future for caching native code - perhaps in v 1.10 or even 1.9
This one is a very big and exciting release. The `@assume_effects` system is quite nice and very useful. Typed global variables will be great, and having callsite inlining is a big boon. The package manager improvements are also very welcome.
Love Julia<p>> Mutable struct fields may now be annotated as const to prevent changing them after construction, providing for greater clarity and optimization ability of these objects<p>So will these be exactly like non-mutable structs?