<
Previous versions of Ox>
Ox 10.0: new features and fixes
New features and enhancements in version 10.0
Fixed problems in version 10.0
New features and enhancements in version 10.0
-
graphics
- aareas are now boxed by default
- DrawQQ now allows for error bands
Also thinning QQ plot to 1024 points (thinning is done along X axis)
- histograms are now a `vector' instead of a separate section
- Added arrows and stars
- dropped Postscript support
- DrawPath, DrawPPath,
allows SVG style paths (M,L,Q,S) with fill and stroke.
- Line colour, width, pattern, symbol can now specified as a string argument to the draw functions.
Colours can use HTML name or html hex code.
- New symbols "star" and "Star"
- DrawZ "filled" (ZMODE_FILLED) to fill the area between two vectors
-
DrawAdjust(ADJ_AREA_,...) use -1 for last area.
-
OpenDrawWindow(GWG_file) to open a GWG file;
OpenDrawWindow("") to reopen a graph for further additions after ShowDrawWindow.
-
syntax
-
nullish operator ??
.NaN and .Null are nullish, but FALSE is not, so
decl x = arr.key ?? -1;
sets x to -1 if arr.key is .Null or .NaN, or to arr.key otherwise.
This is different from
decl x = arr.key || -1;
because x would be set to -1 whenever arr.key evaluates to false.
-
Keyed indexation can now use member-style notation, provided the key is an identifier.
So arr["aa"] equals arr.aa.
- Lambda function can changed local variable through indexation.
Lambda function can still not modify local variables.
-
!string and !array now work as expected
-
functions, new and extended:
- Input/Output
-
"%J" print/scan format for JSON.
- (macOS,linux) getfiles("*.zip") does not work if file name contains dots.
- When renaming a zipped file (including oxdata) when there are dots in the name (not just for the final extension): content could not be found.
- scan %v can now read <1:4;[5]*0> but not yet 2:[2]8
- fo = fopen("stdout:", "w") uses stdout as the opened file, which can be printed to
with fprintln. Subsequent fclose(fo) does not do anything.
- Other
-
Changed default search path: user part comes after system (and without include and apps).
-
macOS dynamic library is now .dyld instead of .so, and linked with dynamic instead of bundle. All DLLs need to be recompiled for Ox 10.
-
Updated libcurl, renamed oxcurl.oxh (the header for the dll wrapper) to oxlibcurl.oxh (to contrast more clearly with oxurl.oxh).
-
Now also checking if import is already present by name (case insensitively): this allows for a linked-in oxo/ox file to be imported (header file still needs to be found when running). This allows me to import ox/packages/ForecastAB when it is already in PcGive. S is quite a rare use case.
-
Allowing leading ~ in include/import path to indicate default user home folder.
- Ox export adjustments:
FOxGetDataMember returns array with member names if name argument is "" or NULL.
New functions: OxValGetDbl, OxValGetI32, OxValGetMatVal, OxValSetMatVal.
- -xpath command line argument
- -rphalf command line argument
Fixed problems in version 10.0:
-
Fixed potential crash when using parallel loops in successive lambda functions.
-
Now always allocating empty string (instead of using NULL) to make oxo file behave exactly like running the code.
This avoids a bug in using Python from oxo file.
-
Switched off dynamic mode for openMP: caused warning on amd notebook and possibly crash
-
Reading array from oxo file (oxobj.c): now using OxValSetArray, so that allocated size is set correctly, rather than undefined.
Ox
©
JA Doornik
This file last changed .