Skip to content

Latest commit

 

History

History
578 lines (308 loc) · 32.2 KB

CHANGELOG.md

File metadata and controls

578 lines (308 loc) · 32.2 KB

0.18.1 (2023-05-01)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • default values for functions now fully working! (118f179)
  • initial migration to google test (fde19d3)
  • migrated sample JIT to LLJIT. (e60f5ed)

Performance Improvements

  • improved Lexer performance in Driver, we're now streaming file (8db6dac)

0.17.7 (2023-04-22)

Bug Fixes

  • fixed CHANGELOG no longer being updated (ee4d9b5)

0.17.5 (2023-04-22)

Bug Fixes

  • trigger ci with improved workflow (0edea4b)

0.17.4 (2023-04-22)

Bug Fixes

0.17.3 (2023-04-22)

Bug Fixes

  • fix ci trying to make new release when it shouldn't (30c0ddc)
  • trigger ci, updated docs (2a3abf6)

0.17.2 (2023-04-22)

Bug Fixes

0.17.1 (2023-04-22)

Bug Fixes

0.17.0 (2023-04-22)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • adjusted build options to build only cli by default (8015ffc)

0.16.4 (2022-09-16)

Bug Fixes

  • 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)

Bug Fixes

  • Test fix for semantic release (12a77a4)

0.16.2 (2022-08-30)

Bug Fixes

  • Fixed tests error (9dda15e)
  • Updated installer to add to path and provide feedback (2be4440)

0.16.1 (2022-08-30)

Bug Fixes

0.16.0 (2022-08-30)

Bug Fixes

  • 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)

Features

  • Added lesma as a library, (cb5522e)

0.15.4 (2022-08-26)

Bug Fixes

  • 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)

Bug Fixes

  • Attempt to fix release assets and debug cmake issue (52fb330)

0.15.2 (2022-08-26)

Bug Fixes

  • Artifacts not being uploaded as assets properly (d64ca01)

0.15.1 (2022-08-26)

Bug Fixes

0.15.0 (2022-08-26)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • Removed release binaries (be95705)

0.13.2 (2022-06-01)

Bug Fixes

0.13.1 (2022-06-01)

Bug Fixes

  • Fixed assets not being added to release (c68fead)

0.13.0 (2022-06-01)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • Fixed de-referencing primitive values (5ebb733)
  • Temporary fix for code branches not having any more instructions (1a83cf7)

Features

  • 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)

Features

  • Functions can now refer to each other without having to be declared in a certain order (7230883)

0.10.1 (2022-05-26)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • Don't create new extern functions if they are in the module and table (751ff79)

0.9.2 (2022-05-24)

Bug Fixes

  • 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)

Bug Fixes

  • Fixed not being able to use enums and classes as parameters (9c1f6a7)

0.9.0 (2022-05-24)

Bug Fixes

  • 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)

Features

  • Added storing values into class fields, added class constructor (3675e51)

0.8.2 (2022-05-22)

Bug Fixes

  • Fixed defer not working at top level (a5da7b2)
  • Fixed strings and other pointers not working properly (06e975b)

0.8.1 (2022-05-21)

Bug Fixes

  • Fixed comparisons between enums and other values not raising proper error (c5fe7b6)

0.8.0 (2022-05-21)

Bug Fixes

  • Fixed different enums operators (3e9dea7)

Features

  • 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)

Bug Fixes

  • returns in if branches should no longer result in errors (b80c074)

Features

  • Added is and is not operators (6841c0e)
  • Added defer keyword (c1e8e92)
  • Added function type parsing (ed7f8c8)

0.6.1 (2022-05-17)

Bug Fixes

  • Fixed linker for compilation not working in macOS (87a2751)
  • Fixed MacOS linking object files for AOT compilation (bb20177)

0.6.0 (2022-05-17)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • Fixed line continuation, added test (9f70bb2)

0.4.9 (2022-03-14)

Bug Fixes

  • Added line continuation '' and newline ignore in paranthesis (73d0134)

0.4.8 (2022-03-12)

Bug Fixes

  • Small memory improvements (e48b4ca)

0.4.7 (2022-03-12)

Bug Fixes

  • Fixed import not being parsed correctly (d515f7b)

0.4.6 (2022-03-11)

Bug Fixes

  • Added support for parenthesis in expressions (485f2cf)

0.4.5 (2022-03-11)

Bug Fixes

  • 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)

Bug Fixes

  • Fixed function parameters not being usable (086a231)

0.4.3 (2022-03-10)

Bug Fixes

  • Fix cli options being true by default (1cfbfa9)

0.4.2 (2022-03-10)

Bug Fixes

  • Added timer options alongside debug, fixed incorrect AST print (19e45e7)

0.4.1 (2022-03-10)

Bug Fixes

  • Improved Lexer and Parser error messages (09a97f3)

0.3.0 (2022-03-08)

Bug Fixes

  • Import path is now relative to the calling file. Added test (0af010d)

Features

  • 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)

Bug Fixes

  • Better handle cli positional arguments (eded5c9)

Features

  • Finished Linking method (781536f)
  • Initial commit for Object Linking using Clang Driver (efd2995)

0.1.0 (2022-03-03)

Bug Fixes

  • ✨ allow empty return in void functions (b3bde14)
  • 🐛 Fixed tests not working after refactoring AST (0495efd)

Features

  • ✨ Added assign operators (+=, -=, *=, /=, %=) (3fdfb63)

0.0.2 (2022-03-02)

Bug Fixes

  • 🐛 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)

Bug Fixes

  • Removed version from CMake, using github releases instead (a6011b1)