Skip to content

v0.4.0 - Default values, File & Folder imports & Modular builds

Compare
Choose a tag to compare
@aldrinmathew aldrinmathew released this 15 Oct 18:13
26d09ba
  • Added default values to the language
  • Integer literals are now responsive and can adapt to the expected bitwidth in the environment
  • Added optimisations to prevent multiple copies in local declaration and assignment
  • Files and Folders can now be brought into modules. The import can be named or not. This sets up a basic but powerful import system for the language
  • Modules now handle their own compilation and hence this new system can be leveraged to manage customised builds for libraries. The presence of main function will make the output an executable. Otherwise, the library can be built into a shared or static library depending on user configuration. The ability to customise build format is work in progress
  • The user is warned about implicit copy and move and is also asked to make it explicit. Making these explicit will not change the behaviour of the code
  • Added the dereference operator #. This is useful for iterators and similar datatypes
  • Arbitrary integer bitwidths can now be used only if they are imported into the module. However, there is no system to import integer bitwidths as of now. This is an easy thing to do. I just didn't manage to start working on this
  • Added analyse command to the cli configuration that will prevent compilation to object files. Only lexing, parsing, LLVM IR generation and analysing is done if this command is used instead of build or run