0.18.1 (2023-05-01)
- Fixed parser not parsing power expression (x^y) (ea0bc42)
- fixed standard library integer print. Function lookup doesn't take type width into account yet (2652777)
0.18.0 (2023-04-30)
- added custom operator for type equality. Fixed recursive type comp (1bcccf7)
- back to shell script for tests. Compilation unstable w/ Catch2 (33ade8c)
- fixed compiled object files declaring unmangled names (14b819c)
- fixed crash, benchmarks now run properly (ddc0bdf)
- fixed external functions not importing properly (e12658a)
- fixed importing methods (6cf7681)
- fixed type comparison having errors (8d85145)
- linking against c standard library when compiling now (5de762a)
- moved from ordered maps to unordered maps and multimaps (41d1d76)
- separated JIT preparation and the actual execution of main, LLVM 16 (e9adcd5)
- default values for functions now fully working! (118f179)
- initial migration to google test (fde19d3)
- migrated sample JIT to LLJIT. (e60f5ed)
- improved Lexer performance in Driver, we're now streaming file (8db6dac)
0.17.7 (2023-04-22)
- fixed CHANGELOG no longer being updated (ee4d9b5)
0.17.5 (2023-04-22)
- trigger ci with improved workflow (0edea4b)
0.17.4 (2023-04-22)
- last ci fix (fae4461)
0.17.3 (2023-04-22)
0.17.2 (2023-04-22)
- fixed ci vcpkg (fbd1686)
0.17.1 (2023-04-22)
- fix vcpkg version bump (926dc2c)
0.17.0 (2023-04-22)
- added optional build-llvm feature (8229bf6)
- fixed dot operator not having proper error highlight (322847f)
- Fixed enums (f6a454f)
- fixed imports for new lesma Values and Types refactor (556bbcf)
- fixed is operator not comparing properly (c0c78d6)
- fixing clang format on PRs (9fbbf08)
- testing vcpkg ci/cd pipeline and CMakePresets (82f633f)
- updated CMake version above LLVM one (d519959)
- Added support for failing cases (40f88f9)
- fixed classes implementation (87d3699)
- massive refactoring, using our Value and Type classes instead of llvm's (9fecfa6)
- migrated to vcpkg, migrated from clang to lld for compilation (18e2081)
- remaking tests (9a66738)
0.16.5 (2023-01-09)
- adjusted build options to build only cli by default (8015ffc)
0.16.4 (2022-09-16)
- Fixed deallocation errors temp (5bfb467)
- Fixed Driver memory leaks (092b96b)
- Fixed memory leaks from AST and Parser (a029292)
- Fixed most Lexer memory leaks (62c7dfd)
- Fixed symbol table memory leaks (d66017e)
- Fixed while loop deleting body memory twice (cd031fb)
0.16.3 (2022-09-03)
- Test fix for semantic release (12a77a4)
0.16.2 (2022-08-30)
0.16.1 (2022-08-30)
- changed release format (f7e0645)
0.16.0 (2022-08-30)
- Can now use either local llvm or system-wide llvm (45b6b83)
- fixed cmake path for dependency (0b9b0bd)
- Fixed library not able to make static lib (a13bf75)
- Fixed local llvm and clang (81ce3a9)
- Fixed not adding include directories (94071d8)
- We now move stdlib to .lesma directory in $HOME (ff20761)
- Added lesma as a library, (cb5522e)
0.15.4 (2022-08-26)
- Attempt to fix Git version on GitHub (eb3d547)
- Fixed checkout (493d8e3)
- Fixed CI (251fb4a)
- Updated CMake to properly get version from git (5069520)
0.15.3 (2022-08-26)
- Attempt to fix release assets and debug cmake issue (52fb330)
0.15.2 (2022-08-26)
- Artifacts not being uploaded as assets properly (d64ca01)
0.15.1 (2022-08-26)
- testing fixed CI (4df0269)
0.15.0 (2022-08-26)
- Fixed class import not working properly, optimized and simplified imports (0491912)
- Fixed exit not being imported (hacky for now) (36eb565)
- Fixed optimization being done with O0 (5c73bf1)
- Fixed type comparisons across modules, fixed other asserts, contexts reused across modules (953f6bc)
- Improved CLI help experience, added version (c03f426)
- Reverted test files back to explicitly defining exit extern (93f5f33)
- Added local LLVM & Clang installation with bash script (e6e45fe)
- Fixed assertions because of different contexts, now we share the same (1ff4f36)
0.14.0 (2022-08-02)
- Fixed error messages when compiling multiple files not showing proper file (a639e7c)
- Fixed running strings would not report errors properly (f237c28)
- Fixed tests and stdlib debug code (4daefe0)
- Added driver class to be used by other projects (server wink wink) (6d1be42)
- Added export keyword, fixed classes and enums not being imported in compilation (e83055b)
- Added python-like import syntax, LLVM 14 (c9012ea)
0.13.3 (2022-06-01)
- Removed release binaries (be95705)
0.13.2 (2022-06-01)
- Release (816cece)
0.13.1 (2022-06-01)
- Fixed assets not being added to release (c68fead)
0.13.0 (2022-06-01)
- Added function verification back (f4ed1a8)
- Disable function verification again (8242b47)
- Fixed enum comparison not working as expected (43d3ec8)
- Fixed not being able to compare pointer addresses (60a6566)
- Fixed not finding field in class having undefined behaviour (f1b575f)
- Fixed tests (1d1d0e3)
- Removed .tmp variable names in LLVM IR (5af603a)
- Added check for functions that don't always return (9510dbd)
- Added check for return type to match function type (7c284ff)
- Added pretty print for AST (e9d60c8)
0.12.0 (2022-05-28)
- Fixed de-referencing primitive values (5ebb733)
- Temporary fix for code branches not having any more instructions (1a83cf7)
- Added bitcast for pointers of integer or void types (95a45c4)
- Added low level types for better FFI interop (19ee297)
- Added null pointer representation (5a8fb9c)
- Added pointer and reference unary operators (ce4ea17)
- added pointers and references for low level implementations (dc0569f)
- Extended stdlib with string conversions, cmd input, and random (8e03a0d)
- External FFI functions are no longer imported (47d2b8c)
0.11.0 (2022-05-26)
- Functions can now refer to each other without having to be declared in a certain order (7230883)
0.10.1 (2022-05-26)
- Fixed recursive functions not being able to call themselves in their body (51541f4)
- Fixed unary operator parsing ignoring left side (81702f1)
0.10.0 (2022-05-25)
- Fixed being able to have a dangling comma in parameter list (2ee6700)
- Fixed vardecl bug (d65b145)
- Fixed variable declaration was creating the values twice (a0df418)
- Added varargs, currently only for extern functions, added print for all types (510f78a)
- Classes and Enums can now be imported properly from other modules (dd78333)
- Nested imports working properly, already read modules are skipped. (c862e9a)
0.9.3 (2022-05-24)
- Don't create new extern functions if they are in the module and table (751ff79)
0.9.2 (2022-05-24)
- Fixed method parameters not being in right order (8674488)
- Fixed not finding functions when called inside methods (43386b6)
- Temporary fix for checks failing when functions in other modules not being imported properly (972fd15)
0.9.1 (2022-05-24)
- Fixed not being able to use enums and classes as parameters (9c1f6a7)
0.9.0 (2022-05-24)
- Fixed allowing constructors to return a value (f6dfbba)
- Fixed parameter pointers not being handled properly (55e86bc)
- Temporarily disallow classes with no constructors until we implement built-in ones (5096314)
- Added storing values into class fields, added class constructor (3675e51)
0.8.2 (2022-05-22)
- Fixed defer not working at top level (a5da7b2)
- Fixed strings and other pointers not working properly (06e975b)
0.8.1 (2022-05-21)
- Fixed comparisons between enums and other values not raising proper error (c5fe7b6)
0.8.0 (2022-05-21)
- Fixed different enums operators (3e9dea7)
- Added class parsing for fields and methods (cef3cad)
- Added dot access for enums, added fields to SymbolType for classes and enums (9976dcf)
- Added enum equality comparation (212fbcb)
- Added initial classes with fields and methods. Added dot operator for fields and methods too (57f0dff)
0.7.0 (2022-05-18)
- returns in if branches should no longer result in errors (b80c074)
- Added
is
andis not
operators (6841c0e) - Added defer keyword (c1e8e92)
- Added function type parsing (ed7f8c8)
0.6.1 (2022-05-17)
- Fixed linker for compilation not working in macOS (87a2751)
- Fixed MacOS linking object files for AOT compilation (bb20177)
0.6.0 (2022-05-17)
- Fix import path for std libs not being reflected in error (3a82f97)
- Fixed extern functions clashing names, and trying to use wrong decl (238406d)
- Fixes to lexer (052c761)
- Improved lexer performance (ef4b502)
- Improved memory usage and Lexer & Parser performance (043ab55)
- Improved types, added types to SymbolTable (8cce05f)
- Removed token state, refactored token class for lexer performance (41547ed)
- Top level statements are now different, disallow them in blocks (abb7d26)
- Updated enums not being added as symbol table entries (833ca38)
- Added initial Enum configuration, dot access pattern and type scope not implemented yet (aed2cd9)
- Added support for symbol types (8981814)
- Custom types are now referenced properly (1d8297f)
- Improved file read times by 10x and lexer times by 10% (f8e8382)
- Improved file reads by 10x using SourceManager class (59ce186)
0.5.0 (2022-05-06)
- Fixed relative imports not working (cea1f6e)
- fixed tests (0774a19)
- fixed tests (8f45346)
- Moved optimization phase after LLVM IR debugging print (c785973)
- Removed print from keywords (df1ba9a)
- Removed print_str example, since current impl depends on output (09e5f36)
- Added a few escape sequences (1ddba5d)
- Added basic string support (caa3c25)
- Added default import to base.les (09c0d70)
- Added std imports (be3e0eb)
- Symbols can now be overwritten in the scope (bad0a28)
0.4.10 (2022-03-14)
- Fixed line continuation, added test (9f70bb2)
0.4.9 (2022-03-14)
- Added line continuation '' and newline ignore in paranthesis (73d0134)
0.4.8 (2022-03-12)
- Small memory improvements (e48b4ca)
0.4.7 (2022-03-12)
- Fixed import not being parsed correctly (d515f7b)
0.4.6 (2022-03-11)
- Added support for parenthesis in expressions (485f2cf)
0.4.5 (2022-03-11)
- Fixed import incorrect span, fixed errors in import not being catched (a0088a9)
- Fixed memory leak due to unused modules (4d2282f)
- Fixed memory leak from CLIOptions (1693df5)
- Fixed Target Machine leak (b246e06)
- Function call based on parameters (b304917)
0.4.4 (2022-03-10)
- Fixed function parameters not being usable (086a231)
0.4.3 (2022-03-10)
- Fix cli options being true by default (1cfbfa9)
0.4.2 (2022-03-10)
- Added timer options alongside debug, fixed incorrect AST print (19e45e7)
0.4.1 (2022-03-10)
- Improved Lexer and Parser error messages (09a97f3)
0.3.0 (2022-03-08)
- Import path is now relative to the calling file. Added test (0af010d)
- Finished compilation step, fixed jit being executed regardless (c451467)
- Finished compilation step, fixed jit being executed regardless (ba47c6c)
- Functional modules system for both AOT and JIT (a8e9fee)
0.2.0 (2022-03-07)
- Better handle cli positional arguments (eded5c9)
0.1.0 (2022-03-03)
- ✨ allow empty return in void functions (b3bde14)
- 🐛 Fixed tests not working after refactoring AST (0495efd)
- ✨ Added assign operators (+=, -=, *=, /=, %=) (3fdfb63)
0.0.2 (2022-03-02)
- 🐛 Debug statement acidentally pushed to main, reverted (809c238)
- ✨ else if keyword is now a proper multiword, not the elseif substitute (19841df)
0.0.1 (2022-03-02)
- Removed version from CMake, using github releases instead (a6011b1)