Nova Runtime Version History ============================ ========================================================= v0.9.0 Release Date: 28/01/2023 Added Emscripten, SDL2 & OpenGL ES functionality. ========================================================= - The core nova runtime codebase is now cross platform C++ (required for Emscripten). - Working nova runtime build for Emscripten. - Unicode improvements (UTF-8). - Initial SDL2 library bindings. - SDL2 library example programs. - New “UserPtr” library class. - Initial Emscripten library bindings. - Initial OpenGL ES 2.0 library bindings. - New cast object to child class expression. - Exception handling improvements. - Serialised bytecode improvements. - "switch" statements for integral and string types. - Converted the Direct3D library structures to classes. - Deprecated "struct" value types from the language. - New and improved operand stack. - Single threaded option for Emscripten applets, by also using the main thread to perform the garbage collection. - Nova data texture example using Opengl ES. - Run the first loaded class with a valid main method or the first loaded applet class, instead of just the first loaded class. This improves the runtime’s versatility. - Nova texture examples with the relevant SDL2 bindings (png, jpg, bmp). - Emscripten command line arguments. - Improved the line number output of where a compilation error has occurred. - Lightweight “runtime only” build for Emscripten, which excludes the nova source compiler. ========================================================= v0.8.0 Release Date: 17/05/2021 Added new "using" keyword for namespaces. ========================================================= - "Using namespace" declarations with the new "using" keyword. - "Copy object" facility to produce deep copies of objects with added protection from circular dependencies. - Multithreading improvements. - Lots of other improvements and refinements. ========================================================= v0.7.0 Release Date: 31/03/2013 Added exception handling capabilities. ========================================================= - Added exception handling capabilities: - To the language: - New keywords: try, catch, finally & throw. - Compilation of syntax & expressions. - To the runtime: - New bytecode instructions. - Handle exceptions and unwind stack. - Output stack trace (when unhandled). - Initial exception handling library classes: - "Exception" base class. - "ExceptionDivideByZero" class. - "ExceptionIndexOutOfRange" class. - "ExceptionNullReference" class. ========================================================= v0.6.0 Release Date: 31/12/2011 Major restructuring work for the nova compiler. ========================================================= - Major restructuring work for the nova compiler: - Greatly improved internal architecture. - Highly efficient performance improvements. - Improved error handling. - More potential for future developments. - Improved the local variable scope for 'for' loops. - Improved the local variable scope for 'do-while' loops. ========================================================= v0.5.1 Release Date: 01/06/2010 Windows x64 compatibility update. ========================================================= - Windows x64 compatibility update. - Improvements for nova.exe command line arguments. ========================================================= v0.5.0 Release Date: 10/01/2010 New Nova Runtime XML class file format. ========================================================= - New Nova Runtime XML class file format. - novac compiler binary for creating Nova XML class files. - Runtime can deserialize and run multiple XML class files. - Browser plugins can download and run multiple XML class files. - Many other minor updates and improvements... ========================================================= v0.4.0 Release Date: 26/11/2007 Member access specifiers. ========================================================= - Added member access specifiers (public, private, protected). - Version information added to the Windows binaries. ========================================================= v0.3.1 Release Date: 19/10/2007 Windows Vista compatibility updates. ========================================================= - Updated to be fully compatible with Windows Vista. - Improvements to the runtime binaries by utilizing dynamic linking. - Improvements to the install system. ========================================================= v0.3.0 Release Date: 03/08/2007 External library module interface. ========================================================= - External library module interface. - Re-structuring of source code for future platform independence. - Synchronization / timing improvements to the Mozilla / Firefox plugin. - Minor improvements to the installer. ========================================================= v0.2.1 Release Date: 29/07/2006 Various updates. ========================================================= - Minimal, proof of concept Direct3D9 bindings. - Preliminary struct functionality (only supporting primitive types). - "typeof" operator. - "type" primitives. - Firefox / Mozilla plugin improvements. - Many other minor updates and improvements... ========================================================= v0.2.0 Release Date: 11/12/2005 Second public release. ========================================================= - Firefox / Mozilla / Netscape plugin. - Full internal Unicode support. - Garbage collection enhancements. - Nullsoft installer. - OpenGL spheres applet with motion blur effect. - Matrix calculation classes. ========================================================= v0.1.2 Milestone Date: 01/06/2005 Introduction of primitive data types. ========================================================= - primitive data types: - bool - byte - char - double - float - int - long - method (for method reference types) - sbyte - short - uint - ulong - ushort - Multiple OpenGL applets on a single web page with efficient CPU/GPU performance. ========================================================= v0.1.1 Milestone Date: 01/06/2004 Foundation work. ========================================================= - Designed and implemented a fully working Nova bytecode instruction set. - Multidimensional arrays. - Method references (static and instance). - Cpw OpenGL framework library bindings. - break and continue keywords. - Recursive type matching. - New types and operators. - 64-bit types (Long and ULong). - NFC library (Nova Foundation Classes). - Inheritance. - virtual keyword. - Virtual functions and polymorphism. - Nova Applets. - Nova ActiveX control (NovaCtl). - Basic multithreading capability. - Dual interfaces for Nova applets and applications. - OpenGL teapot example. - OpenGL colour-cube example. - Many other optimisations and improvements... ========================================================= v0.1.0 Start Date: 27/04/2002 Release Date: 01/06/2003 First public release. ========================================================= First public release of the Nova Runtime. Consisting of the following implemented features: - arrays (single dimension) - attributes - bindings (partial): - Math - OpenGL - SDL - classes (inbuilt): - Boolean - Character - Double - Float - Integer - Object - Stream - String - UInteger - comments: - block - line - declarations - garbage collection - keywords: - class - do - else - for - if - new - null - return - static - this - while - literals: - Boolean - Character - Double - Float - Integer - String - UInteger - loops: - do-while - for - while - methods - operators - operator overloading (partial)