Additions

  • Introducing a new data type: userdata. It is designed to store data from console results and can be utilized by $io:popen.

  • Added a novel mode for user input: %a. This mode facilitates reading all user input until the end of the file (EOF) is reached.

  • Introduced a new method: $utils:spawn. This method allows delaying the execution of a group until the program has completed its execution.

  • Added a new library: os. This library provides a portable way of utilizing operating system-dependent functionality.

  • Implemented an overflow error mechanism to handle situations where a table or object exceeds the system's capacity.

  • Introduced a memory error mechanism to address cases where a table or object becomes too heavy for the available memory.

  • Added a new flag to the command environment: --version. Users can now check the current version of Prolix with this flag.

  • Implemented a new EOF error mechanism. The interpreter will now handle special characters in user input (e.g., ^Z) by triggering an EOF error.

  • Added a package manager to facilitate the installation and creation of modules in collaboration with the community.

Changes

  • Objects can now be written without spaces. For example, "$ myObject" is now an accepted format.

  • Adjusted the object ID range to be from 0x100000 to 0xffffff.

  • $io:open will now create a new file if the specified file does not exist.

  • Updated the module import require statement. It can now be an identifier instead of a string path, providing a more straightforward syntax.

Fixes

  • Negative numbers will now produce an error if the value is "-".

  • The special attribute __index__ will no longer initialize class attributes.

  • Resolved issues with the math module. Methods that do not exist will now generate errors.

  • Floating-point number calculations have been fixed. For example, 0.1 + 0.2 = 0.30000000000000004.

  • Removed a supposedly working-class class for the math class to prevent math domain errors (e.g., math_edit, _math_edit, etc.).

  • Resolved an issue with method arguments. The conversion of GArray from C to table in Prolix now works correctly.

  • The require statement can now import modules from both executable paths and file paths.

  • Class attribute values can now be a table.

  • An empty group will now be ignored instead of performing no action.

  • Setting type group to an object attribute or table (array) will now throw an unknown error, causing an End of Expression (EOE).

  • Fixed the interpreter traceback log and resolved the loop recursion bug.

  • $utils:tick is now more accurate in measuring time.

  • When the program completes and exits, it will return code 1 instead, preventing the program from encountering a return error in C.

  • System global objects are currently accessible but not editable in the class's group type.

  • Prolix's execution speed has been upgraded and is approximately ~30% faster than the old version.

Did you find the error?

  • Join our community by clicking here.