Haxial Compiler Version History
Version 0:25 (21 Jul 2008)
- Added first version of MGUI module. Capable of buttons.
- Support initial values in "var" command (third parameter) for integer types.
Version 0:24 (13 Jul 2008)
- Mostly finished implementing support for libraries (statically or dynamically linked).
- Removed the "icmd" command (was used in "StandardDefinitions.kl"), now using "cmd" along with library import for the standard library commands.
- Removes unused/unreachable Command Implementations from the compiled program. Needed when using libraries.
- Improved internal architecture.
Version 0:23 (3 Jul 2008)
- Implemented the Configurations feature.
- Source code of a program can now be split across multiple files, optionally in different folders.
- Take name of file to compile as command line parameter.
- Can execute the C compiler with optimization on or off (off for faster compiling during development).
- Added "/WK" command line option to control whether it waits for a keypress at the end before exiting.
Version 0:22 (27 Jun 2008)
- Fixed problems with MSocket.StartReceive/FinishReceive.
- Example program now displays received data, and addresses.
Version 0:21 (23 Jun 2008)
- Added MSocket support for TCP/IP networking.
- Added MTime.GetStampDifference, MTime.GetDateDifference, and MTime.TTextOptions.kShortYear.
Version 0:20 (16 Jun 2008)
- Added MTime module (not to be confused with MTimer).
Version 0:19 (12 Jun 2008)
Version 0:18 (10 Jun 2008)
- Renamed MFile module to MSocket and greatly expanded. MSocket is now used for both files and networking.
- Added general socket infrastructure, and also infrastructure for No-Wait socket commands.
- Implemented MSocket.StartConnect/FinishConnect and MSocket.StartGetSize/FinishGetSize.
- Added limited initial support for command references.
- Added support for "//" style comments.
- Added new intrinsic type "TAnyBox" meaning any boxed type (excluding embedded types).
Version 0:17 (1 Jun 2008)
Version 0:16 (28 May 2008)
- Implemented MFile module. Can now read and create files.
Version 0:15 (19 May 2008)
- Now creates fully native code executables, by generating C source code and invoking C compiler.
- Added IfNot/ifnot command.
Version 0:14 (6 May 2008)
- Implemented MURL module.
- Improved memory management, less wastage, better isolation between processes, expandable stacks.
- Misc minor changes and fixes.
Version 0:13 (30 Apr 2008)
- Implemented If/ElseIf/Else/EndIf (if/elif/else/eif) commands.
- Implemented "break" and "continue" commands in "repeat" sections.
- Implemented bracket-removing optimization for expressions.
- Changed names of variable types to all beginning with "T", but also allowing shortcuts.
- Defined a list of reserved names, and disallowed the defining of variables, commands etc with these names.
Version 0:12 (23 Apr 2008)
- Implemented "repeat" command (infinite and counted).
Version 0:11 (21 Apr 2008)
- Implemented "goto" command.
Version 0:10 (19 Apr 2008)
- Quoted/literal/constant text is now working.
- Added command "MText.Set".
- When using the generic "set" command to set a TText variable, it is interpreted as a shortcut for the "MText.Set" command.
- New example program.
- Misc bug fixes.
Version 0:9 (18 Apr 2008)
- Added 22 new commands to MText module.
- Fixed bug where program failed to terminate.
Version 0:8 (14 Apr 2008)
- Added 14 new commands to MText module.
- Use naming convention "k" for constants.
Version 0:7 (12 Apr 2008)
- Arithmetic expressions can now be calculated.
- Renamed MNumberFormat to MNumberStyle, to reduce confusion.
- Added command MText.AppendDecInt.
- Added partial support for inline Command Implementations.
- Show column number in error messages. Tab width is 4 spaces.
- Misc bug fixes.
Version 0:6 (9 Apr 2008)
- Major design changes. New design is far more powerful.
- Much improved documentation.
- Implemented support for records and expressions, however there are some bugs stopping these from working properly.
- Now uses expressions for variable/attribute types.
- New improved arrays.
- Variables can now directly contain an array or text type (without requiring use of a reference).
Version 0:5 (23 Dec 2007)
- Any Command Implementation can be invoked now (not all cases worked previously).
- Output and in/out parameters now work in Command Implementations. See example.
- Faster invocation of Command Implementations. Heavily optimized.
- Added support for omitted parameters. To omit a parameter, supply "null" for it or leave it blank.
- Tuples can now contain mixed types (frex a tuple containing an integer type and a reference type).
- In the "var" command, the initial value for a tuple type must now be enclosed in round brackets.
- Implemented the "set" command, although it is not fully functional yet.
- More documentation.
Version 0:4 (26 Nov 2007)
- Fixed and optimized invocation of Command Implementations.
- Added example invocation of a Command Implementation to the example program.
- NOTE invocation of Command Implementations does not work in all cases. Output parameters do not work.
- Improved method of verifying instructions in a program file.
Version 0:3 (13 Nov 2007)
- Standard definitions are now compiled from a .kl file instead of being hard-coded. This makes upgrades and maintenance much easier.
- Added support for enumerations.
- Added support for aliases.
- Fixed some issues re subsets.
- Improved integer-to-text abilities.
- Added documentation.
Version 0:2 (20 Oct 2007)
- Added support for numeric arrays.
- Fixed problem with passing a constant integer value as a parameter.
Version 0:1 (18 Oct 2007)