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
IO
library. - Pointer-sized type
isize
andusize
.
- A warning will be given when encountering a combination of
extern
/inline
andimport
. - 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
when
statements, global variables/constants, enumerations and function calls. - Bugs about loads/stores of
volatile
type. - Comparison between
struct
types (IsIdentical
). - Some details when the parser encounters a newline character.
- Bugs about type casting.
- Bugs about CFG simplification (
BlockMerge
pass). - 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.