Please enable JavaScript to view this site.

A-Shell Development History

SBX calling enhancement: When an SBX is called, A-Shell now checks to see if the version available on disk is newer than the one in memory, and if so, automatically reloads it from disk. To reduce the overhead of this check to a negligible amount, the test is never performed more often than once per 15 seconds for any single SBX. In other words, within 15 seconds of copying a new version of an SBX into the search path, all calls to the SBX will begin using the new version.

Previously, any job that had recently called the SBX prior to the update would most likely have continued to use the old version which was cached in user memory. This ranged from a minor inconvenience (perhaps requiring all users to log out of A-Shell in order to ensure that an updated SBX would take effect right away), to frustration, confusion and wasted time (when thinking that an updated SBX was in use when some users were still running an older version from memory).

Note that the test is not "directional", i.e. it will reload the version on disk if there is any difference in the time stamp (newer or older), so you can roll back to a prior version the same way you update to a newer version.

WARNING: The search path used to compare the disk version to the memory version is identical to that used to actually load the routine from disk, i.e. first [p,pn], then [p,0] (or the RUN file location, if SBR=SBX_RUNDIR), and finally BAS:. If you intend to roll out a new version of the, make sure that your new version appears before any older versions in the search path. (And if, for some hard-to-imagine reason, you don't want users to immediately being using an updated SBX, don't copy it into the search path.)