0.2.0
A lot of work went into implementing the JIT compiler: first with LLVM then with MIR which was way faster at compiling. There's also a lot of new features, fixes and changes. See below.
Added
- buzz has a homepage: https://buzz-lang.dev, a Discord and an actual VS Code extension
- JIT compiler powered by MIR
- mimalloc as the main allocator
- Inline if
- Ranges
anytypeas?operator to safely cast somethinghttpstandard lib (with an HTTP client)cryptostandard lib (in progress)list.pop,list.insert,list.forEach,list.reduce,list.filter,list.map,list.reduce,list.sortpattern.replace,pattern.replaceAllstd.randombz_callallows a native function to call a buzz function--astwill dump a script AST in JSON--checkwill check that a script compiles whitout running it- Shebang comment is allowed (
#!/usr/bin/env buzz) at the start of a script
Changed
- Main function signature must either be
fun main([str] args) > voidorfun main([str] args) > int, plus any required errors - Numbers are splitted in two types:
int(32 bits integers) andfloat(64 bits floating points) - Some performance related changes
- VM uses tail calls to dispatch opcode instead of a big switch
- More specialized opcodes to avoid checking types at runtime
- Some minor things...
- Key can be omitted in
foreachstatements - buzz wil now search a library in a list of common directories
exportcan prefix declarations
Fixed
Too many to count...