I have just uploaded a new config, and called it version 3.5.2.
Split out Trait extensions FileSystem/Directory detection and load only when supported.
- Traits are supporten in Pharo and Squek (but only when loaded).
- FileSystem is in all newer Pharo but could be loaded in Pharo 1.0 and Squeak, GemStone and Squeak have FileDriectory by default'
This makes it possible to properly load in Squeak and neatly have the dependencies more "capability"-based.
This is because Squeak can live with and without Traits or FileSystem.
Another goal was to Un-break GemStone a bit more, but not too much progress here.
The effect is that the tests for the external file model are now centralized, and the implementation in
Magritte-FileDirectory (for Squeak/GemStone), Magritte-FileSystem (for squeak, pharo-1 and pharo-2), and (traditional way) Magritte-Pharo3-Model).
If this is not to your liking, please tell and I'll reverse this.
Also, I found a problem with using DateAndTime as timestamp 'backend' in Pharo.
The problem is, that we loose information, should ever a DateAndTime be used that uses a local offset, and, sadly, that is almost every one.
Here's a snipped to illustrate:
|d t tz text |
tz := DateAndTime localTimeZone.
[d := MATimeStampDescription new
accessor: MANullAccessor new;
t := GRPlatform current magritteTimeStampClass current.
text := d toString: t.
DateAndTime localTimeZone: (TimeZone offset: -8 hours name: 'Pacific Standard Time' abbreviation: 'PST').
(d fromString: text) = t
] ensure: [ DateAndTime localTimeZone: tz ].
You will get false, but we want true.
Sadly, this also holds for Squeak.
We could force a timeszone designator at the end of the to-string-converted version (like this
self stream print: self object asDate; space.
self stream print: self object asTime; space.