To use this website fully, you first need to accept the use of cookies. By agreeing to the use of cookies you consent to the use of functional cookies. For more information read this page.

Official ZPE Programming Environment documentationZPE Changelog

Since version 1.2.01, there have been 1496 changes recorded in this changelog. From this tab you can read about any version number and the changes it brought to ZPE. Click on a zone below to find out more:

Version 1.x

    10.01.2011

    1. Complete rewrite of BlackRabbit Script

    31.12.2012

    1. Stopped developing BlackRabbit Script
    Version 1.2.0

      19.02.2015

      1. Added basic print support support using if return statement
      2. Added support for variables from the command line
      Version 1.2.01

        20.02.2015

        1. Added CLI support to BRS
        2. Added support for reading code in Zenith Engine
        3. Added file read support to BRS
        4. Translation process added
        5. Variable assignment added
        6. Print function added

        21.02.2015

        1. Evaluate function added
        2. String support added
        3. Added GUI mode [experimental] to BRS

        22.02.2015

        1. Global variables added
        2. Faster access to variables in Zenith Engine
        3. Custom commands added
        4. Functions added
        5. Call function added

        23.02.2015

        1. Added help command to BRS
        2. Added type output options
        3. Added return output options

        24.02.2015

        1. Added conditional statements
        2. Added if statements
        3. Added else statements

        25.02.2015

        1. Added add, subtract, multiply and divide functions
        2. Added modulo function
        3. Added sin, cos and tan functions

        26.02.2015

        1. Added variable reassignment
        2. Improved performance of conditional statements

        27.02.2015

        1. Added while loops
        2. Fixed an issue with if statements
        3. Added escape characters

        28.02.2015

        1. Added sqrt function

        01.03.2015

        1. Added the ability to overwrite Zenith Engine functions
        2. Added get_char_at function
        3. Added get_string_length function
        4. Added unix_runtime function

        02.03.2015

        1. Added get_constant function

        03.03.2015

        1. Added power function
        2. Added greater_than function
        3. Added less_than function

        04.03.2015

        1. Added comments
        2. Added set type
        3. Added set_contains function
        4. Added set_add_elements function
        5. Added set_get_length function
        6. Added set_union function
        7. Added set_intersection function
        8. Added set_difference function

        05.03.2015

        1. While loop improvements added

        06.03.2015

        1. Improved the speed of the interpreter
        2. Fixed an issue with strings

        07.03.2015

        1. Added a function line for running a single function

        08.03.2015

        1. Improved substitution of variables

        10.03.2015

        1. Added format_number

        18.03.2015

        1. Constants are now signified with an asterisk *
        2. Fixed a flaw in the substitution that prevented a variable being substituted if it was the last in a parameter string
        3. Added increment and decrement
        4. Added mode, median, mean, max, min and range
        5. The mode, median, max, min and range also work on both sets and numbers
        Version 1.3.0

          09.05.2015

          1. Complete redesign of core and the introduction of the Zenith Parsing Engine
          2. Improved parsing speed
          3. Redesign improves ease of creating new functionalities
          4. New and improved while statements
          5. Functions can now be nested in calls such as add(add(1, 1), 2)
          6. Variables can be assigned to function calls
          7. Interpreter speed improved
          8. Faster substitution
          9. Better unix_execute function speed

          10.05.2015

          1. Improved speed of condition testing
          2. Assignment of functions
          3. Tree parser added
          4. Compile feature added

          11.05.2015

          1. Logic (if and while) now supports nested functions
          2. Logic supports bracketed expressions within if and while statements
          3. Variables can now be assigned to each other: e.g. $j = $v
          4. Added parameter passing to functions

          12.05.2015

          1. Fixed a flaw in subtract which lead to the first number being removed twice
          2. Fixed a flaw in which conditional statements failed if a variable name is used
          3. Re-added file_open function
          4. Added file_exists function
          5. Re-added random_number function
          6. It is no longer necessary to specify an output file in compilation. If there is no output specified it defaults to out.brs.
          7. While loops can be ended by either end while or end loop

          13.05.2015

          1. Variables can be assigned to logical evaluations, such as $v = (true || false). All expressions must be bracketed.
          2. Comments can be included after code on the same line (all programs need recompiled)
          3. Added multi line comments with the /* */ representation
          4. Added absolute_value function

          14.05.2015

          1. Added string_contains
          2. Sets are now working as definitions and as parameters
          3. Fixed a flaw when compiling without an output file
          4. There is no longer the requirement of spaces between variable declarations and comparisons
          5. Added elseif statements to if statements
          6. Added recursion restriction on functions
          7. Program is more friendly to files not found

          18.05.2015

          1. Added get_type function
          2. Added set_intersection function
          3. Added set_union function
          4. Added list_add function
          5. Added list_remove function
          6. Added list_contains function
          7. Added set_from_list function
          8. Added list_get_index_at function
          9. Added list_get_length function
          10. Fixed a flaw in which empty sets cannot be defined
          11. Conditional statements now support comparison of sets
          12. Added get_minimum function
          13. Added get_maximum function
          14. Added get_range function
          15. Added get_mean function
          16. Added greater_than function
          17. Added less_than function
          18. Fixed a problem in which an empty string cannot be represented
          19. Added get_mode function
          20. Fixed a flaw in which a string would be added as a name to a function
          21. Another flaw fixed with return function
          22. Another flaw fixed on the return function to exit functions
          23. Fixed a problem in which numeric values were surrounded by quotes within sets
          24. Fixed an issue with the list_remove function which would only remove numbers equal to the position to remove from
          25. Added list_insert_at_index
          26. Language checks now check for accidental semicolons at the end of lines

          19.05.2015

          1. Added for loops for($i = 1, $i < 10, 1)
          2. Added char_to_int to convert a character to an integer
          3. Added int_to_char to convert an integer to a character

          20.05.2015

          1. Added permission mode. Levels can be defined using arguments on the -i and -r modes.
          2. Added is_file function
          3. Added is_directory function
          4. Added directory_exists function
          5. Fixed an issue where parameters would be read over local variables
          6. For can now be assigned to another variable e.g. for($i = $j, $i < 10, 1)
          7. For now deletes variables after the for loop

          21.05.2015

          1. Added do until loops
          2. Added the round function
          3. Added the factorial function
          4. Added -m multiple line interpreter mode
          5. Added get_median function
          6. Added list_sort function
          7. Added list_reverse function
          8. Added list_swap_elements function
          9. If statements and loops can have empty bodies
          10. Minor fixes that make it easier to develop small empty statements
          11. Added select-when statements
          Version 1.3.2

            22.05.2015

            1. Pass parameters from function line to program
            2. Added is_numeric function
            3. Added string_split function
            4. Added string_find_occurrences function
            5. Added string_get_substring function
            6. Added get_os_name function
            7. Added string_to_lowercase function
            8. Added string_to_uppercase function

            25.05.2015

            1. Added a simple graphical user interface to the engine

            05.06.2015

            1. Changed the output of errors to stderr rather than stdout
            2. Added the std_error function
            3. Fixed a flaw with when statements that caused strings to evaluate incorrectly
            Version 1.3.3

              06.06.2015

              1. Added internal local functions (functions defined within functions)
              2. Due to minor changes, the constant character is no longer * but #
              3. Added string_ends_with function
              4. Added string_starts_with function
              5. Added string_matches function

              07.06.2015

              1. Added associative arrays
              2. Added associative_array_get function
              3. Added associative_array_put function
              4. Added associative_array_contains function
              5. Fixed the problem occurring with adding arguments to programs

              10.06.2015

              1. Added the import function to import compiled scripts
              2. Changed the way scripts compile
              3. Boolean expressions can now be assigned to variables without bracketing
              4. Logical expressions can now be passed to functions

              11.06.2015

              1. Fixed an issue with boolean expressions given to functions
              2. Added the invert_value function
              3. Fixed a flaw in which negative numbers were some times discarded as not being integers
              Version 1.3.4

                12.06.2015

                1. Error messages are more useful with the compiler and interpreter
                2. ZPE automatically adds all scripts found in the "libs" folder
                3. Fixed an issue with constants not being recognised

                13.06.2015

                1. Fixed the arguments system
                Version 1.3.4.90

                  15.06.2015

                  1. Added the list_update_at_index function
                  2. Changed the greater_than function to the greater_than_all function
                  3. Changed the less_than function to the less_than_all function
                  4. Added the equals_any function
                  5. Added the to_binary function
                  6. Added the to_octal function
                  7. Added the to_hexadecimal function
                  8. Added pre-increment tools
                  9. Added pre-decrement tools
                  10. Added post-increment tools
                  11. Added post-decrement tools
                  12. Certain functions cannot be overridden. More at http://www.jamiebalfour.scot/projects/zpe/
                  Version 1.3.5

                    15.06.2015

                    1. Modified the increment and decrement tools syntaxes
                    2. Added the file_get_size function
                    3. Fixed a flaw in which doubles could not be incremented

                    19.06.2015

                    1. Fixed a flaw in which conditions and parameters would not work correctly with post increments and post decrements
                    2. Improved constants. Constants can also be defined if they are not already defined, but they cannot be overwritten.
                    Version 1.3.5.32

                      20.06.2015

                      1. Added support for numbers with exponents, symbolised by an E
                      2. Fixed a flaw in which post decrement and post increment did not function as expected

                      28.06.2015

                      1. Added file_open_image function
                      2. Added limit_real function
                      Version 1.3.5.63

                        29.06.2015

                        1. Fixed a problem with heap space
                        2. Added recursion support again
                        3. Added image_transform_greyscale function
                        4. Added image_transform_sepia function
                        5. Added Real Math Mode mathematical evaluation

                        30.06.2015

                        1. Negative numbers can be included in mathematical expressions
                        2. Fixed a flaw in which substitution did not take place
                        3. Fixed a flaw in which variables could not be assigned to an incrementing or decrementing value
                        4. Changed the way increment and decrement work under the hood
                        5. Added mathematical evaluation to conditional statements
                        6. Fixed a minor flaw that affected condition checking
                        7. Added run_command function to run commands on the fly
                        8. Fixed an issue with permission levels
                        9. Added bracketed mathematical expressions
                        10. Fixed a flaw in the bracketed expression evaluation
                        Version 1.3.5.68

                          30.06.2015

                          1. Added modulo calculations to mathematical expressions
                          2. Fixed another flaw in the mathematical evaluation
                          3. Added backtracking requirement for mathematical evaluation
                          4. Removed backtracking requirement previously added
                          5. Fixed several more flaws in mathematical evaluation
                          6. Fixed an issue in which numbers with decimal places would cause a crash when incremented or decremented

                          01.07.2015

                          1. Added support for constants into mathematical evaluation
                          2. Fixed a flaw in which mathematical evaluation could only be done once
                          3. Fixed an issue with subtraction
                          4. Cleared up a lot of bugs in the RMM evaluator.
                          Version 1.3.5.90

                            02.07.2015

                            1. Fixed a bug with pre-increment and pre-decrement
                            2. Added increment and decrement values to math evaluation
                            3. Fixed an issue with subtraction in mathematical evaluation
                            4. Added the -math mode for mathematical evaluation
                            5. Added mathematical evaluation to associative arrays and lists
                            6. Fixed a bug with the exit function in the -math mode

                            07.07.2015

                            1. Added the conversion option. It currently only supports very basic conversion to Java.
                            2. Fixed an issue with mathematical evaluation
                            3. Updated the start up information with the new -c mode as well as the -doc mode.
                            Version 1.3.5.190

                              08.07.2015

                              1. Added the unset function for removing variables after use

                              09.07.2015

                              1. Added the file_save_image function for saving images
                              2. Fixed an issue that prevented using global variables that used lists, associative arrays, structure and so on
                              Version 1.3.6.0

                                10.07.2015

                                1. Added structures
                                2. Added structure variables
                                3. Added structure functions

                                11.07.2015

                                1. Added structure variable assignment
                                2. Added structure variable access methods
                                3. Removed increment function
                                4. Removed decrement function
                                5. Added pointer evaluation to parameters, conditions and function calls
                                6. Fixed a flaw in which parameters of more than length 1 would not function
                                7. Fixed an issue with associative arrays

                                12.07.2015

                                1. Fixed an issue with for loops in which assignment caused a crash if the assignment was evaluated
                                2. Added the image_transform_resize function

                                15.07.2015

                                1. Added the image_transform_invert_colour function
                                2. Added the image_transform_rotate function
                                3. Fixed an issue with the is_set command evaluating incorrectly
                                4. Fixed an issue with structure
                                5. Added the start function (identical to the main function)
                                Version 1.3.7.0

                                  21.07.2015

                                  1. Plugin system is functioning now, Java-based plugins can be written
                                  2. Removed the add function
                                  3. Removed the subtract function
                                  4. Removed the multiply function
                                  5. Removed the divide function
                                  6. Removed the modulo function

                                  22.07.2015

                                  1. Added handle_of function to obtain a function handle from the function name
                                  2. Return no longer requires brackets around the value, this is optional
                                  Version 1.3.7.25

                                    25.07.2015

                                    1. Added library support
                                    2. Added support for semi-colons in for loops as well as commas

                                    26.07.2015

                                    1. Fixed a flaw in which variables would be incorrectly updated
                                    2. Added the list_is_a_set function
                                    3. Added the associative_array_flip function
                                    4. Fixed an issue with substitution of variables and associative arrays
                                    5. Added the string_is_uppercase function
                                    6. Added the string_is_lowercase function
                                    7. Added the significant_figures function
                                    8. Added another minor fix to the unset and is_set functions

                                    27.07.2015

                                    1. Added an optional parameter to the directory_list_files function to find only specific file types
                                    2. By specifying no directory, ie. "" to the directory_list_files function, it uses the current directory
                                    Version 1.3.7.44

                                      04.08.2015

                                      1. Added lambda functions that can be assigned to variables: e.g. $foo = function($x){return $x * $x}
                                      2. Added pointer support to evaluation
                                      3. Added pointer support to function parameter evaluation
                                      4. Fixed a flaw that stopped increment and decrement working
                                      Version 1.3.7.89

                                        05.08.2015

                                        1. Made a few changes to the workings of lambda functions
                                        2. Lambda functions can be passed as parameters to functions and conditions
                                        3. Fixed a flaw with variable storage
                                        4. Variables can now be assigned to other variables which themselves are lambda functions
                                        5. Added lambda functions to for each loops
                                        6. Added lambda functions to for loops

                                        11.08.2015

                                        1. Fixed a minor flaw with lambda calls
                                        2. Added the Function type to the get_type command
                                        3. Added the list_local_variables function
                                        4. Added the list_parameters function
                                        5. Added the list_global_variables function

                                        13.08.2015

                                        1. Added the screen_grab function

                                        15.08.2015

                                        1. Added the image_get_width function
                                        2. Added the image_get_height function
                                        3. Added the image_get_pixel function
                                        4. Added the image_set_pixel function

                                        18.08.2015

                                        1. Added the all_true function
                                        2. Added the all_false function
                                        3. Added the any_true function
                                        4. Added the any_false function

                                        19.08.2015

                                        1. Changed the type:$language requirement on the -c mode to $language.

                                        20.08.2015

                                        1. Added the global function to push a local variable to a global
                                        2. Added several new constants
                                        3. Added the mysql_connect function
                                        Version 1.3.7.100

                                          27.08.2015

                                          1. Fixed a flaw in which lambda functions would not function if they were the first parameter
                                          2. Fixed an issue with returning lambda functions
                                          3. All list and associative array functions now copy the original list or array before modification
                                          4. Fixed an issue with logical comparisons
                                          5. Added logical comparison evaluation to parameter checker
                                          Version 1.4.0

                                            29.08.2015

                                            1. Major restructure of internal core of interpreter for better hash functions
                                            2. Internal aliases are now fully implemented and much easier to execute
                                            3. Internal documentation is built-in to core functions
                                            4. Internal documentation is required on extension functions and libraries
                                            5. Minimum parameter requirement is now built-in to extension functions and libraries
                                            6. Minimum permission level requirement is now built-in to extension functions and libraries

                                            30.08.2015

                                            1. Added the echo alias
                                            2. Readded the round command
                                            3. Negation can now be applied through the ! function
                                            Version 1.4.0.83

                                              12.09.2015

                                              1. Added compare_dates function to compare two dates
                                              Version 1.4.1

                                                21.10.2015

                                                1. A few minor updates

                                                29.11.2015

                                                1. Added the range function to generate a list of numbers in a range
                                                2. Memory usage lowered slightly

                                                04.12.2015

                                                1. Added the counter function to generate an associative array of counts of items in a list
                                                2. Added the object function to generate a new Object
                                                3. Added the dotted expressions. $x.$y = 10 and print($x.$y)

                                                06.12.2015

                                                1. Out of order arguments can now be passed to the application. The only change is now that they require an argument name before.
                                                2. The new clean arguments system works with application arguments better
                                                3. Functions can be made private or public
                                                4. ZPE programs are now compiled to ZEX (Zenith Engine Executable) files

                                                09.12.2015

                                                1. Fixed a bug with the is_set command which would always return false
                                                2. Fixed a bug that stopped the return function working
                                                3. Anonymous functions have been improved
                                                4. Major improvement to lambda functions that makes them function better
                                                5. Fixed a bug with condition compilation
                                                6. Lambda functions now have scope to read global and parent variables
                                                7. Fixed a flaw that made the get_input function the same as the print function

                                                11.12.2015

                                                1. Added publicly accessible isFunction and isObject methods to the JAR as requested

                                                14.12.2015

                                                1. Images can now be compared using the equals sign, e.g. $img1 == $img2
                                                2. Removed dotted expressions in favour of using the pointer. E.g. $x = object() $x => $y = 10
                                                3. Added lambda functions to variables in structures
                                                4. Improved modularity of ZPE
                                                5. The file_create_directory function is now the directory_create function

                                                15.12.2015

                                                1. Function chaining is now supported. E.g. range(0, 40).list_get_length()
                                                2. Fixed a bug where the . would break strings
                                                3. Added the length function which will work on strings, lists and associative arrays
                                                4. Added the get function which will work on strings, lists and associative arrays
                                                5. Fixed an issue with conditions being evaluated incorrectly
                                                6. New -experimental mode
                                                7. Added a compiler_version number to compiled scripts
                                                Version 1.4.2

                                                  16.12.2015

                                                  1. Improved efficiency with structure variable assignment
                                                  2. Scripts without any functions at all can be run as a single program

                                                  20.12.2015

                                                  1. Added compiler type checking when using the typed system
                                                  2. Added the string, integer, boolean, structure, lambda, object and image types
                                                  3. Types are always case insensitive
                                                  4. Finally added the configuration file for setting options

                                                  22.12.2015

                                                  1. The range function now can take numbers with decimal places in them, e.g. range (99.1, 1000.4)
                                                  2. Added an increment parameter to range function, e.g. range(99, 1000, 0.3)

                                                  14.05.2016

                                                  1. Added the new list_pop and list_dequeue functions

                                                  28.05.2016

                                                  1. Added lazy evaluation to condition evaluation

                                                  31.05.2016

                                                  1. Fixed a flaw with the random_number function that added the minimum as a string

                                                  05.06.2016

                                                  1. Conditional words like and, or and xor are compiled as their logical counterparts (&&, || and **)

                                                  07.06.2016

                                                  1. The echo command does not need brackets around parameters, but it will only take a single parameter. e.g. echo "Hello"
                                                  2. Fixed a flaw in which functions compiled under the case insensitive compile option would not function correctly
                                                  3. Added the config option to the -h mode to display all the user's configurations (or properties)

                                                  16.06.2016

                                                  1. Fixed an issue that meant that true at the end of a statement would not be evaluated. E.g. '(10 < 15 && (15 > 15 || 20 > 20)) || true' would return false

                                                  18.06.2016

                                                  1. Added set_cartesian_product function

                                                  27.06.2016

                                                  1. Compiler improvements
                                                  2. Updated manual command for get_type
                                                  3. Updated website information to jamiebalfour.scot/projects/zpe/
                                                  4. The put, length and get commands are no longer experimental but fully implemented. They work as [43, 22].length() which will give 2.

                                                  01.07.2016

                                                  1. Added the ternary condition operation. E.g: $x = 10 > 20 || 20 > 10 ? "Yes" || "No" will set the value of $x to "Yes".
                                                  Version 1.4.3

                                                    13.07.2016

                                                    1. The biggest change in ZPE history has begun: rewriting the original condition and mathematical parsers and evaluators

                                                    16.07.2016

                                                    1. The mathematical parser has been rewritten into the same parser as the logical one
                                                    2. Resurrected the ternary (?) operator and operation on logic
                                                    3. Added a compiler failure on the ternary operator on mathematical expressions

                                                    17.07.2016

                                                    1. Added the improved evaluator for comparison. This works around 3 times as efficiently as the previous one on larger statements
                                                    2. The new evaluator is flaky and not fully tested, so use this version with caution
                                                    3. Major fix with chaining

                                                    19.07.2016

                                                    1. XOR has been removed, but a function has been added in its stead
                                                    2. Fixed an issue whereby the compiler seeing a comparator (==, > etc.) would force it to read only one symbol ahead
                                                    3. Fixed an issue where comparison and mathematics mixed together, e.g. 5 > 2 + 1, would crash the interpreter
                                                    4. Fixed an issue within LAMP where a bracket expression would return a number. E.g. (true == false) would return 0
                                                    5. Fixed an issue that prevented return functions from working properly
                                                    6. Function chaining has been fixed

                                                    20.07.2016

                                                    1. Fixed an issue in which bracket expressions were incorrectly tested

                                                    21.07.2016

                                                    1. Fixed a few minor issues that caused compile issues
                                                    2. Improved the LAMP compiler
                                                    Version 1.4.3.10

                                                      22.07.2016

                                                      1. Improved the security of certain functions
                                                      2. Reduced possibility of a memory leak in some functions
                                                      3. Added the break function

                                                      24.07.2016

                                                      1. Added scopes (private, public and friendly) support to variables
                                                      2. Added the scopes to constants as well

                                                      25.07.2016

                                                      1. Improved the efficiency of the compiler

                                                      27.07.2016

                                                      1. Merged structures and object types into one larger type
                                                      2. Fixed issues with structures that prevented them from functioning
                                                      3. Fixed an issue with boolean variables in a logical statement
                                                      4. Minor fix with lambda functions within objects

                                                      28.07.2016

                                                      1. Changed the way in which the interpreter functions (less recursion) - leading to better performance and memory usage

                                                      29.07.2016

                                                      1. Fixed a small issue that caused lambda functions to crash

                                                      30.07.2016

                                                      1. Fixed an issue in which lists and associative arrays would not be evaluated properly in a comparison

                                                      01.08.2016

                                                      1. Fixed an issue with the ternary operator on single expressions
                                                      Version 1.4.3.40

                                                        02.08.2016

                                                        1. Fixed an issue with lambda functions that prevented them from being evaluated when given parameters on declaration
                                                        2. Modularised the for loop
                                                        3. Added the sha1, sha256 and md5 hashing algorithms

                                                        03.08.2016

                                                        1. Added the try and catch clause to catch errors
                                                        2. Better error handling and few Java like errors
                                                        3. Another fix with the ternary operator makes them function better

                                                        04.08.2016

                                                        1. Better error messages from the compiler

                                                        05.08.2016

                                                        1. Added the plus equals (+=) and the minus equals (-=) increment and decrement operators
                                                        2. Added the concatenation operator, & and deprecated the string_concatenate command

                                                        06.08.2016

                                                        1. Fixed an issue with variables and increment and decrement values
                                                        2. Fixed an issue with anonymous functions and return functions without brackets
                                                        Version 1.4.4.0

                                                          07.08.2016

                                                          1. Focuses on external implementation of language converters

                                                          12.08.2016

                                                          1. Expressions can now be negated by simply putting the ! in front of them without bracketing it. E.g. !false
                                                          2. Added the list_get_at_random_index and the generate_alphabet methods

                                                          14.08.2016

                                                          1. Fixed an issue with the += and -= increment and decrement values that only allowed numbers to be used
                                                          2. Fixed an issue with the += and -= increment and decrement values that meant that values were rounded to integers not left as reals
                                                          Version 1.5.0

                                                            08.12.2016

                                                            1. Fixed an issue with the LAMP compiler
                                                            2. Fixed an issue with the LAMP interpreter
                                                            3. Fixed an issue with the ternary operator, that stopped it functioning on the false value

                                                            10.12.2016

                                                            1. Added json_to_map function

                                                            11.12.2016

                                                            1. Added interpreter warnings

                                                            17.12.2016

                                                            1. LAMP parser memory consumption improved considerably
                                                            2. Fixed an issue with lambda functions not evaluating correctly in LAMP expressions
                                                            3. Added the 'this' keyword for pointers. E.g. $x => $y = function(){ print (this => $z) }

                                                            21.12.2016

                                                            1. Fixed an issue in which the ceiling command would round down
                                                            2. Added the aes_encrypt and aes_decrypt functions

                                                            07.01.2017

                                                            1. Improved server and client communication and functionality
                                                            Version 1.5.0.1

                                                              08.01.2017

                                                              1. Further improved server and client communication, now allowing the server to execute a script on the input.
                                                              2. Added the string_cut function that cuts a string from start to finish
                                                              3. Added the string_divide function to split a string multiple times

                                                              10.01.2017

                                                              1. Added threaded lambda functions. $v = threaded function() { for ($i = 0; $i < 100000; $i++) print($i) end for }

                                                              11.01.2017

                                                              1. Fixed an issue in which lambda calls were not called in a LAMP expression
                                                              2. Fixed an issue in which the global #SCRIPT constant is not defined a associative array properly
                                                              Version 1.5.1

                                                                14.01.2017

                                                                1. Added the includes statement. This will include non-compiled code before compilation. E.g. include "file.txt". This code will execute as though it were in the main program

                                                                16.01.2017

                                                                1. Added the publicly available PublicMethods class and the built in ExternalMethods variable to access it which allows access to a bunch of useful functions to access internals of ZPE
                                                                2. Changed the plugin interface slightly, it now sends a 'parent' ZenithEngine object to the MainMethod of an interface
                                                                3. Improved performance and fixed a flaw in which plugins could not be executed
                                                                4. Added the for-to loop e.g. for($i = 0 to 10). Works the same way underneath

                                                                21.01.2017

                                                                1. Added compiler improvements that make compiled applications run faster
                                                                2. The name parameter in the compiler is now fully optional

                                                                22.01.2017

                                                                1. A huge number of changes designed to make it easier to use ZPE within the Java language by organising ZPE into packages jamiebalfour.ZPE

                                                                31.01.2017

                                                                1. Fixed an issue with concatenation
                                                                2. Added do while loops
                                                                Version 1.5.2

                                                                  07.02.2017

                                                                  1. Added custom keyword plugin feature. This allows custom parsing of symbols and words

                                                                  13.02.2017

                                                                  1. Added the serialise and deserialise functions to object $v = object() $v => $x = 10 $v.serialise("Test")
                                                                  2. Improved the serialise and deserialise functions to now support functions, objects within objects, lists and associative arrays

                                                                  14.02.2017

                                                                  1. Structures can now be initalised through a constructor function called _construct
                                                                  2. Fixed an issue where objects within objects could not be used.
                                                                  Version 1.5.3

                                                                    14.02.2017

                                                                    1. Added the get_object_definition function, designed to identify which structure this object inherits it's format from
                                                                    2. Added the wait method which waits a specified number of milliseconds

                                                                    15.02.2017

                                                                    1. Improved server stability
                                                                    2. Pointers have been renamed accessors. The accessor symbol is still =>

                                                                    21.02.2017

                                                                    1. Added a new feature that allows function declaration within objects. $x => f = function() print("Test") end function
                                                                    2. Added the _output core method to objects. Any object declaring an _output method will call this when cast to a string

                                                                    22.02.2017

                                                                    1. Fixed an issue in which foo = function() { print("bar") } would be a valid function
                                                                    2. Objects are better inlined with structures, the 'object()' function is removed and replaced with the 'new object()' syntax.
                                                                    3. Chainable functions can be used on accessors such as $people => $list.get(1). This is a minor fix.

                                                                    23.02.2017

                                                                    1. Fixed an issue within the compiler, whereby all inner compiled strings would be case insensitive.

                                                                    24.02.2017

                                                                    1. Fixed a couple of minor issues in regards to scope
                                                                    2. Completely redesigned the parser, making it separate to the main compiler.
                                                                    3. Introduced the new ZenithParser, the underlying parser that powers the whole ZPE.
                                                                    4. Added JBSON, my own JSON parser.
                                                                    5. Fixed an issue that has been around for a long time with string quotes not being removed by moving this to the parser

                                                                    26.02.2017

                                                                    1. Continuing with the idea of a reusable parser, the CSV parser has been redesigned from the bottom up

                                                                    21.03.2017

                                                                    1. Associative arrays no longer use braces {} but [] similarly to lists
                                                                    2. To access an internal method of an object the -> is used instead of => (=> is used for associative arrays only)

                                                                    26.03.2017

                                                                    1. Added the option to ignore new lines in the ZPE Parser
                                                                    2. Fixed a flaw that prevented objects from being parsed properly

                                                                    28.03.2017

                                                                    1. Added the index of an array through square brackets $v[1] for access only
                                                                    2. Minor performance improvements and further refactoring

                                                                    29.03.2017

                                                                    1. Added ZPE to a Git repository for better backtracking

                                                                    30.03.2017

                                                                    1. Added the new index assignment through $v[2] = "Hello"
                                                                    2. Added index support for associative arrays
                                                                    3. Added index setting support for associative arrays $v["Tom"] = "Allan"
                                                                    4. Improved the way the compiler works, improving performance
                                                                    5. Improved the shell command to now return the return value of the command
                                                                    6. Added the sprintf function to format a string fairly quickly
                                                                    Version 1.5.4

                                                                      31.03.2017

                                                                      1. Added the new object declaration format similar to JSON or JavaScript: $v = {first_name : "Jamie", surname : "Balfour"}

                                                                      01.04.2017

                                                                      1. Improved the parser to support any third-party subsequent character array

                                                                      02.04.2017

                                                                      1. Redesign of the way objects are accessed that makes them a little unstable
                                                                      2. Fixed the issue with accessors and objects, making them stable again

                                                                      05.04.2017

                                                                      1. Added a fix to concatenation that will need to reviewed ASAP

                                                                      06.04.2017

                                                                      1. Fixes a performance issue
                                                                      2. Fixes an issue when using accessors on keyword 'this'

                                                                      07.04.2017

                                                                      1. Compiler keeps track of constants that have been assigned and throws an error on reassignment

                                                                      18.05.2017

                                                                      1. Fixed an issue with ZACs

                                                                      19.06.2017

                                                                      1. Server threads now share Zenith Engine consumers where they can.

                                                                      04.10.2017

                                                                      1. Added the switch statement, a rewrite of when-is statements
                                                                      Version 1.6.0

                                                                        01.02.2018

                                                                        1. Added the --colour option

                                                                        28.02.2018

                                                                        1. Added the force_colour option

                                                                        30.05.2018

                                                                        1. Added the new -w web parser mode to parse web pages

                                                                        31.05.2018

                                                                        1. Fixed an issue in which the get_median function was actually using the same code as the get_range function
                                                                        Version 1.6.1

                                                                          24.07.2018

                                                                          1. Renamed Zenith Parsing Engine to ZPE Programming Environment
                                                                          2. Fixed an issue in which the parse_json function would only return an associative array, never a list
                                                                          3. Fixed an issue when comparing integers, double and strings that looked similar e.g. 1 == "1" would be true.
                                                                          4. Fixed a LAMP issue in which less than was improperly parsed, causing a memory leak and eventually a stack overflow
                                                                          Version 1.6.2

                                                                            30.07.2018

                                                                            1. Major fix to indexing of variables e.g. $v[0] = 10 now works perfectly
                                                                            2. Added a padding of nulls when an item is inserted at an index that doesn't exist
                                                                            3. Major improvements to the is_set method
                                                                            4. Fixed concatenation (small bug causing a huge problem)
                                                                            5. The shell command now adds line breaks at the end of each line
                                                                            6. Fixed an issue in which adding an escape \ before a quote would be ignored.
                                                                            Version 1.6.3

                                                                              01.08.2018

                                                                              1. Major update and complete rewrite of the way objects and structures work, making them faster and more efficient than before
                                                                              2. Accessibility within public, private and friendly objects is now checked at runtime
                                                                              3. Objects can now have functions that set internal values
                                                                              4. Improved the way that a break call bubbles

                                                                              02.08.2018

                                                                              1. Added the variable index to ACCESSOR e.g. $a->$b[0] = 10
                                                                              2. Better compatibility with libraries
                                                                              3. Probably released a fix for issues #4 and #7

                                                                              03.08.2018

                                                                              1. Functions can now be indexed using [] e.g. getNames()[0]
                                                                              2. Functions within objects can now also be accessed with the index notation e.g. $person->getNames()[0]
                                                                              3. When a function is incorrectly called it no longer returns !error as a string but an actual Error object
                                                                              4. Negation is now compiled differently and the not function has been removed
                                                                              5. Improved the way in which chained (.) functions work. E.g. $v = [44, 55] $x = $v.get(0)
                                                                              Version 1.6.4

                                                                                05.08.2018

                                                                                1. It's been a long time coming, but 64 bit integers (longs) are now used instead of 32 bit.
                                                                                2. Fixed the problem occurring with constant definition
                                                                                3. Constants are now defined using the define keyword (lowercase)
                                                                                4. ZPEObjects now expose an addNativeMethod method that allows executable Java code to be used in an object
                                                                                5. Native methods can now be run as Java based programs within objects
                                                                                6. When an ZPEObject is printed, it no longer exposes the values of the object (for safety and security reasons)
                                                                                7. Fixed downloading in ZULE

                                                                                06.08.2018

                                                                                1. Both the server side and the client side of ZULE have been improved
                                                                                2. Infinite indexes for variables are now possible
                                                                                3. New undefined() function returns an undefined value

                                                                                07.08.2018

                                                                                1. remove_at has now been added to strings as a chainable function
                                                                                2. Added a fix that allows objects to contain non-prefixed variables, e.g. $v = {"name" : "Jamie"} print($v->name) would work

                                                                                09.08.2018

                                                                                1. Fixed single bracketed expression problem e.g. return (5 + 5) would not work.
                                                                                2. Fixed an issue with concatenation
                                                                                3. Fixed an issue with FOR EACH loops with object and the this keyword

                                                                                11.08.2018

                                                                                1. Fixed an issue where associative arrays would not print with a comma

                                                                                13.08.2018

                                                                                1. Big change to the way that images are used in ZPE as they are no longer a native type but are now stored in an object.
                                                                                2. The image() method now returns an image_object object - a simple object with multiple native methods on it
                                                                                3. Several built in image methods have been removed in favour of the image_object
                                                                                4. The single apostrophe quote is now parsed properly
                                                                                5. Fixed performance of parser
                                                                                6. Improved the ZenithParser's method of finding multiline comments
                                                                                7. Small performance improvements in compilation
                                                                                Version 1.6.5

                                                                                  27.08.2018

                                                                                  1. Syntax change for pre-increment and pre-decrement from $++x to ++$x

                                                                                  02.09.2018

                                                                                  1. Added the FOR EACH IN loop to complement the FOR EACH AS loop (it works the reverse to this)
                                                                                  2. Fixed an issue in the CSV parser where single line CSV files parsed incorrectly
                                                                                  3. Fixed an issue in the feedback command that prevented it from sending when given just one argument
                                                                                  Version 1.6.6

                                                                                    03.09.2018

                                                                                    1. Fixed an issue with for loops
                                                                                    2. Added the circumflex syntax for power e.g. 5^2 is 25 (five squared) and 5^3 is 125
                                                                                    3. Added the variable mode to the -r ZAC. This mode is like single line mode except that variables and their values are persisted.
                                                                                    4. Removed the Program read mode and the Multi line read mode
                                                                                    5. Fixes with comments in the Zenith Parser
                                                                                    6. Fixed an issue in for loop with reading lists
                                                                                    7. Fixed an issue that caused negative numbers to convert to strings when parsed
                                                                                    8. Added binary parsing into the compiler e.g. $v = 0b0101. Binary values always start with a 0b
                                                                                    9. Added the to_decimal method to convert a string of binary, octal or hexadecimal characters to an integer
                                                                                    10. Command line arguments are now separated from program arguments using a -args command line

                                                                                    08.09.2018

                                                                                    1. Added object inheritance

                                                                                    09.09.2018

                                                                                    1. New if statement optional syntax using the THEN keyword: $x = 10 if $x == 11 then print("Yes") end if
                                                                                    2. Added the built-in object methods `inherit`, `serialise` and `get_definition`. Removed the general serialise and object_get_definition methods.

                                                                                    10.09.2018

                                                                                    1. Fixed an issue where in the single line interpreter variable values were not actually retained properly
                                                                                    2. The single line interpreter no longer exits on an error but displays an error and continues.

                                                                                    11.09.2018

                                                                                    1. Fixed an issue in which new ZPEObject would set their values and variables to the FRIENDLY only access

                                                                                    14.09.2018

                                                                                    1. Added the optional 'code' parameter to the exit method
                                                                                    2. Small performance improvement with the LAMP parser

                                                                                    15.09.2018

                                                                                    1. Added the cache_value and read_cache_value methods which read a value from a special secured file

                                                                                    16.09.2018

                                                                                    1. Added the get_version method which obtains the version number of the ZPE instance it is running within
                                                                                    2. Added an option to disable methods from the runtime environment (using the properties file)

                                                                                    19.09.2018

                                                                                    1. Added negation of variables such as -$v and improved the method of negative values being used
                                                                                    2. Improved the way in which negative values are evaluated
                                                                                    Version 1.6.7

                                                                                      19.09.2018

                                                                                      1. Added the new alternative lambda function syntax that uses the fat arrow syntax: $v = () => print("Hello") end function and $v = () { print("Hello") }
                                                                                      2. Added the new alternative syntax to the for each loop similar to 'for each ($v) print ($pos++) end for'

                                                                                      24.09.2018

                                                                                      1. TYPO is now available within ZPE 1.6.7! Finally, type checking can be done with ZPE!

                                                                                      25.09.2018

                                                                                      1. Fixed an issue with dotted (reference) expressions
                                                                                      2. Added the sublist method to the list type

                                                                                      26.09.2018

                                                                                      1. Added the new --typed argument that forces type checking in assignment
                                                                                      2. Further engine cleanup means that built in methods are now completely separate from the compiler and interpreter

                                                                                      01.10.2018

                                                                                      1. The print method no longer runs variables containing functions but simply leaves them as a reference.
                                                                                      2. Minor performance improvements through a hopeful trial

                                                                                      11.10.2018

                                                                                      1. New Python inspired fixed arrays defined as $v = [] * 4 or $v = ["Hello"] * 4

                                                                                      12.10.2018

                                                                                      1. Added support for else if as well as elseif in if statements

                                                                                      15.10.2018

                                                                                      1. Added the get_call_stack method

                                                                                      19.10.2018

                                                                                      1. Added the input alias for std_in
                                                                                      2. Assignment within statements is now possible, e.g. if(($v = 10) == 10) print($v) end if
                                                                                      Version 1.6.8

                                                                                        21.10.2018

                                                                                        1. The GUI mode now handles errors and does not quit on an error

                                                                                        22.10.2018

                                                                                        1. Command line now accepts negative values correctly
                                                                                        2. Added the associative_array_create_ordered method which generates a new ordered associative array

                                                                                        25.12.2018

                                                                                        1. Further to the expansion of everything is a function in YASS, the ZPE global function is now the main place for functions
                                                                                        2. Internal functions (nested functions) have been improved and now perform better
                                                                                        3. New feature to -r ZAC, functions are now retained after being defined
                                                                                        Version 1.6.8.1

                                                                                          28.12.2018

                                                                                          1. Added the built-in internal update program. Just running the --update ZAC will update ZPE
                                                                                          Version 1.7.0

                                                                                            29.12.2018

                                                                                            1. Fixed a long standing issue with concatenation
                                                                                            2. Fixed an issue which would result in the string_get_length function returning a string value
                                                                                            3. Fixed an issue which would cause ZPELists to recursively call their own remove function
                                                                                            4. Fixed an issue that caused quotes to be added to strings after being inserted using the older list_add_element method

                                                                                            30.12.2018

                                                                                            1. Fixed an issue with index access within an object context when assigning values (major bug)

                                                                                            05.01.2019

                                                                                            1. Added assertion tools for unit testing. Assertion can be true or false
                                                                                            2. Fixed a ZenithParser flaw that meant that when lexing whitespace no check was made for comments after

                                                                                            09.01.2019

                                                                                            1. Added by reference variables, list_set_at_index already implements this
                                                                                            Version 1.7.1

                                                                                              10.01.2019

                                                                                              1. A huge overhaul to the design and performance of ZPE both in the interpreter and the compiler
                                                                                              2. Compiler and runtime have now been separated, which allows the compiler to run more efficiently

                                                                                              11.01.2019

                                                                                              1. Added support for by reference variable assignment, e.g. &$y = 10 will change the original $y

                                                                                              13.01.2019

                                                                                              1. Threaded functions are now written as function threaded x() instead of threaded function x(). The latter has not been removed but deprecated.

                                                                                              15.01.2019

                                                                                              1. Major improvement to ZenithParser which makes it perform 10% faster than before.

                                                                                              16.01.2019

                                                                                              1. Added the ZPEWebServer that can act as a basic web server and can serve ZPE-HTML pages (zhtml)
                                                                                              2. ZenithParser now features custom whitespace tokens
                                                                                              3. Improved performance

                                                                                              18.01.2019

                                                                                              1. Added the index.zhtml handler to the ZPEWebServer so that if no file is specified but an index file exist it will read this
                                                                                              2. Further improvements to whitespace within the ZenithParser
                                                                                              3. Better memory usage within the runtime interpreter

                                                                                              26.01.2019

                                                                                              1. Bug fix for object index access in comparison e.g. if($x->$v[0] > 9) print("Yes") end if would not work if $x = {$v : [34, 35]}.

                                                                                              27.01.2019

                                                                                              1. Added the bound word exception to the ZenithEngine. E.g. $ must be bound to a name, so the parser will not accept when it is written as $ x = 10 but will accept $x = 10

                                                                                              30.01.2019

                                                                                              1. Replaced the LAMP with LAME, a much faster and more accurate evaluator for logic and maths
                                                                                              Version 1.7.2

                                                                                                02.02.2019

                                                                                                1. Compiler constants are now moved to the compiler away from the interpreter. This offers better performance.
                                                                                                2. Compiler constants can now only be one single value and cannot be expressions

                                                                                                03.02.2019

                                                                                                1. Compiler constants remain in play in the interactive interpreter between lines
                                                                                                2. Fixed a flaw which prevented concatenation of doubles or integers (LAME only)
                                                                                                3. Fixed a flaw which prevented access to variables defined using strong typing

                                                                                                12.02.2019

                                                                                                1. If the JAR is opened by double clicking rather than command line, the GFX editor will show
                                                                                                2. Updated the GFX editor which will soon replace the GUI editor

                                                                                                13.02.2019

                                                                                                1. The normal Swing based editor has been removed and the GFX editor has taken its place. It is now accessed with the -g ZAC.
                                                                                                2. Added the list_to_associative_array function

                                                                                                14.02.2019

                                                                                                1. Fixed an issue which prevented the _construct method from being created on an object
                                                                                                Version 1.7.3

                                                                                                  14.02.2019

                                                                                                  1. Added the get_password_input function

                                                                                                  25.02.2019

                                                                                                  1. Further improvements to LAME performance

                                                                                                  27.02.2019

                                                                                                  1. New data types ZPEOrderedAssociativeArray and ZPEArray which replace the older is_ordered and is_fixed_size methods on their super classes
                                                                                                  2. Added the input_validate function
                                                                                                  3. Added the list_populate function

                                                                                                  01.03.2019

                                                                                                  1. Fixed a bug in concatenation that prevented the concatenation of integer values
                                                                                                  2. The to_json function is now the json_encode function
                                                                                                  3. The parse_csv, parse_json and parse_xml functions have been renamed csv_decode, json_decode and xml_decode respectively
                                                                                                  4. Minor performance tweaks that help stabilise LAME
                                                                                                  5. Added the csv_encode function
                                                                                                  6. list_add_element no longer functions on arrays only on lists
                                                                                                  7. list_remove now works differently on arrays. It will now set the value in the array to a Null value.

                                                                                                  03.03.2019

                                                                                                  1. Changed the way binary, hex and octal values are inserted.
                                                                                                  2. Binary has a signed bit so 0b111 would be 7 and 1b111 would be -7
                                                                                                  3. Octal now uses the format of 0o17 where the o is the feature that lets us know it is an octal value
                                                                                                  4. Octal has a signed bit so 0o17 is 15 and 1o17 is -15
                                                                                                  5. Hexadecimal numbers now have a signed bit so 0xa is 10 and 1xa is -10

                                                                                                  05.03.2019

                                                                                                  1. Structures are no longer just the same as objects and are now restricted to their original definition
                                                                                                  2. Major fix that fixes ZPE private access

                                                                                                  06.03.2019

                                                                                                  1. Added more @ documentation features

                                                                                                  08.03.2019

                                                                                                  1. Fixed an issue with index access in an evaluation
                                                                                                  Version 1.7.4

                                                                                                    10.03.2019

                                                                                                    1. Added short circuit evaluation of logic
                                                                                                    2. Logic parser completely rewritten which allows complex conditions to be evaluated quicker

                                                                                                    11.03.2019

                                                                                                    1. Fixed an issue with the is_set function not correctly accessing indexes
                                                                                                    2. Index safety is no longer built-in to the language by default but enabled using the properties file
                                                                                                    3. Removed an old hack that fixed an issue but actually broke the compiler later
                                                                                                    4. Fixed an issue within lambda functions due to a hack that was put in

                                                                                                    12.03.2019

                                                                                                    1. Added type checking option to the GUI
                                                                                                    2. Added the web server option to the GUI
                                                                                                    3. Fixed an issue in which objects were not correctly evaluated by the get_type function

                                                                                                    13.03.2019

                                                                                                    1. Complete rewrite of both structures and objects to make them more consistent
                                                                                                    2. Nested structures/classes are now available

                                                                                                    17.03.2019

                                                                                                    1. Added the implies and iff functions
                                                                                                    2. Added the nor function

                                                                                                    22.03.2019

                                                                                                    1. Added the http_post method, allowing requests to be made to any URL
                                                                                                    2. Added the new online registration and cloud storage of ZPE programs

                                                                                                    23.03.2019

                                                                                                    1. Added more online features
                                                                                                    Version 1.7.5

                                                                                                      24.03.2019

                                                                                                      1. GUI now remembers the last state it was in
                                                                                                      2. Fixed an issue with the date conversion in which the month and minute were muddle up
                                                                                                      3. A new feature now means that built-in language objects are now available. E.g. the ZPEUI object can now be accessed with new ZPEUI()
                                                                                                      4. Certain object generation methods: generate_image, generate_ui, file_open_sequentially and get_time have now been removed in favour of pure objects

                                                                                                      25.03.2019

                                                                                                      1. Native methods can now be constructors in objects
                                                                                                      2. The new file option in the GUI now creates a simple program with a main function
                                                                                                      3. Several constants have been removed in favour of a new global variable called $_SYSTEM, similar to PHP's superglobal $_SERVER

                                                                                                      08.04.2019

                                                                                                      1. Moved the output from the compiler from the internal method
                                                                                                      2. General performance improvements
                                                                                                      Version 1.7.6

                                                                                                        09.04.2019

                                                                                                        1. Added the new console window for output for the GUI mode.
                                                                                                        2. GUI console has a much cleaner look

                                                                                                        13.04.2019

                                                                                                        1. Fixed an issue in which the floor and ceiling functions returned a double instead of an integer

                                                                                                        15.04.2019

                                                                                                        1. Added support for larger numbers

                                                                                                        19.04.2019

                                                                                                        1. Added the list_process function
                                                                                                        2. Added the array_to_list function
                                                                                                        3. Added the list_to_array function
                                                                                                        4. Added the list_auto_populate function

                                                                                                        20.04.2019

                                                                                                        1. Added the for each...break when...is loop
                                                                                                        2. Changed the file_open function to use the ZPESequentialFile object
                                                                                                        3. Added a file_get_contents function

                                                                                                        21.04.2019

                                                                                                        1. Fixed an issue that prevented functions being declared without a main function
                                                                                                        2. Added the password_hash function
                                                                                                        3. Added password_verify function
                                                                                                        4. Added password encryption to compiled files
                                                                                                        Version 1.7.7

                                                                                                          01.05.2019

                                                                                                          1. Added the EXACTLY EQUAL === comparison
                                                                                                          2. Added the --json option to the -v (version) ZAC

                                                                                                          04.05.2019

                                                                                                          1. Added the boolean comparison that 0 == false is true
                                                                                                          2. Fixed an issue that meant that short circuit evaluation only happened if it was true

                                                                                                          05.05.2019

                                                                                                          1. The display of objects when printed is now much more like PHP
                                                                                                          Version 1.7.8

                                                                                                            10.05.2019

                                                                                                            1. Fixed an issue with functions declared on anonymous objects being inaccessible

                                                                                                            12.05.2019

                                                                                                            1. Added the list_find_duplicates function

                                                                                                            17.05.2019

                                                                                                            1. New compiler optimisations mean that compiled programs run even faster

                                                                                                            06.06.2019

                                                                                                            1. Variables are now shared across chunks in the web parser mode

                                                                                                            16.06.2019

                                                                                                            1. Added the self keyword which has the same functionality as the this keyword
                                                                                                            2. The returnInteger function on the LAME parser has been removed. This means that an integer value such as 10 will now be displayed as it's decimal equivalent of 10.0

                                                                                                            29.06.2019

                                                                                                            1. Added the ZPEHTMLBuilder object
                                                                                                            Version 1.7.9

                                                                                                              02.07.2019

                                                                                                              1. The ZPEHTMLBuilder object internal function list_to_html_list now works recursively on lists
                                                                                                              2. Native methods are now declared with a public scope in objects

                                                                                                              08.07.2019

                                                                                                              1. Added the string_text_compare function
                                                                                                              2. Renamed the cache_value command to write_cache_value
                                                                                                              3. Added the count keyword. E.g. count ($v). This is not a function and takes advantage of compiler speed

                                                                                                              09.07.2019

                                                                                                              1. A change to the web parser - pages now end with ywp instead of zhtml
                                                                                                              2. The opening tag for web pages is now <?ywp and ywp?>

                                                                                                              10.07.2019

                                                                                                              1. Fixed an issue where some whitespace characters were ignored by the parser (e.g. ASCII 160)

                                                                                                              13.07.2019

                                                                                                              1. Performance improvements

                                                                                                              14.07.2019

                                                                                                              1. Fixed an issue with public declared values in a structure
                                                                                                              2. Removed the threaded function
                                                                                                              3. Added the run_in_thread function, this can also run lambda functions in a thread.
                                                                                                              4. Fixed an issue within objects that prevented inner functions being given the correct parent object
                                                                                                              5. Added for loop compiler optimisations
                                                                                                              Version 1.7.10

                                                                                                                28.07.2019

                                                                                                                1. Fixed an issue with quotes in quotes when escaping them

                                                                                                                30.07.2019

                                                                                                                1. Added type checking on array data types
                                                                                                                2. Added the array_get_data_type function, which will return the data type of all elements within the array

                                                                                                                31.07.2019

                                                                                                                1. Replaced the menubar in macOS with the system menu bar for consistency

                                                                                                                01.08.2019

                                                                                                                1. Added the tkmenu library to give macOS editors the macOS menu bar instead of the in window version

                                                                                                                02.08.2019

                                                                                                                1. ZPE now set the DOCUMENT_ROOT property to a public_html folder in the users home directory by default
                                                                                                                2. Added a button to stop a running web server in the GUI
                                                                                                                Version 1.7.11

                                                                                                                  07.08.2019

                                                                                                                  1. The is_set method now works on object properties, including object properties containing objects.
                                                                                                                  2. Added the write function

                                                                                                                  25.08.2019

                                                                                                                  1. If the import function does not find the file initially, it will search the library path for the file next
                                                                                                                  2. The password_hash function now throws a warning if the number of rounds is > 30 and resets it to 30

                                                                                                                  30.08.2019

                                                                                                                  1. Added the ZenithParser object

                                                                                                                  02.09.2019

                                                                                                                  1. More changes to the GUI including a new dark mode (only on macOS currently)

                                                                                                                  13.09.2019

                                                                                                                  1. Added the alternative value syntax, e.g. $x = null $v = $x ?? "James" will evaluate to "James"
                                                                                                                  2. Potential fix for Bug #9 - global traverse now marks traversed FASTs as complete

                                                                                                                  28.09.2019

                                                                                                                  1. Fixed a long standing bug that caused objects to not update when a reference was updated when no main function was provided

                                                                                                                  29.09.2019

                                                                                                                  1. For loops with the syntax x = n to y can now use variable references as the y value
                                                                                                                  2. The same for loops now loop from x to y non-inclusive of y
                                                                                                                  Version 1.7.12

                                                                                                                    26.10.2019

                                                                                                                    1. The if...then statement is now a single expression based if statement
                                                                                                                    2. The if...then statement can also have a single expression based else statement
                                                                                                                    3. Improved performance of When Is statement by using a hash map to store values

                                                                                                                    10.11.2019

                                                                                                                    1. Fixed an issue in which quotes were removed from a string if used inside another string

                                                                                                                    02.12.2019

                                                                                                                    1. Library imports are no longer done by the interpreter on startup but are now done with import command, thus taking away some of the startup time
                                                                                                                    2. Minor performance updates

                                                                                                                    05.12.2019

                                                                                                                    1. Importing is now done with the import keyword and is no longer a function.
                                                                                                                    Version 1.7.13

                                                                                                                      07.12.2019

                                                                                                                      1. Minor performance improvements
                                                                                                                      2. Fixes made to the way plugins work
                                                                                                                      3. MySQL connector plugin now available

                                                                                                                      22.12.2019

                                                                                                                      1. Added create_list to the ZPEUI object

                                                                                                                      30.12.2019

                                                                                                                      1. Added the wake_on_lan function
                                                                                                                      Version 1.8.1

                                                                                                                        01.01.2020

                                                                                                                        1. Changes to the way in which the ZPEClient and ZPEServer work, making them much more stable
                                                                                                                        2. ZPEClient is now the ZENClient and ZPEServer is now the ZENServer
                                                                                                                        3. ZENClient and ZENServer no longer feature message mode
                                                                                                                        4. ZPEWebParser has been renamed ZENWebParser
                                                                                                                        5. Tidied up internal packages so ZEN related files are now in the zen package

                                                                                                                        03.01.2020

                                                                                                                        1. Major improvements to way the ZENClient and ZENServer communicate
                                                                                                                        2. Public and private key encryption is now used to encrypt all information between server and client unless no password is given

                                                                                                                        04.01.2020

                                                                                                                        1. Added a new option to the shutdown command that allows a time to be specified from the current time to shutdown at

                                                                                                                        05.01.2020

                                                                                                                        1. Made a major fix to the way bigger (long or double) numbers are handled
                                                                                                                        2. Added the time function which gets the current number of milliseconds since 1st January 1970 (epoch time)
                                                                                                                        3. Added the run_at command, which runs a background daemon thread until a certain time arrives and executes that function using it's handle

                                                                                                                        06.01.2020

                                                                                                                        1. Certain functionalities have been moved to primary native libraries that will offer to be installed on first run
                                                                                                                        2. Fixes made to ZULE repository that make it perform better
                                                                                                                        3. Moved the generate_alphabet function to String functions
                                                                                                                        4. Moved the send_zpe_server_request to Networking functions
                                                                                                                        5. ZULE has been moved to a separate static class
                                                                                                                        Version 1.8.2

                                                                                                                          06.01.2020

                                                                                                                          1. Added the list_object_properties function which lists all properties of a given object
                                                                                                                          2. Added the get_object_property function which will get a value from an object property
                                                                                                                          3. Added the is_function function
                                                                                                                          4. Reduced the delay on the interactive interpreter

                                                                                                                          11.01.2020

                                                                                                                          1. Added the list_zpe_functions function which will create an ordered associative array of functions
                                                                                                                          2. Changed the way in which the JSON parser deals with ordered associative arrays, ensuring order is maintained
                                                                                                                          3. Fixed an issue in which functions were not evaluated in concatenation

                                                                                                                          12.01.2020

                                                                                                                          1. The -r and -i modes have been switched. -i is now the interactive interpreter and -r is the runtime

                                                                                                                          24.01.2020

                                                                                                                          1. Added the -j option to the main ZPE package for JSON commands (more information coming soon)
                                                                                                                          2. ZPEExceptions are now accessible as ZPEObjects and can be returned from a function

                                                                                                                          10.02.2020

                                                                                                                          1. Major fix for an issue that caused object functions to not see the same call stack as their object owners
                                                                                                                          2. Added the list_shuffle function

                                                                                                                          15.02.2020

                                                                                                                          1. Added the speak function, however, this function is currently experimental and works only on a Mac
                                                                                                                          Version 1.8.3

                                                                                                                            08.03.2020

                                                                                                                            1. Fixed an issue that meant that ZPEObject values would sometimes not save correctly when cached.

                                                                                                                            18.03.2020

                                                                                                                            1. Added the list_count_occurrences function
                                                                                                                            2. Added the list_count_if function

                                                                                                                            22.03.2020

                                                                                                                            1. Added support for null values in the JSON parser.

                                                                                                                            24.03.2020

                                                                                                                            1. Added the inline documents syntax

                                                                                                                            25.03.2020

                                                                                                                            1. Fixed an issue in which imported libraries were not accessible in all cases
                                                                                                                            2. Added the say alias for the speak function
                                                                                                                            Version 1.8.4

                                                                                                                              29.03.2020

                                                                                                                              1. Improved the in-line document syntax by supporting variables

                                                                                                                              02.04.2020

                                                                                                                              1. Changed the domain for the installer to jamiebalfour.scot

                                                                                                                              26.04.2020

                                                                                                                              1. Fixed an issue in which the list_parameters function required at least one parameter
                                                                                                                              2. Improved the way objects, associative arrays, lists etc are iterated and made it more flexible
                                                                                                                              Version 1.8.5

                                                                                                                                27.04.2020

                                                                                                                                1. ZPEServer now searches for updates automatically when set in the properties file to do so

                                                                                                                                28.04.2020

                                                                                                                                1. Fixed an issue in which object comparison through the _compare method didn't work

                                                                                                                                10.05.2020

                                                                                                                                1. The --client argument is no longer required to specify a ZPEClient, as the -h argument informs the application of this

                                                                                                                                11.05.2020

                                                                                                                                1. Added the file_get_bytes function
                                                                                                                                2. Removed the type parameter from the file_get_contents function, making it only read text

                                                                                                                                20.05.2020

                                                                                                                                1. Added the play_audio function which plays an audio stream

                                                                                                                                23.05.2020

                                                                                                                                1. Changed the play_audio function to open_audio_stream which returns a ZPEAudioStream object
                                                                                                                                Comments

                                                                                                                                There are no comments on this page.

                                                                                                                                New comment
                                                                                                                                Reply
                                                                                                                                Provide feedback on this page
                                                                                                                                Comments are sent via email to me.