New Language Features
Compiler Improvements
Compile Time Speed Optimizations
- Multithreaded frontend by default
- Using the new and improved work stealing thread pool system
- Fix numerous race conditions
- Replace many instances of MPMC queues with MPSC queues
- Replace many instances of
BlockingMutexwithRwMutex - Replace many instances of
RecursiveMutexwithBlockingMutex
- Multithread backend when the experimental
-use-separate-modulesis used-use-separate-modulesturns each package into a separate translation unit (object file) and then links them all together. This allows LLVM be multithreaded at the translation unit stage (LLVM Module).-use-separate-moduleswill not produce as good code compared to without it because of the multiple translation units.
- Improvements to the hash table related structures (
StringMap,StringSet,PtrMap,PtrSet) - Big improvement to compile times due to the above improvements
General fixes
- Improved type inference for ternary if expressions
- Remove
auto_castfrom procedure parameters - Fix bug with built-in matrix transpose caused by misalignment of the value
- Fix valgrind assembly generation
- Allow
whenstatements withinforeignblocks at the file scope
New Packages
Package Improvements
core:mem/virtualArena_Tempimprovementsarena_temp_ignoreallowing for ignoring of a temporary section if necessary
- Numerous bug fixes