(no title)
joiguru | 4 years ago
Here is the relevant quote from [1]: "In the context of julia though, compile time type simply do not exist ...."
[1]: https://discourse.julialang.org/t/claim-false-julia-isnt-mul...
joiguru | 4 years ago
Here is the relevant quote from [1]: "In the context of julia though, compile time type simply do not exist ...."
[1]: https://discourse.julialang.org/t/claim-false-julia-isnt-mul...
cbkeller|4 years ago
While it is not part of the language semantics, there certainly is, in the current implementation, a time at which any given method in Julia is (JAOT) compiled (via SSA-form IR, LLVM IR, and finally to native machine code) -- and whether or not types are able to be inferred at this time is sufficiently important that it has its own name: type stability [e.g., 2], with type-stable code being generally a couple orders of magnitude faster than equivalent type-unstable code.
[1] https://stackoverflow.com/questions/28078089/is-julia-dynami...
[2] https://www.juliabloggers.com/writing-type-stable-julia-code...
freemint|4 years ago
There are some weak mechanisms to prevent useless overspecialization such as @nospecialize and there are attempts to add smarter recompilation strategies by some packages.
adgjlsfhk1|4 years ago
celrod|4 years ago
Also, that comment is saying "compile time type" does not exist. I don't know C++, so I cannot comment on it, but from the sound of Yu Yichao's comment, C++ has separate concepts for runtime vs compile time types. Julia does not (as already said by adgjlsfhk1).