Chronos is one of the many Smalltalk-related blogs syndicated on Planet Smalltalk
χρόνος

Discussion of the Essence# programming language, and related issues and technologies.

Blog Timezone: America/Los_Angeles [Winter: -0800 hhmm | Summer: -0700 hhmm] 
Your local time:  

2007-01-15

Version B1.190 of the Chronos Date/Time Library Published

Chronos Version B1.190 has been publised ("Beta Release 1--build 190".) Chronos B1.190 is available for VisualWorks, Squeak and Dolphin.

Chronos Version B1.190 can be obtained from the Chronos Web Site. The VisualWorks version can also be obtained from the Cincom Public StORE Repository, and the Squeak version can also be obtained from SqueakMap (as a .sar archive.)

NOTE: The SqueakMapPackageLoader tool does not work with the Chronos.sar archive, although Chronos.sar can be dowloaded to your local machine over HTTP and then installed using the Squeak FileList. (This problem has been reported, and a fix has been identified. See: [SM][BUG] Error: can't find EOCD position.)

You may also use the direct download link for VisualWorks, the direct download link for Squeak or the direct download link for Dolphin.

The Chronos Time Zone Repository is included in the download archive. Be sure to follow the Chronos Installation Instructions--especially if you have not already done so for a previous version of Chronos.

If you are reinstalling Chronos into an image in which an earlier version is already resident, and do not install the new version from the Cincom Public StORE Repository using StORE, it is necessary to first remove the earlier version. StORE has been able to correctly install the new version on top of every earlier version I have tried--but I haven't tried them all.

About Chronos Version B1.190



B1.190 enhances the Passport inter-Smalltalk portability library (on which Chronos depends) with full support for infinities, infinitesimals and NaNs. Such "metanumbers" can be quite useful, but are often not available, and certainly don't have any standard API or semantics among the various Smalltalk dialects.

The semantics of the new metanumbers correspond to the accepted mathematical norms, and conform to the IEEE floating point specification for the behavior of infinities and NaNs (except that they're not floating point numbers.)

The principle reason metanumbers were added to Passport was to enable Chronos to fully and elegantly support infinite durations, and also points-in-time in the infinite future or infinite past. Time intervals where one of the endpoints is the infinite future or infinite past are quite commonly needed. And now they're easy to construct and use in Chronos.

Also, since Passport now provides infinities (positive and negative) as first-class metanumbers, the class ChronosInfinity, which formerly resided in Chronos-Utilities (where the Time Zone Compiler can be found,) and which was not fully implemented, was removed and retired.

The following concrete classes have been added:

PassportInfinity
PassportInfinitesimal
PassportNotANumber (NaN)
InfiniteDuration
InfiniteTimepoint

So, it may have taken a while, but infinities didn't actually take forever to implement :-)

Finally, some bugs that had been recently introduced (over the past several weeks, starting with Chronos version B1.180 and later) were found and fixed.


No comments: