Igor, do you mean everything related to millisecondClockValue (primitive 135)? That would be very good to get rid of this useless complexity! Of course it might cost some image freeze since used in Delay (I accidentally caused a few, but then narrowed my changes to something softer).
2013/4/28 Igor Stasenko <siguc...@gmail.com> > On 28 April 2013 08:41, stephane ducasse <stephane.duca...@free.fr> wrote: > > thanks a lot! > > Friday we have an official sprint so I'm sure that this issue will be > > addressed. > > > yes. and i hope i will put my changes into the soup as well. > (i did not published them, and some bits are unfinished). > > > Stef > > > > See https://pharo.fogbugz.com/default.asp?10425# and corresponding > SLICE in > > 3.0 inbox > > Note: I don't know what is the policy with the labels/states of these bug > > tracker, and it rather bothers me, but the SLICE is ready for > tests/reviews. > > > > > > 2013/4/27 Nicolas Cellier <nicolas.cellier.aka.n...@gmail.com> > >> > >> There is more: > >> > >> 1) hasEqualTicks: use julianDayNumber instead of julianDayNumberUTC > >> 2) (Time dateAndTime now) interprets the (Time localSeconds) which are > >> from the wrong primitive (seconds ellapsed since squeak epoch > translated to > >> local time) as seconds ellapsed since squeak Epoch (UTC time). > >> > >> We should really ban the old primitive 137 and only use the new one (240 > >> which works with UTC microseconds). > >> > >> I think Camillo did a good job, but he stopped cleaning too soon. > >> Ah, young guys are so impatient to invent the future ;) > >> > >> > >> 2013/4/27 stephane ducasse <stephane.duca...@free.fr> > >>> > >>> > >>> On Apr 27, 2013, at 6:33 PM, Nicolas Cellier > >>> <nicolas.cellier.aka.n...@gmail.com> wrote: > >>> > >>> > Since DateAndTime comment is out of date (sic !) and current > >>> > implementation seems not free of bug, here is an effort to summarize > and > >>> > understand the whole thing, let's call this a review. > >>> > >>> Thanks this is a great initiative! > >>> > >>> > >>> > Please tell me where my interpretations are wrong. > >>> > > >>> > 1) The DateAndTime is stored internally as > >>> > - a point in UTC time (julianDayNumber, seconds, nanos) > >>> > - an offset from UTC (a Duration) denoting the local time zone > >>> > > >>> > 2) The ticks method returns the UTC part {julianDayNumber. seconds. > >>> > nanos} > >>> > > >>> > 3) DateAndTime print themselves in local time using the offset > >>> > > >>> > 4) other methods (with some exceptions) return the local dateAndTime > >>> > parts (year month day hours minutes seconds) > >>> > > >>> > Exceptions are: > >>> > - secondsSinceMidnight (which should be renamed > secondsSinceMidnightUTC > >>> > IMO, even if the method is classified private) > >>> > - julianDayNumberUTC as the name tells > >>> > > >>> > So far so good (but secondsSinceMidnight which is error prone) > >>> > > >>> > What I find strange: > >>> > - #hash uses the offset... Why ??? > >>> > > >>> > d1 := DateAndTime now. > >>> > d2 := d1 offset: d1 offset + 1 hours. > >>> > { > >>> > d1 = d2. > >>> > d1 hash = d2 hash. > >>> > } > >>> > gives #(true false), a clue? > >>> > > >>> > - #< compares julianDayNumber (the UTC inst. var.) with otherDate > >>> > julianDayNumber (with otherDate local offset) which seems wrong, it > should > >>> > better use julianDayNumberUTC or (normalized) ticks. > >>> > > >>> > - #= could be simplified and accelerated if using #hasEqualTicks: (if > >>> > the ticks are correctly normalized though which would be the case > since > >>> > #ticks:offset: does, unfortunately #setJdn:seconds:nanos:offset: > does not). > >>> > > >>> > Some senders of #setJdn:seconds:nanos:offset: don't normalize the > >>> > day/seconds/nanos, though it should be their responsibility > (DateAndTime > >>> > todayAtMilliSeconds: xxx) (DateAndTime todayAtNanoSeconds: xxx), not > >>> > counting year:month:day:hour:minute:second:nanoSecond:offset: which > does not > >>> > either (many senders...). > >>> > Maybe we should better let the normalization responsibility to > >>> > #setJdn:seconds:nanos:offset:. > >>> > > >>> > It remain to analyze the conversion protocol (asYear etc...) which > >>> > seems to use the local time year, but I don't understand the whole > Timespan > >>> > thing right now (why DateAndTime now asYear starts now, and not on > january > >>> > 1st?). > >>> > > >>> > Nicolas > >>> > > >>> > > >>> > >>> > >> > > > > > > > > -- > Best regards, > Igor Stasenko. > >