Releases: axelang/axe
Releases · axelang/axe
v0.0.14
- significant codegen optimizations
- added list member based type inference, such that
val some_collection = [1, 2, 3]is inferred aslist(i32)for example. - made macros importable symbols with public and private accessibility levels
- full visibility checking for macros
- fix nested macro call bug
- added full type checking to macros both in macro arguments and at usage sites inside macros
- nested unions bug fix
- fixes to static array literal instantiation logic in
test { ... }blocks - several significant additions to the following standard library modules:
- std.math
- std.term
- std.memory
- std.parallelism
- made enforce function generic in errors stdlib module
- improved generics support in heavily nested contexts
- added more tests
- deprecated the
modkeyword in favour of the%operator
Full Changelog: v0.0.13...v0.0.14
v0.0.13
- add builtin
Selftype for self-referencing from models (#23) - add extern function aliases with
symbolfunction annotation (#21) - fix multi dimensional array passed as macro argument bug (#20)
- fix list literal initialization logic inside
test { ... }blocks - undeclared variable detection fixes
- fix spacing bug with comments in parser
- generic instantiation fixes
- addition of generic
sorted[T]function for all numeric types in math module - add more tests
- add
--helpand-hflags
Full Changelog: v0.0.12...v0.0.13
v0.0.12
- added
defer { }construct for resource cleanup - added support for pointers in list(T) collections, e.g. list(ref Node)
- added support for nested primitive lists, i.e. list(list(T)) for example
- added LHS based inference in casts, allowing syntax such as
val x: f64 = cast(y) - added cross-module generic function usage support
- fixed type inference bug in list(T) collections
- amended CLI behaviour to exit after printing tokens with -tokens flag
- added
read_keyfunction to io standard library module - added
LongLongMap,LongFloatMap, and many other maps involving i64 to maps module in the standard library. - added usize mapping to println and print overloads
Full Changelog: v0.0.11...v0.0.12
v0.0.11
- remove
rawblock construct, as the standard library is now written purely in axe. - improve ast output formatting
- fix generic call sites type inference bug
- deprecate the C-style syntax for de-referencing pointers in favour of
deref - add duplicate use statement detection
- add type checking to overloads
- expose public apis in net and json modules
- restrict
*.and C interop calls to unsafe blocks - more strict type checking for assignment nodes
- add access modifiers for overloads and enums
- reduce initial allocations in generate_c to alleviate OOM issues (#12)
- add missing extern declarations to json module
- fix prefixing issue with dashes in directory/path names (#19)
- fix usage scanning bug with
putexpressions - remove the deprecated
.axecextension
New Contributors
- @carsonball made their first contribution in #19
Full Changelog: v0.0.10...v0.0.11
v0.0.10
- add syntax for overload mappings for ref and val types
- fix zero arg function syntactic sugar bug
- expose json api publicly
- string interpolation bugfix (#18)
- fix case/switch rendering bug (#16)
- prefer brew llvm installation on macOS.
- make unsafe { } blocks mandatory for C interoperability
- fix type inference issue in assignments (#18)
- fix generic calls in string interpolation bug (#18)
- fix prototype generation of inline functions such that they are static
- deprecate top-level platform / conditional function generation for maintainability purposes
- access modifier checking fixes
- optimizations in codegen
- translations in net module from raw { } blocks to pure Axe
Full Changelog: v0.0.9...v0.0.10
v0.0.9
- added
$( ... )syntax for untagged external C types - fixed #14
- fixed parallel local scope issue
- fixed type inference issue
- fixed relative path compilation error and -r issue #10
- fixed zero field struct instantiation error #13
- ported all of the standard library to not require usage of
raw(net being the sole exception) - fixed time module/
now()issue on POSIX systems - fixed case/switch variable declaration or scope issue
- fixed
addrandderefrewriting bug - fixed various other scope issues and false positives for undeclared variables
- improved overall testing framework for development of the language
- axedoc: modernize code to match current compiler standards, and recognize nested functions in models
- codegen: performance optimizations
- saw:
checkcommand
Full Changelog: v0.0.8...v0.0.9
v0.0.8
- add
[entry]function attribute for shared library and .obj/.o scenarios - add support for ref specializations in generic functions
- removal of C-style pointer syntax, now errors in favour of
ref T - improve randomization logic in std.random to utilize epoch_ms
- considerably stricter type checking
- fixed scope issue with parallel blocks
- mac osx build related fixes
- stability fixes: full stdlib test suite now passes
- fix compilation issue with crypto module in standard library
- fix C interop function call rewriting issue
- argument level validation of types in current scope
- add pre-linking stage entry point checks
Full Changelog: v0.0.7...v0.0.8
v0.0.7
- support for advanced nested specializations in generic functions
- support for compound logic in specializations in generic functions
- fix inline function prototype emission issue on POSIX platforms
- nested assert support, such that assert statements in nested contexts are not lost in codegen stage
- more robust function validation logic to prevent lld-link/fallthrough errors
- more robust extern function signature validation.
Full Changelog: v0.0.6...v0.0.7
v0.0.6
- full support for generics
- support for generic
when/issyntax - type inference at call sites to generic functions
- implementation of annotations for generic functions
- many cross platform additions
- fixed over-allocation of arena capacity causing crashes in renderer
- fix issue with wrong extension being generated for posix binaries
- fix i32 overflow issue in arena and lists modules
- add
--bootstrapflag for no-op'ing the line directive emission - all compiler tests now pass with
saw test - fix line directive emission to sanitize windows paths
Full Changelog: v0.0.5...v0.0.6
v0.0.5
- add platform support for
- DragonFlyBSD
- OpenBSD
- FreeBSD
- NetBSD
- Linux
- Mac OS / Darwin
- amend os module to support mac and linux
- fix scope issue (#2)
- fix test crashes
- further test coverage of compiler across pipeline
- add defensive nil checks in renderer
- various optimizations in compiler/codegen
- lsp improvements (goto variable declarations, crash fixes, etc...)
- add optional module name parameter to saw CLI's
testfunctionality
Full Changelog: v0.0.4...v0.0.5