Releases: LamkasDev/maple
Releases · LamkasDev/maple
1.1.0
Features
- Added support for functions on non-objects (that would be int/float/string/list)
- Added 15 string functions, mostly according to Javascript's
Stringobject (String Documentation) - Added 1 list function aswell (Array Documentation)
- Improved internals of lists to support mixing of data-types
- Lists now also support other lists/objects
- Added back improved trace-back for RuntimeErrors (still needs some work:tm:)
print()now supports message passed as int/float- Minor performance improvements
List of functions added
- String: (15)
char_at(),concat(),starts_with(),ends_with(),includes(),index_of(),last_index_of(),replace(),replace_all(),substring(),to_lower_case(),to_upper_case(),trim(),trim_start(),trim_end() - List (1):
concat()
Fixes
- Fixed loading default packages on Linux (commit e7068e8)
- Fixed
run()in shell outputting wrong error messages (commit 575d356) - Fixed
run_builtin_function()throwingFunction does not exist, rather than the actual error message (commit b5f2e6d) - Fixed built-in
http_fetchto support paths and parameters (commits c70600f and 443e75f)
Other changes
- Released a prototype version of Maple's site! Check it out - https://maplelang.org ❤️
1.0.0
Features
- Added an HTTP library with SSL support, included by default in all releases. This will allow for calling these functions later in the code with Maple. (This means there's an extra step in compiling on Windows and Linux)
- Maple will now automatically load default packages from a specified location, before running the script (
C:\Program Files\Maple\packagesfor Windows andusr/bin/maple/packagesfor Linux) - Added a
run_builtin_functionthat runs a built-in function by passing in a name and arguments as a list. (This is now only used for thehttp.maplepackage (will release later:tm:)) - Optimized the makefile to create a much more efficient and smaller releases
- Added support for creating lists with objects/lists. (Now everything should be fully supported for lists)
Fixes
- No other fixes
Other changes
- No other changes
0.9.1
Features
- Added support for classes (
CLASS) and constructors (CONSTRUCTOR) - Added support for the plus-equals (
+=) and minus-equals (-=) operators - Performance improvements
Fixes
- Fix checking of function's argument count, causing crashes when mismatched (commit 12a447c)
Other changes
- No other changes
0.9.0
Features
- Objects now have constructors with arguments, changing the syntax to include brackets and/or arguments after the
OBJECTkeyword
New syntax would be likeVAR obj = NEW OBJECT();(the default OBJECT's constructor doesn't have any arguments) - Object's variables and functions are now accessible/assignable (including another objects), together with chaining these calls and accessing/assigning those
- Objects now have their own contexts (instead of using the global one)
Fixes
- Fix undefined functions crashing the shell instead of throwing an error (commit 472dbec)
- Fix functions with curly brackets not parsing properly (commit b27ae3d)
Other changes
- No other changes
0.8.3
Features
- Improvements on the code structure
- Changed how semicolons (
;) work, now they're required after every expression, instead of between them like it was before.
If there is just a single expression in a block, it doesn't require a semicolon after it.
Fixes
- Fixed innacurate error mesages and their locations, also changed their wording to be correct according to the parser (commit 52b3d4c)
Other changes
- C++ 17 is now forced to be used with g++ (commit af28259)
0.8.2
0.8.1
0.8.0
0.7.3
Features
- Replaced the
THENkeyword with a curly bracket ->{ - Replaced the
ENDkeyword with a curly bracket ->} - Curly brackets are now required in all of the expressions
- Semicolons are now treated as new-lines instead of actual new-lines
- Semicolons are required to separate all expressions (except after last one)
- Added the
run()function to the shell (useful for debugging files) - Added support for
FLOATandSTRINGaddition
Fixes
- Result is now not printed once running a file
Other changes
- Added release actions