Releases: Lartu/ldpl
LDPL 5.1.0
About
This is LDPL 5.1.0 'Groovy Gualicho'. Rawrrr!
The version number has been increased by 0.1.0, because new, backward compatible functionality is introduced to the public API.
Changelog
Release 5.1.0 (up to 808ee5d)
Fixed
Compilation errors when usingWAIT - MILLISECONDS
strings (f43d760)Fixed
Backlashes not working in STORE QUOTE strings (053bf6e)Fixed
Compilation errors when using STORE QUOTE strings (e216876)Fixed
Compilation errors when using LDPL with gcc (1363668)Added
Modulo operando (%
) toIN - SOLVE -
statement (5bb9d51)Added
Comparison operators (<
,>
,<>
,<=
,>=
,=
) as alternatives forIS GREATER THAN
,IS LOWER THAN
, etc. (5bb9d51)Added
New statement:FOR - FROM - TO - INCLUSIVE STEP - DO
, that works likeFOR - FROM - TO - STEP - DO
, but includes theTO
value as well (both ends included) (440c961)Updated
TheNUMBER
type now supports arbitrarily big integers (27f5453)Updated
Improved the performance ofTEXT
operations (939288e)
Source Code
The source code for this release can be downloaded below. It can be built by running make
and installed using make install
in the extracted directory, provided you have c++11
installed on your system.
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.
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
Thefor 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'
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 readsLDPL 4.4.2 (i386)
when compiled for x86 platforms (3e42d10).Changed
Moved the definitions of the methods of the LDPL data type classes fromldpl-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'
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
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
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
andDECR
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
LIST
s andMAP
s are equal (or not equal) in theWHILE
andIF
statements. - The
VECTOR
type has been renamedMAP
. - Added the
LIST
type along some statements to use it. - Statements that stored multiple values in
MAP
s (likeSPLIT
) now do so inLIST
s (and not inMAP
s anymore). - Fixed some trailing whitespace errors within the
END QUOTE
statement. - Now you can
CALL
sub-procedures before declaring them. - The
FOR
andFOR 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
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
andDECR
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 andSTORE 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
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
andERROR-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 theERROR-CODE
andERROR-TEXT
system variables and has been documented in the reference. - The statement
STORE CHARACTER CODE - IN
has been expanded to use theERROR-CODE
andERROR-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
andmake 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 runman 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
andERRORTEXT
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
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
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
.