Skip to content

Releases: Lartu/ldpl

LDPL 5 'Groovy Gualicho'

27 Mar 01:01
Compare
Choose a tag to compare

LDPL 5 'Groovy Gualicho'

About

This is LDPL 5 'Groovy Gualicho'. Rawrrr! This release fixes all the bugs found in LDPL 4.4 and marks a new milestone in the history of LDPL.

From this point onwards, LDPL is considered complete and in minimal evolution mode. This means that language is supported, but its specification will intentionally be kept as unchanged as possible. Version numbers from now on will be incremental in integer steps, as releases will be released less often.

Changelog

Release 5 (up to 52423cf)

  • Fixed Error reporting for mixed-type operations (#164) (aff109a).
  • Fixed Number to text casting error using the wrong datatype (43e3bf0).
  • Fixed Validation of container accesses for #166 (0567ea9).
  • Improved File append error reporting (0e03607)
  • Added Trigonometry functions, power raising and other arithmetic operations (2d19752, 6e23474)
  • Added Datetime functions (bed65d7)
  • Changed The for each statement now iterates keys when iterating on a map (2d6a760)
  • Removed Removed support for LPM (8504b6e)
  • Add Uppercase / Lowercase conversion statements (aac1f81)
  • Changed Replace statement. The old one has been deprecated (9c2141f)
  • Add Remove Element At statement (baa5378)
  • Fixed Minor stability issues.

Source Code

The source code for this release can be downloaded below. It can be built by running make on the extracted directory, provided you have c++11 installed on your system.

LDPL 4.4 'Friendly Falcarius'

03 Dec 04:31
Compare
Choose a tag to compare

LDPL 4.4 'Friendly Falcarius'

About

This is LDPL 4.4 'Friendly Falcarius'. Rawrrr! This release fixes all the bugs found in LDPL 4.3, introduces os-specific flags, increases the usability of multicontainers and marks a new milestone in the history of LDPL.

Changelog

Release 4.4.3 (up to 75b9a48)

  • Fixed Some nested multicontainer accesses were not working as they should (#166) (0567ea9).
  • Fixed The modulo operator was losing precision when working with negative values (d075883).

Release 4.4.2 (up to 763fbb3)

  • Added Added an (i386) note to the version information of the 32 bit release of LDPL so it reads LDPL 4.4.2 (i386) when compiled for x86 platforms (3e42d10).
  • Changed Moved the definitions of the methods of the LDPL data type classes from ldpl-types.h into the LDPL compiler (fac88b9).

Release 4.4.1 (up to 10a2caa)

  • Fixed The compiler wasn't identifying : as invalid code and tried to compile it, triggering C++ compiler errors (f10b7c0).
  • Changed The LDPL man page has been updated to the latest version of the documentation (c95030e).

Release 4.4 (up to 956d048)

  • Added Alternative "of" syntax added for multicontainer declaration (be03a8e).
  • Fixed File loading now loads files without line breaks at the end correctly (70afa2c).
  • Fixed Sub-procedure parameters weren't working when declared as multicontainers (ba24719).
  • Changed The PUSH MAP statement now works with multi-dimensional lists (f309f6b).
  • Added The FOR EACH statement now can be used with multicontainers (c50a614).
  • Added OS names can now be used with the FLAG statement to set OS-specific flags (24a8404).
  • Fixed The USING PACKAGE statement wasn't working in 4.3 and has been fixed (76233a0).

Known Bugs and Workarounds

Visit the LDPL 4.4 release webpage.

Source Code

The source code for this release can be downloaded below.

Binaries

Linux i386 and Linux amd64 binaries are provided below.

LDPL 4.4 also runs on i386 and amd64 BSD systems, 32 and 64 bit macOS, mac OS X, 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, a C++11 compiler is required on your $PATH.

LDPL 4.3 'Eloquent Eoraptor'

03 Nov 02:58
Compare
Choose a tag to compare

LDPL 4.3 'Eloquent Eoraptor'

What's New

This is LDPL 4.3 'Eloquent Eoraptor'. Rawrrr! This release introduces multicontainers, extends support for C++ extensions, updates text handling to make it faster and adds support for LPM, the LDPL Package Manager. It also fixes all the bugs found in LDPL 4.1 and marks a new milestone in the history of LDPL!

This release changes the license used by LDPL from the GNU Public License Version 3.0 to the Apache 2.0 license, to make it less restrictive.

The LDPL Documentation has also been rewritten for this release, so you can learn about these new features there. 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.

Source Code

The source code for this release can be downloaded below.

Binaries

Linux amd64 binaries are provided. LDPL 4.3 should also work on OS X, 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.

LDPL Diligent Dreadnougtus 4.1

17 Aug 07:50
b9abdc3
Compare
Choose a tag to compare

What's New

This is LDPL 4.1 'Diligent Dreadnoughtus'. Rawrrr! This is just an incremental update from LDPL 4.0, following the new versioning system (main version . bugfix). Bugs have been fixed and string comparison is now a thing thanks to the work of @joshiemoore (thank you!).

Binaries

macOS binaries are provided. LDPL 4.1 should also work on x64 Linux, 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.

4.0 - Diligent Dreadnoughtus

27 Jul 22:49
Compare
Choose a tag to compare

4.0 - Diligent Dreadnoughtus

What's new

This is LDPL 4.0 Diligent Dreadnoughtus. Rawrrr! This release reworks a great part of the language, fixes all the bugs introduced in LDPL 3.0.5 and marks a new milestone in the history of LDPL! This release is not backwards compatible with 3.0.x LDPL releases, as most of the redundant statements have been moved into the LDPL Standard Library.

New features and changes:

  • Windows support has been dropped.
  • The ADD, SUBTRACT, MULTIPLY, DIVIDE, CEIL, ABS, INCR and DECR statements have been removed and moved to the Standard Library.
  • Many statements have been renamed in a more consistent fashion. Check the LDPL documentation should any older statement not compile.
  • Now you can check if LISTs and MAPs are equal (or not equal) in the WHILE and IF statements.
  • The VECTOR type has been renamed MAP.
  • Added the LIST type along some statements to use it.
  • Statements that stored multiple values in MAPs (like SPLIT) now do so in LISTs (and not in MAPs anymore).
  • Fixed some trailing whitespace errors within the END QUOTE statement.
  • Now you can CALL sub-procedures before declaring them.
  • The FOR and FOR EACH statements have been added.
  • The IMPORT statement has been added to import files to your project.
  • The EXTENSION statement has been added to add C++ extensions to your project.
  • The FLAG statement has been added to pass flags to the C++ compiler.
  • Sub-procedures now can receive parameters by calling them using CALL mySub WITH parameters. Check the documentation for more information.
  • Sub-procedures now can have local variables by using the local-data: section.
  • The CREATE STATEMENT statement has been added to allow for the creation of new LDPL statements.
  • Many bugs fixed.

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 @dgarroDC for his awesome contributions.

Bugs

None known yet.

Source Code

The source code for this release can be downloaded below.

Binaries

Linux x64 binaries are provided. LDPL 4.0 should also work on x64 macOS, 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.

3.0.5 - Creative Carnotaurus

26 May 08:06
Compare
Choose a tag to compare

3.0.5 - Creative Carnotaurus

What's new

This is LDPL 3.0.5 Creative Carnotaurus. Rawrrr! This release fixes all bugs found in LDPL 3.0.4. Also:

  • The INCR and DECR statements have been added as shorter ways to increment or decrement a value. Documented here.
  • The -i flag now imports files matching the passed order.
  • The REPLACE - FROM - WITH - IN statement has been added to replace the occurrences of a string with another string in a string variable. Documented here.
  • The SPLIT - BY - IN statement has been added to split strings into a vector. Documented here.
  • The GET INDEX OF - FROM - IN statement has been added to find the position of a substring in a string. Documented here.
  • The COUNT - FROM - IN statement has been added to count the appearances of a string in another string. Documented here.
  • The SUBSTRING - FROM - LENGTH - IN statement has been added to extract parts of a string. Documented here.
  • The TRIM - IN statement has been added to trim trailing and leading whitespace from a string. Documented here.
  • A number of statements to make vectors more powerful have been added: CLEAR to empty a vector, COPY - TO to copy a vector, STORE INDEX COUNT OF - IN to get the number of elements in a vector and STORE INDICES OF - IN to store the indices of a vector in another vector.

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 for their awesome contributions.

Bugs

While not technically a bug, the WAIT statement included in this release only works under Windows MinGW if the GCC thread model is set to POSIX. If you need to use WAIT with Win32 threads, you'll have to build the latest development version yourself. To check your current thread model run gcc -v.

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.5 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.

3.0.4 - Busy Brontosaurus

05 May 23:50
Compare
Choose a tag to compare

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.

LDPL 3.0.3 - Active Argentinosaurus

21 Apr 23:57
c1c3651
Compare
Choose a tag to compare

What's new

This is LDPL 3.0.3 Active Argentinosaurus. This release mostly addresses bugfixes for bugs found in LDPL 3.0.0. Versions 3.0.1 and 3.0.2 did not receive a formal release, thus the leap to 3.0.3. As we aren't releasing bugfix versions anymore (just regular language releases with incremental features and bugfixes from the previous version), the version numbering system will now reflect <retrocompatibility breaking standard version>.<major version>.<minor version>. Also, the -ns compiler flag has been partially added (for Linux only, Windows and macOS build non-statically by default). A new statement STORE QUOTE has been added to the language and documented in the reference. This is also the first release to bear a dinosaur code-name.

This release has been tested and should work stably, but should you come across a bug do not hesitate to report it.

Known Bugs

  • LDPL for Windows is building non-static binaries. This was not the intended behaviour and will be fixed.
  • ABS is broken and doesn't work as expected.

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.3 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.

LDPL 3.0.0

13 Apr 03:05
ed7d8aa
Compare
Choose a tag to compare

LDPL 3.0.0

What's new

This is LDPL 3.0.0, expanding the horizons of the language! This new version is the biggest update yet since the release of LDPL, mostly thanks to the tireless work of ʇʞʌp. LDPL now has C++ compatibility, so you can share LDPL variables and functions with C++ (and viceversa) and, among other things, use LDPL to create graphic applications (with SDL) or use any other C++ library you'd like (provided you write an LDPL compatible wrapper for it).

The new extension is documented in the reference. Support for LABEL and GOTO statements has also been added due to popular request, so you can go make Dijkstra turn in his grave (you monsters). There's also a new ELSE IF, with support for all the same statements as the regular IF.

This release has been tested and should work stably, but please report any bugs you find should you come across one.

Known Bugs

Due to a last minute addition, this release doesn't have a functioning ELSE statement. As a replacement you can use ELSE IF 0 IS EQUAL TO 0 THEN for now. This has been fixed in the repository.

Source Code

The source code for this release can be downloaded below.

Binaries

Being a major LDPL release, Windows x64, macOS x64 and Linux x64 binaries are provided. LDPL 3.0.0 should also work on Windows x86, ARMv8 Linux, 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.

LDPL 2.2.0

30 Mar 22:43
Compare
Choose a tag to compare

ldpl 2.2.0

What's new

This is LDPL Stable Release 2.2.0. Hooray! This new version brings a lot of new stuff to the table. First of all, many bugs have been fixed. Then, this new statements have been added to the language (and will be added to the reference later today):

  • CALL SUB-PROCEDURE procedureName was a bit lengthy and tiresome to write, so now you can use CALL procedureName instead if you want. The older version is still supported for compatibility.
  • In previous versions of LDPL, loading files required the use of hacky shenanigans using the EXECUTE function. Not anymore! Now you can use LOAD FILE filename IN variable to load the contents of a file into a text variable!
  • Along with LOAD FILE, you can now use WRITE x TO FILE y to write the value x to a file called y.
  • Along with WRITE x TO FILE y, you can now use APPEND x TO FILE y to append the value x to the file called y.
  • In previous versions of LDPL, pausing your program for a moment required usage of WHILE loops. That's not accurate, so in LDPL 2.2.0 the WAIT x MILLISECONDS command has been introduced. It does what the can says!
  • Joining more than two values in previous versions of LDPL required the usage of multiple JOIN statements, and that was kinda cumbersome. So now you can use IN variable JOIN value1 value2 value3 value4 ... to join as many values as you want in a text variable, in just one line of code!

Source Code

The source code for this release can be downloaded below.

Binaries

LDPL has been tested and works on x64 Windows, x64 macOS, x64 Linux, ARMv8 Linux, PPC Linux and PPC OS X. Please download the source code and compile LDPL yourself by following the instructions detailed on README.md. Binaries for x64 Windows and Linux will be uploaded later today.