Skip to content

dev-2023-02

Compare
Choose a tag to compare
@gingerBill gingerBill released this 03 Feb 11:28
· 5245 commits to master since this release

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 BlockingMutex with RwMutex
    • Replace many instances of RecursiveMutex with BlockingMutex
  • Multithread backend when the experimental -use-separate-modules is used
    • -use-separate-modules turns 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-modules will 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_cast from procedure parameters
  • Fix bug with built-in matrix transpose caused by misalignment of the value
  • Fix valgrind assembly generation
  • Allow when statements within foreign blocks at the file scope

New Packages

Package Improvements

  • core:mem/virtual Arena_Temp improvements
    • arena_temp_ignore allowing for ignoring of a temporary section if necessary
  • Numerous bug fixes