Skip to content
This repository has been archived by the owner on Nov 29, 2023. It is now read-only.

0.1.1

Compare
Choose a tag to compare
@l1mey112 l1mey112 released this 09 Nov 14:12
· 128 commits to master since this release

Release Changelog Complete Post - stas 0.1.1

Changelog

  • Visual Studio Code support for stas with the stas-vscode extension. The extension is published at the open-vsx registry, download a copy there. If you are using vscodium, search for it in your extensions tab!
  • Support for syntax highlighting in the Hugo static site generator, although you may need to wait for a new release from them (build it from source for the impatient).
  • New addr keyword. Used to get addresses of variables declared with the auto keyword.
  • Single character literals denoted with backticks. `A`, `\n`, `0`
  • Unreachable code declared after the use of the ret keyword is now checked for and is a compiler error.
  • Use the -r switch to execute the file after compilation, arguments after this switch will ignored and passed to the program.
  • Scanner and token improvements, to make way for a rich error reporting system in a later release.
  • Stack backtraces showing exactly what value was pushed onto the stack and where on a compiler error.
  • Pretty printing of string literals in generated assembly.
  • NASM backend, generates object files and annotated assembly with exported labels with the -g switch.
  • Many improvements to codegen, generated code takes up a smaller footprint.
  • --dump-tok and --dump-ir switches for dumping the compiler's inner data structures.
  • Tail recursion optimisation.
  • Code generation when inlining function bodies has been improved greatly.
  • -v or --verbose enables verbose mode. Compiler passes will be timed and lots of information will be dumped.
  • Negative numbers (about time). Signed comparision has been possible with <s, >s, <=s, >=s.
  • Bugfix: stack checks on branches with early returns with the ret keyword are no longer implemented with a nasty hack.
  • Bugfix: consecutive inline functions with branches no longer have their labels conflict.
  • Bugfix: now waits for the backend to finish and handles it's exit code.
  • Bugfix: now passes a proper argv[0] to child processes.

Note: It is not recommended that you build stas and experiment with it in this state. Executable paths are hard coded, this will be cleaned up in the 0.1.2 release.