When Ox 2.00 is released, the following is required after upgrading:
Recompile .oxo files
Of course, .oxo files which are part of this release need not
be recompiled.
Note that you can see local variables when using the debugger
to trace into .oxo files only if they have been compiled with
debugging on (which leads to slower code).
New features
The #import statement
allows for much easier linking of .oxo files than the link pragma.
It also includes the corresponding header file. For an example
see here.
Ox can now read most Excel workbooks, as created by Excel
versions 5.0, 95 and 97.
Achieved some speed improvement in .fmt file reading/writing.
Implemented Gauss universal matrix v96 format (.fmt). savemat()("x.fmt", x, 1) uses v96. loadmat() loads it automatically
Ox Development enhancements
The new Ox book gives examples on how to use Visual Basic 5 to write an
interface wrapper around Ox code (the old book already had examples
for Visual C++. A basic file to facilitate this is part of the developer's kit.
Providing for input function replacement (OxGets)
Export more functions from the Ox DLL:
SetNaN, FIsNaN, SetInf, FIsInf.
changed behaviour of exit() function: it still exits, but
in amore controlled fashion. This allows interface wrappers to continue.
created isclass(a, "class") to check if an object is of
type "class", or derived from it.
range() now uses truncf to get more consistent upper bound.
Added compact print format to maximization package.
Function bug fixes
savemat didn't return 1 if successful in
writing .in7/.dat/.xls/.fmt.
arma0: can crash if p > r.
Bug fixes:
An Excel file cannot have more than 65536 rows, but this upperbound was not
checked by Ox. Also reading of Excel files with more than 32K rows
went wrong. Reading of Excel 3 and 4 file reading did not work correctly
on big endian machines (was OK for Windows).
Problem with array indexing (only with dimensions greater than 1), e.g.:
decl ax = {{1,2}};//{{1,2}, {3,4}};
ax[0][0] = 10;
didi not change the first element in a.
Fixed problem when calling a static function from class foo as
static foo::bar() from inside another class.
An empty matrix indexing an array gave a run-time error.