All notable changes to the YuLang compiler will be documented in this file.
- Supported up to LLVM 16.
- Supported LLVM 12, 13, 14 and 15.
- More declarations of C standard library functions.
- Read operations of
IOlibrary. - Pointer-sized type
isizeandusize.
- A warning will be given when encountering a combination of
extern/inlineandimport. - Some method name in standard library module
strview.
- Value evaluation process on
VarLetDefAST. - Bugs about counting down in standard library module
range. - The process of handling reference types on
VarLetElemAST. - Value evaluation process on
IntAST. - Bugs about generating code on global constructor and global constant string.
- Bugs about casting integers to booleans.
- Relational operations between pointers.
- Perform multiple type casting operations at once (e.g.
x as u8 as i32). - Modules in standard library (
Queue,StrView,HashMap)
- Allowed type casting from functions/arrays to pointers.
- Allowed type casting from basic types to enumerations.
- Bugs about IR generation on
whenstatements, global variables/constants, enumerations and function calls. - Bugs about loads/stores of
volatiletype. - Comparison between
structtypes (IsIdentical). - Some details when the parser encounters a newline character.
- Bugs about type casting.
- Bugs about CFG simplification (
BlockMergepass). - Value evaluation process on
ImportAST. - Bugs about file existence check.
- Bugs about alignment of structures.
- Compilation errors in some LLVM versions.
- Yu IR: intermediate representation of YuLang.
- New mid-end, which can convert AST to Yu IR.
- Pass manager and passes.
- Back-end, which can convert Yu IR to LLVM IR, assembly or object file.
- Removed old AST to LLVM IR back-end.