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)
FixedCompilation errors when usingWAIT - MILLISECONDSstrings (f43d760)FixedBacklashes not working in STORE QUOTE strings (053bf6e)FixedCompilation errors when using STORE QUOTE strings (e216876)FixedCompilation errors when using LDPL with gcc (1363668)AddedModulo operando (%) toIN - SOLVE -statement (5bb9d51)AddedComparison operators (<,>,<>,<=,>=,=) as alternatives forIS GREATER THAN,IS LOWER THAN, etc. (5bb9d51)AddedNew statement:FOR - FROM - TO - INCLUSIVE STEP - DO, that works likeFOR - FROM - TO - STEP - DO, but includes theTOvalue as well (both ends included) (440c961)UpdatedTheNUMBERtype now supports arbitrarily big integers (27f5453)UpdatedImproved the performance ofTEXToperations (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)
FixedError reporting for mixed-type operations (#164) (aff109a).FixedNumber to text casting error using the wrong datatype (43e3bf0).FixedValidation of container accesses for #166 (0567ea9).ImprovedFile append error reporting (0e03607)AddedTrigonometry functions, power raising and other arithmetic operations (2d19752, 6e23474)AddedDatetime functions (bed65d7)ChangedThefor eachstatement now iterates keys when iterating on a map (2d6a760)RemovedRemoved support for LPM (8504b6e)AddUppercase / Lowercase conversion statements (aac1f81)ChangedReplace statement. The old one has been deprecated (9c2141f)AddRemove Element At statement (baa5378)FixedMinor 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)
FixedSome nested multicontainer accesses were not working as they should (#166) (0567ea9).FixedThe modulo operator was losing precision when working with negative values (d075883).
Release 4.4.2 (up to 763fbb3)
AddedAdded 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).ChangedMoved the definitions of the methods of the LDPL data type classes fromldpl-types.hinto the LDPL compiler (fac88b9).
Release 4.4.1 (up to 10a2caa)
FixedThe compiler wasn't identifying : as invalid code and tried to compile it, triggering C++ compiler errors (f10b7c0).ChangedThe LDPL man page has been updated to the latest version of the documentation (c95030e).
Release 4.4 (up to 956d048)
AddedAlternative "of" syntax added for multicontainer declaration (be03a8e).FixedFile loading now loads files without line breaks at the end correctly (70afa2c).FixedSub-procedure parameters weren't working when declared as multicontainers (ba24719).ChangedThe PUSH MAP statement now works with multi-dimensional lists (f309f6b).AddedThe FOR EACH statement now can be used with multicontainers (c50a614).AddedOS names can now be used with the FLAG statement to set OS-specific flags (24a8404).FixedThe 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,INCRandDECRstatements 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 andMAPs are equal (or not equal) in theWHILEandIFstatements. - The
VECTORtype has been renamedMAP. - Added the
LISTtype along some statements to use it. - Statements that stored multiple values in
MAPs (likeSPLIT) now do so inLISTs (and not inMAPs anymore). - Fixed some trailing whitespace errors within the
END QUOTEstatement. - Now you can
CALLsub-procedures before declaring them. - The
FORandFOR EACHstatements have been added. - The
IMPORTstatement has been added to import files to your project. - The
EXTENSIONstatement has been added to add C++ extensions to your project. - The
FLAGstatement 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 STATEMENTstatement 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
INCRandDECRstatements have been added as shorter ways to increment or decrement a value. Documented here. - The
-iflag now imports files matching the passed order. - The
REPLACE - FROM - WITH - INstatement has been added to replace the occurrences of a string with another string in a string variable. Documented here. - The
SPLIT - BY - INstatement has been added to split strings into a vector. Documented here. - The
GET INDEX OF - FROM - INstatement has been added to find the position of a substring in a string. Documented here. - The
COUNT - FROM - INstatement has been added to count the appearances of a string in another string. Documented here. - The
SUBSTRING - FROM - LENGTH - INstatement has been added to extract parts of a string. Documented here. - The
TRIM - INstatement 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:
CLEARto empty a vector,COPY - TOto copy a vector,STORE INDEX COUNT OF - INto get the number of elements in a vector andSTORE INDICES OF - INto 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-staticcompiler flag has been completely added (and documented here). - The
ERROR-CODEandERROR-TEXTsystem 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-PROCEDUREhas been added to the language and documented in the reference so you can call LDPL SUB-PROCEDURES from C++ code. - The statement
IN - SOLVEhas been added to the language and documented in the reference. - The statement
LOAD FILEhas been expanded to use theERROR-CODEandERROR-TEXTsystem variables and has been documented in the reference. - The statement
STORE CHARACTER CODE - INhas been expanded to use theERROR-CODEandERROR-TEXTsystem 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
-ccompiler flag has been added to accept source from standard input (more here). - The
--versionand--helpmessages have been updated to be more informative. - The commands
make installandmake uninstallhave 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:
ERRORCODEandERRORTEXTare 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 CODEis 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.
ABSis 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.