3.0.4 - Busy Brontosaurus

What's new

This is LDPL 3.0.4 Busy Brontosaurus. This release fixes all bugs found in LDPL 3.0.3 and enhances compatibility with C++ extensions. Also:

  • The -n / --non-static compiler flag has been completely added (and documented here).
  • The ERROR-CODE and ERROR-TEXT system variables have been added to the language. When an operation that could potentially fail is executed (for example loading a file), these variables will report the result. Documented here.
  • The statement EXTERNAL SUB-PROCEDURE has been added to the language and documented in the reference so you can call LDPL SUB-PROCEDURES from C++ code.
  • The statement IN - SOLVE has been added to the language and documented in the reference.
  • The statement LOAD FILE has been expanded to use the ERROR-CODE and ERROR-TEXT system variables and has been documented in the reference.
  • The statement STORE CHARACTER CODE - IN has been expanded to use the ERROR-CODE and ERROR-TEXT system variables and has been documented in the reference.
  • Identifier naming schemes have been properly defined here.
  • Valid number literal schemes have been properly defined here.
  • The compiler codebase has also been strongly simplified.
  • The -c compiler flag has been added to accept source from standard input (more here).
  • The --version and --help messages have been updated to be more informative.
  • The commands make install and make uninstall have been added to the Makefile.
  • A man page for LDPL has been added to the repository and is installed along with the compiler when installing LDPL via make install. To check it just run man ldpl.

This release has been tested by the LDPL Test Battery and should work stably, but should you come across a bug do not hesitate to report it. Special thanks to @dvkt and @dgarroDC, their wonderful contributions made this release possible.

Known bugs:

  • ERRORCODE and ERRORTEXT are not reset after a successful STORE CHARACTER CODE OF. You should reset them manually if you use the binaries and source provided here.
  • EXECUTE AND STORE EXIT CODE is not returning the proper exit codes for values other than 0.

Source Code

The source code for this release can be downloaded below.

Binaries

Windows x64, macOS x64 and Linux x64 binaries are provided. LDPL 3.0.4 should also work on Windows x86, ARMv8 Linux, Android Termux, PPC Linux and PPC OS X. If you are on one of these platforms, please download the source code and compile LDPL yourself by following the instructions detailed on README.md. In order to build and use the LDPL compiler, C++11 is required on your $PATH.