Skip to content

Releases: LamkasDev/maple

1.1.0

19 Jun 12:44
cceb301

Choose a tag to compare

Features

  • Added support for functions on non-objects (that would be int/float/string/list)
  • Added 15 string functions, mostly according to Javascript's String object (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() throwing Function does not exist, rather than the actual error message (commit b5f2e6d)
  • Fixed built-in http_fetch to support paths and parameters (commits c70600f and 443e75f)

Other changes

1.0.0

09 Jun 17:40
d56de5e

Choose a tag to compare

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\packages for Windows and usr/bin/maple/packages for Linux)
  • Added a run_builtin_function that runs a built-in function by passing in a name and arguments as a list. (This is now only used for the http.maple package (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

02 Jun 19:10
1f6516e

Choose a tag to compare

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

30 May 06:45
0a40805

Choose a tag to compare

Features

  • Objects now have constructors with arguments, changing the syntax to include brackets and/or arguments after the OBJECT keyword
    New syntax would be like VAR 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

28 May 17:14
d6a2388

Choose a tag to compare

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

27 May 17:11
148b1f5

Choose a tag to compare

Features

  • Improved structure of the project
  • Added support for lists ([1, 2, 3] creates a list with 3 elements)
  • Added a FOREACH loop to loop through list elements

Fixes

  • No other fixes

Other changes

  • No other changes

0.8.1

26 May 18:29
44e59b2

Choose a tag to compare

Features

  • Improved memory management using smart pointers
  • Added experimental simple objects (created with NEW OBJECT)

Fixes

  • Fixed pre-compiled shell not working on Windows (commits 0ade37e and 7e6e81c)

Other changes

  • No other changes

0.8.0

24 May 12:07
768eaff

Choose a tag to compare

Features

  • Added single-line // comments
  • Added multi-line comments /**/

Fixes

  • Fixed arguments disappearing when calling functions multiple times (commit 7f32298)

Other changes

  • Added a Windows release action, so now binaries for both Linux/Windows will be available with every new release~

0.7.3

22 May 17:50
1b3ed52

Choose a tag to compare

Features

  • Replaced the THEN keyword with a curly bracket -> {
  • Replaced the END keyword 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 FLOAT and STRING addition

Fixes

  • Result is now not printed once running a file

Other changes

  • Added release actions

0.7.2

21 May 18:03
ed7acfa

Choose a tag to compare

Features

  • Added support for multi-line statements~

Fixes

  • No new fixes~

Other changes

  • Added automated tests~