This sounds nice. Some comments:
1) I can't load it. Adding the repository via Monticello and trying to even select the version in the Monticello browser leads to the attached error stack.
I opened the version as a Zip file and loaded snapshot/source.st from it directly, instead, but it is inconvenient.
2) How does it relate to Helge Horch's Squeak port of Andrew Brault's Dolphin package? Did you know of this package?
http://home.netsurf.de/helge.horch/squeak/units.html
The code looks more elaborate and complicated (350 kb of source is not lightweight compared to 51 kb in Helge's package and 21 kb for the equivalent Slate code) but has the same class names in several places. However, I cannot tell if this complication is valuable or wasteful, because there are not enough comments in the source file (actually it looks like there are NO comments).
A lot of the extra work appears to be a huge unit-test suite, which is good. There is also some kind of graph model and some evaluation/ thunking mini-library. These seem to be useful only for portability (since you are not using other equivalent Squeak packages), so you may want to separate them for clarity.
I also am not an ACM member, so I cannot read your paper until OOPSLA.
3) I like the MeasureBag idea. Does it work for non-Integer values and why or why not?
4) "Measure" suggests measurement, which has precision and tolerance. Do you take these into consideration? If not, why name it Measurement instead of DimensionedUnit or something? It will be confusing if someone makes a separate type system that /does/ handle precision and tolerance.
Thanks!
On Mar 27, 2006, at 2:17 PM, Hernan Wilkinson wrote:
Hi, we create a packaged named Aconcagua at SqueakSource. This model represents measures as first class objects, that is, an object that encapsulates a number with its unit. We uploaded a FAQ to its SqueakSource wiki, with some examples. The model includes almost 600 tests that can be used as examples also. We use this model in many of the financial applications we wrote and it is used by the Gregorian Calendar model we are going to upload soon (the one presented at ESUG last year). The package is going to be available for VisualAge, GemStone, VisualWorks and Dolphin. (Right now only on Squeak, VisualAge and GemStone). There is also a practitioner report we wrote for OOPSLA about this model: (http://portal.acm.org/citation.cfm? id=1094964&coll=ACM&dl=ACM&CFID=72196433&CFTOKEN=8952623 <http:// portal.acm.org/citation.cfm? id=1094964&coll=ACM&dl=ACM&CFID=72196433&CFTOKEN=8952623>) We hope you like it. Bye, Hernan.
-- -Brian http://tunes.org/~water/brice.vcf