-
--compileOnly
flag which compiles to a binary, but does not execute the result - Primitive class implementation
- Delete instruction to consume values
- Class destructors
- Class clone operations
- String class
- No longer need a return statement on a void function
- Bitwise cast (for core development only)
- Elif statement
- Fixed inverted signedness issues on integer comparison
- Escaped string characters
- Constant Function Arguments
- Bug with nested structure access
- Composition of stats where value is undefined in all
- Consumption of single continuous state (when one branch of an if returns)
- Fixed not detecting deconstruction of values within if-statements
- Ability to override function in file
- Allowing multiple definitions of structure term
- The
uvc
command now executes the result by default. - No longer need a return statement for void functions
- Tweaked the automated testing to reflect the new argument changes
- Compiler skips merging changes between a branch if the value has not been updated in either branch
- Ability to lend primitive values
- Can now use external structures within uniview code
- Fixed being unable to use structure access chaining
a.b.c
- Fixed unix segfault not being picked up as a failed execution
- Primitive numbers are 64bit by default.
- Compiler now generates all IR in fragments before joining (will assist with template implementation).
- Changed
sizeof
function to being a compiled default non-inlined function. - Changed primitive function name
static_cast
tocast
. - Probabilities are now used to represent loading structure values (GEPs) to remove irrelevant code and clean up the compiler code base.
- Able to create a clone of any linear value
- Able to parse any linear variable forward to a function call and reasign the modified result
- Compiler parameter for llvm optimisation sweeps
- Cloning of linear variables
- Lending a reference forward to child functions (linear variables only)
- Borrow checker ensuring child function doesn't corrupt the reference
- Ability to include external files to the LLVM build pass
- Ability to assume more complex external filenames
- Basic math library
- f64 printing
- Verify only compilation mode
- Expression chaining
(1 + 2 + 3)
- Opperator Precedence
- Experimental Time Library
- Not parsing structures properly on return
- Printing error buffer twice on clang compilation failure
- Crash when using undefined type in template
- Returning within if-statement causing that branch's instructions to not be saved
- Composing structures with structure elements
- Frash during scope cleanup due to bad code reference
- Using undefined variables within expressions causing crash
- Fixed crash with unhandled call return values
- Crash when structures are defined after accessing attribute within IR
- Decomposed structure elements now have the correct internal names for error messages
- Compile errors now use path relative to root file (shorter printing)
- Assign and return numbers
- Use primitive variable inputs
- Basic operands with primitive types
- Primitive types using non-linear type system for easier use
- Basic automatic test suite
- Typecasting of primitive types
- Implemented if statements
- Clearer Error logs. Embeds code snippet with line ref
- Strucutre manipulation support
- Declaration type can be derived from assignment
- Now uses colon notation for types
- Fixed strings requiring pointer types
- Internal representation of LLVM-IR now allows for latent code branches (sections of code which can be enabled after initial compilation)
- Now executes clang compilation synchonously for cleaner outputs
- Won't execute the output if clang compilation fails