Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: axelang/axe

v0.0.14

24 Dec 15:12

Choose a tag to compare

  • significant codegen optimizations
  • added list member based type inference, such that val some_collection = [1, 2, 3] is inferred as list(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 mod keyword in favour of the % operator

Full Changelog: v0.0.13...v0.0.14

v0.0.13

23 Dec 17:47

Choose a tag to compare

  • add builtin Self type for self-referencing from models (#23)
  • add extern function aliases with symbol function 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 --help and -h flags

Full Changelog: v0.0.12...v0.0.13

v0.0.12

20 Dec 23:05

Choose a tag to compare

  • 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_key function 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

18 Dec 16:37

Choose a tag to compare

  • remove raw block 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 put expressions
  • remove the deprecated .axec extension
New Contributors

Full Changelog: v0.0.10...v0.0.11

v0.0.10

17 Dec 14:40

Choose a tag to compare

  • 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

15 Dec 22:37

Choose a tag to compare

  • 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 addr and deref rewriting 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: check command

Full Changelog: v0.0.8...v0.0.9

v0.0.8

14 Dec 01:24

Choose a tag to compare

  • 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

12 Dec 16:34

Choose a tag to compare

  • 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

11 Dec 15:31

Choose a tag to compare

  • full support for generics
  • support for generic when/is syntax
  • 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 --bootstrap flag 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

10 Dec 16:34

Choose a tag to compare

  • 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 test functionality

Full Changelog: v0.0.4...v0.0.5