Skip to content

João v1.2.0

Compare
Choose a tag to compare
@Altoids1 Altoids1 released this 13 Jul 22:11
· 279 commits to main since this release
e12891d

This release focuses on solidifying the behaviour of João by ironing out edge-cases and making it in general a more polished, production-capable product.

Features 📺

  • In the globalscope, native functions random() and randomseed() have been added.
  • In /table, there's a new method: pick()
  • You can now properly make classes which inherit from native classes such as /table!
  • João can now take some command line options. -v spits out the current version, -h gives a help dialog listing the command options, etc.
  • João now has an interactive mode! If called with no arguments or with the -i argument, João takes on interactive mode, which allows writing an ad-hoc block within /main().
  • João now features several default global values! The math library now has PI and EULER, and there's also __VERSION, __VERSION_MAJOR and other things to provide info on the version of João that the code is running on!
  • Some behaviour has been moved to flags you may pass to the João executable: the -e flag to mark that you want the execution times benchmarked and displayed, and -m to mark whether you want the return value of /main() to be put to stdout.

Bugfixes 💅

  • Fixed some odd, broken inheritance behavior when building certain complex and overriding object trees.
  • Fixed some runtime errors not providing the full, more descriptive runtime error dialogue.
  • Fixed a critical bug around initializing a variable within a loop.
  • João now better supports complex left-hand sides in assignment statements.
  • Fixed weird parsing failures when attempting to access a multi-dimensional table by repetitive use of the bracket operator.
  • Fixed a bug that caused João to crash unexpectedly after some runtimes.
  • Fixed a bug where long comments on lines with whitespace would complain about "functional code" being on the same line as the comment.
  • Fixed buggy behaviour when multiple flags were passed to the executable.