-------------------- AmigaOS 3.1.4.(1) project ----------------------- Changes for release 45.2 (16.12.2016) - Changed the puddle size of the memory pools such that an entire multiple of the block size of the RAM allocated internal block storage fits into them. A single puddle can now keep 64 RAM blocks. NOTE: memory pools are probably not ideal for RAM-Handler usage anyhow, and a smarter mechanism should be used instead in future releases. - Updated ACTION_DISK_INFO to correctly return the total available RAM and hence the correct fill state of RAM:. This avoids problems with some programs that try to learn whether they have enough free storage on the target medium for a particular operation. Note that this calculation includes the safety margin added on the amount of ram the ram-handler does not allocate for its purposes. Currently, this safety margin is 32K. Changes for release 45.4 (2.8.2017) - A link to a delete-protected file could still be deleted, even though its protection bits indicate that it cannot. - Hard links can now have their own file note. - ACTION_EXALL did not follow links to fill in protection information, file date and the file size, and hence reported wrong information for hard links. Changes for release 45.5 (6.5.2018) - ACTION_DISK_INFO no longer scans for the largest block, just for the size of memory available. This may still give somewhat misleading information, but at least better information than it did before. - ACTION_DISK_INFO includes now the overhead of the data structure itself. ----------------------------- AmigaOS 3.2 project -------------------- Changes for release 47.1 (24.4.2019): - The RAM-Disk supports now "external links", that is, links going to other file systems. Whenever such a link is "resolved", the RAM-Disk either creates a directory within RAM: if such a directory exists on the link target, or pulls the target file into the RAM-Disk transparently. This allows RAM: to automatically mirror ENVARC: by the following simple line: "MakeLink RAM:ENV to ENVARC: Force" "Assign ENV: RAM:ENV" and all works transparently: RAM: will not copy all files in ENVARC:, but only the subset that is required by the system, as soon as it is required by the system. Changes for release 47.2 (25.4.2019): - The size of a temporary FileInfoBlock was allocated 4 bytes too small. - In case creating the external link failed, a lock to the target object might have remained. - The packet delegation function could still return ERROR_IS_SOFT_LINK which might trigger a non-supported softlink resolution from RAM: to its external link. - Some minor optimizations. Changes for release 47.3 (21.5.2019): - In case resolving an external object failed, the lock to the external object was erroneously released. - The file handler delegation function is now a bit more careful and also checks for a ZERO lock to external, upon which it fails instead of doing some nonsense. - Lock now (silently) accepts anything but an EXCLUSIVE_LOCK as SHARED_LOCK, as some programs seem to fail to deliver the right mode. - Reading a file released a lock twice. - The special rule of truncating only the first block of a file has been extended to the last block as well, allowing to reduce the memory size the RAM disk requires for many files that are small, but not quite as small as a single block. - In case an empty file was opened from a lock, a hit might have been created upon the next ACTION_READ or ACTION_WRITE. - Regular sized blocks are now no longer taken from the memory pool. This is just more overhead without benefits. - ACTION_SET_FILESIZE now fails if the file is write protected. Changes for release 47.4 (6.6.2019): - Some file systems delete the lock upon a FH_FROM_LOCK, hence the handler has to work with the original lock instead. Changes for release 47.5 (30.11.2019): - If the node currently examined is deleted and then ExNext() is called, RAM: could have accessed a stale pointer. Fixed. Changes for release 47.6 (2.1.2020): - The RAM-handler created a hit (or multiple) in an attempt to ExNext() or ExAll() the 0-lock. Changes for release 47.7 (8.1.2020): - A SetFileSize() that extended the size of a file left the file pointer at the end of the file instead of leaving it untouched.