ZPE 1.6.6 is now available
ZPE 1.6.6, the version which I never believed I'd ever finish working on, is now available for download. I don't often post the changelog straight onto my blog but here's a look at it:
-- Version 1.6.6 --
- Fixed an issue with for loops
- Added the circumflex syntax for power e.g. 5^2 is 25 (five squared) and 5^3 is 125
- Added the variable mode to the -r ZAC. This mode is like single line mode except that variables and their values are persisted.
- Removed the Program read mode and the Multi line read mode
- Fixes with comments in the Zenith Parser
- Fixed an issue in for loop with reading lists
- Fixed an issue that caused negative numbers to convert to strings when parsed
- Added binary parsing into the compiler e.g. $v = 0b0101. Binary values always start with a 0b
- Added the to_decimal method to convert a string of binary, octal or hexadecimal characters to an integer
- Command line arguments are now separated from program arguments using a -args command line
- Added object inheritance
- New if statement optional syntax using the THEN keyword: $x = 10 if $x == 11 then print("Yes") end if
- Added the built-in object methods `inherit`, `serialise` and `get_definition`. Removed the general serialise and object_get_definition methods.
- Fixed an issue where in the single line interpreter variable values were not actually retained properly
- The single line interpreter no longer exits on an error but displays an error and continues.
- Fixed an issue in which new ZPEObject would set their values and variables to the FRIENDLY only access
- Added the optional 'code' parameter to the exit method
- Small performance improvement with the LAMP parser
- Added the cache_value and read_cache_value methods which read a value from a special secured file
- Added the get_version method which obtains the version number of the ZPE instance it is running within
- Added an option to disable methods from the runtime environment (using the properties file)
- Added negation of variables such as -$v and improved the method of negative values being used
Improved the way in which negative values are evaluated
It's quite extensive compared to other versions in terms of big features added. My favourite new feature is the improvement to the -r ZAC since it now uses the single line read mode but retains variable values between lines inlining it with interactive consoles in languages such as PHP. I also like the new power feature being a major part of the syntax and the new -args feature for the interpreter means that less time is spent figuring out what are ZPE command line arguments and what are program arguments making it run slightly faster (but also reducing the code base quite considerably). The to_decimal method is quite nice too, convert quickly between decimal and binary, octal and hex very quickly. Finally, I love the fact that it is now possible to quickly turn a positive value in a variable into a negative one with a simple - in front of the variable.
ZPE 1.6.6 will be the last version to use names from the Harry Potter universe, version 1.6.7 will be named Waverley after the railway station in Edinburgh and successive versions will take a similar approach being named after famous railway stations in Scotland.