Releases: aquefir/hinterlib
Integration of Mersenne–Twister 19937, and revival of tables module
This is a release that has been months in the making by this point. The table/
module provides a general-purpose system for keyed data store, and for key generation it has depended on the generation of random integers.
This originally used the Mersenne–Twister 19937 algorithm, as supplied by Aquefir’s dedicated mt19937lib
, but this proved to be a serious challenge to the architecture of unilib itself, for two reasons:
- the original
mt19937lib
implementation simply wrapped the implementation in the C++11 STL, creating a library dependency on the C++11 standard library. this was untenable for the kinds of systems unilib is intent on targeting. - the structure of the unilib project was becoming increasingly monolithic, and the dependency on the outside
mt19937lib
would have forced it to be subsumed into the project. unilib needed to be broken apart along modular boundaries before the Mersenne–Twister algorithm could be depended on.
The second item got done and became the 1.1 product release, and a while back the algorithm was reimplemented in ANSI C. Today these changes were finally put together, and this has allowed the table module to finally enter production starting with semver 1.3.0.
hotfix for cascading dependencies
v1.1.0-1.2.1 err depends on log
New modular layout!
v1.1.0-1.2.0 update all Makefiles to support PUBHFILES and PRVHFILES
Final minor updates of the 1.0 product series
The unilib project is accreting a lot of useful functionality. Most recently, efforts to integrate mt19937lib
have shown that the project is starting to become quite monolithic. Rather than take the workable path of subsuming mt19937lib
into unilib, unilib will be split up into its different modules, in such a way that dependency graphs can be plotted for each module, and modules not depended on are not included as a dependency. This will not break unilib’s public API, but unilib will be more of an ‘umbrella project’ from then instead. This is the last release of the increasingly monolithic unilib, in (product version (symver) 1.0. The API (semver) version will continue to be in the 1.x range.
Update a lot of text
This release disseminates a lot of boilerplate updates, and fixes the library version in ver.h
(it wasn’t updated last time). This includes:
- the comment boilerplates in all sources
- the titling of the project in the comment boilerplate and any text files it appeared in
- a rewrite of the project README
- moving the BOILERPLATE into
etc/
as per ADP 1
Product increment, public API bump to v1.1
This includes a lot of battle tested quality improvements, and a ton of new public API modules. It is also the first release to support the Nintendo Game Boy Advance. It maintains 1.x compatibility in its public API, however I opted not to increment the minor product version as this is, for all my intentions, a much more proper “1.0” release. This version of unilib is complete enough to replace most Aquefir and related applications’ dependency on GLib.