# ZPE 1.9.1: A new year, a new ZPE

ZPE 1.9.1 was officially released today marking the first of the 2021 versions of ZPE.

ZPE 1.9.1, codenamed Kelso, comes in with a large number of new features and performance improvements and is recommended to all users.

Version 1.9.1 finally fixes undefined comparisons, improves the LAME parser, adds support for empty associative arrays to the JSON parser, fixes a parameters issue, and fixes negative numbers in the binary calculator by cutting them to the appropriate number of bits (this was tricky to implement but I figured a way to do it as I always do).

But, the big feature is the match construct. This is the first new construct in a while as well (it's actually an expression but since ZPE doesn't have expressions in the documentation and it flows like an inline construct I'm calling it a construct). The match construct is now fully in the documentation and it's a pretty powerful construct.

Did I mention that ZPE 1.9.1 is actually smaller than ZPE 1.8.13 too?

One of the new features that's been recently added to PHP 8 which I'm also excited about is that of union types. ZPE has actually had union types for a while, but it was never formalised in the YASS language and therefore never actually enabled. In the next few versions, I will bring union types to ZPE.

There are other plans for ZPE in terms of types actually, since it was suggested that untyped and typed code should be mixable. Thus, in the next few versions, I will bring the ability to mix and match hard typing and soft typing in the code.