# ZPE 1.7.1 is now available

Starting every post about ZPE with using something along the lines of "without a doubt, the best version" is something that's pretty tricky, but since each version of ZPE is incrementally better than the previous, it makes sense. However, as great as the latest fixes and additions are, I'm not going to start the post with this line - you be the judge of that.

Anyway, I'm happy to announce ZPE 1.7.1, Kasba Lake, is now available for download.

Kasba Lake brings a huge improvement to the ZenithParser that was a complete rewrite of the basics of the parser to make it faster and more flexible and functional. The new parser offers the ability to include bound characters, return whitespaces and much more. The ZenithParser also compiles CSV, JSON and XML much faster than before which can be useful to people who want a fast parser in the native language of Java. As well as that, the new ZenithParser allows the programmer to define custom whitespace. Overall, the new parser is 10% faster than before, all while being far more memory efficient too.

Kasba Lake also brings by reference variables! This is a useful feature that has existed for a long time but not been fully implemented until now. By reference allows methods to modify an original variable, not a copy.

1.7.1 is also monumental for development by changing the core of the compiler and interpreter. When ZPE started in 2015 it was developed as the Zenith Engine. Since then things have changed and not only has the parser become publicly available, but the Zenith Engine has some exposed methods. Well since that all changed, the Zenith Engine no longer exists as one thing. Instead there is a completely separate compiler and interpreter (or runtime). This is more efficient and the new version runs much faster as a result of this. In 2015 since ZPE was only some 5,000 lines of code, the single design was easy to manage too, but even since late 2017 ZPE has over 30,000 lines of code, making management of the compiler and runtime tough. I had always planned to separate them but never got round to it.

Another huge change is that of the new LAME or Logic And Math Evaluator that replaces the LAMP or Logic And Math Parser which now carries out both the operation of parser and evaluation in one go. This is up to 3x faster in tests I have run than the original LAMP that it replaces but is 100% accurate compared.

ZPE 1.7.1 also finally includes a web server. The ZPEWebServer is now ready for use and can act in the same way as PHP, performing very quickly. It's currently in the beta stages but all ZPE functions will work in it.

One last thing, ZPE 1.7.1 is about 15KB bigger than ZPE 1.7.0 because it has the original LAMP and the new LAME included. ZPE 1.7.1 can be seen as a hybrid between LAMP and LAME. LAMP will disappear in the near future and is now considered deprecated. You can currently use the LAMP parser if you wish by adding a setting to the properties file called use_lamp and setting it to true (ensure you lowercase both options).

zpe
1.7.1