NEW FEATURES in version 2.1.2. 1. A better overshadowing of Library functions by the dynamic variables. Now it is possible to define the functions in the static or the dynamic library classes with the same name as a dynamic variable. Then, calls with formal parameters will be resolved to the library function, while for the calls with no formal parameters the dynamic variable will take the precedence as documented. (this also allows to remove an unnecessary error message) Thanks to Mark Taylor for suggesting this feature ! 2. Stopped distributing JDK5 version of jel.jar because JDK 5 is very old and its source format is not supported by modern javac anymore. If you need JDK5 version of JEL please compile it yourself with older javac. 3. Cleaned up warnings produced by JAVA 14 compiler. 4. Changed code generation to use the family of static valueOf methods for wrapping primitive types into Java objects instead of (now deprecated) constructing these objects via the "new" operator. BUGS FIXED in version 2.1.2. 1. JEL-generated classfiles now properly store null Strings (which may appear during compile-time evaluation of static methods). 2. JEL now properly boxes (into java.lang.Boolean objects) the booleans resulting from logical expressions. Previously (since the boxing/primitive type wrapping was introduced in version 2.1.1) logical expression boxing resulted in class file verification errors: "Expecting to find unitialized object on stack". This bug was reported by Mark Taylor. November 17 2020 Konstantin L. Metlov.