For various reasons, you may want to know the differences between individual versions of the software. Anybody who is running on a version older than 4.8 should request an update. Backward compatibility for data files remained all through the time period recorded here:
Corrections:
msftregr.bat, msftchk.bat expanded by test23f (memory blasting). There was no program with memory blasting in the regression test for VC++.
Improvements:
Function del() for the HASH organization has been improved so that it detects situations when an object seems to be in a hash table, but when you ask for it, it is not there.
The performance of the PAGER has been improved by keeping the track of dirty pages, and flushing only dirty pages to disk when close() is called. The operation is also faster due to the use of memcpy() internally when copying large blocks of bytes.
array.c is new, ZZhashStr does not involve other function calls.
hyppage is new, multiple calls to pager.close() are now permitted without a crash
del() for ZZ_HYPER_HASH prints error messages if the function cannot find the object. Changes in delhash, msgs.c.
New Features:
Function newFun() allows you to switch between different hashing functions while running your program.
An ARRAY can be treated as a sorted collection, adding and removing items while maintaining the array ordered (sorted).
A new function etOrd(), performs binary search on the sorted array.
New functions available for PAGER: fill() returns the highest byte address currently used by the PAGER; flush() flushes all dirty pages to the disk.
Unresolved issues:
Under memory blasting, open() does not return t[], only v[] !!! Testing for t[] seems to give an error even it there isn't any.
Date: Dec.16/98
Corrections:
zzincl.h used to generate warnings in the ZZinhList section. zzprep.c has been modified to generate better zzincl.h.
The order of constructors for (ZZZiClass) in zzfunc.c used to generate warnings under LINUX - zzprep.c has been modified to correct this.
Date: Nov.16/00
Corrections:
In previous version, under some conditions, util.save() crashed when the REFERENCE organization was used. This problem has been corrected.
Date: Jan.17/01
Corrections:
No changes in the source, small changes in the batch/script/include files to overcome NT problem with the 'copy' command, which does not copy the newLine character at the end of the file.
Improvements:
Added test58 to orgc/test. It demonstrates splitting the source to *.h and *.cpp files for individual classes, as usual today.
Significant improvement of the documentation part describing save/open commands (Chap.13).
The problem which was reported as unresolved issue in Ver.5.0 - open() not returning t[] properly, has been corrected since but not recorded here. We have verified that it works now.
Date: Sep.20/01
Corrections:
ARRAY and HASH work now safely in this setup (Ver.5.5 had problems for arrays of derived classes).
Improvements:
Several improvements for running multiple versions of DOL under the same project (see ZZlocal, subprojects). When several independent DOL applications are used on the same project, only one of them (the 'main' application) can save/restore data from disk now.
Date: Feb.25/02/01
Corrections:
The new native Sun compiler (Ver.5.0), not g++, required numerous minor syntax fixes for the library to compile. There are many warnings: String literal converted to char* ....
The library is now available in C++ only, the C version is not supported any more.
The Borland compiler was thoroughly tested again, and the new batch files provided by Curtis Krauskopf are included in all directories - look for files names BCB4...
Improvements:
The clarity of readme files was significantly imnproved, the compile and regression scripts simplified and improved.
Date: Sep.04/02
Corrections:
Cleanup of the test directory - numerous obsolete script files have been removed.
Improvements:
The ARRAY organization (regardless of what objects are in the array) has now access to individual bits through functions getBit() and setBit(). Note that other libraries need a special class for this (BinaryArray).
Functions clear() and clearAndDestroy() have been added to most organizations. Note that clear() disassembles the organization, while clearAndDestroy() disassembles it and destroys only those objects which have been disconnected from all(!) organizations. DOL has a special checking mechanism for this, which cannot be used in libraries which are not based on intrusive data structures.
It has been verified, that by changing ZZlocal to ZZmain in file lib/pager.hpp and recompiling the library, it is possible to use DOL with multiple, independent projects - each using ZZlocal only.
Date: -not recorded-
Improvements:
Additional error message in hash::del() protecting against deleting objects which are not in any hash table.
Date: May.05/04
Improvements:
Simple introductory examples of the three methods of saving/retrieving data from disk were added to orgc\test directory, read orgc\test\readme.txt for the instruction.
Date: Jul.18/04
Corrections:
Names of all source and batch files changed to lower case in order to make this source to compile and run under both Windows and UNIX/Linux.
Date: Oct.17/04
Corrections:
Memory leak in sweap.c - function newArr(), the SPLIT option on PC has been corrected.
Functions util.clear() can now be safely used for all three modes of saving to disk (it was disabled for ASCII and binary modes in previous versions).
Improvements:
Added ZZinheritAll as an option for users who do not want to worry about all base classes required to have at least one virtual function (as required when only ZZ_INHERIT is used).
A significant improvement in the size of disk file for memory blasting. Previous versions stores a large internal array filled mostly with 0's. The array is now stored more efficiently. Depending on the chosen parameters and size of the problem, this improvement may decrease the disk storage from 137kB to 440B !!
New function util.getNumObjects() returns the number of application objects currently in use. (The count does not include arrays of objects.)
In the User Guide, the entire chapter 13 (memory allocation and saving to disk) has been revised.
| Appendix A: Current Organizations |