Hi folks!
A few things for possible inclusion, I don't have time right now to check if some of these are already included but I think not.
Two of them are nice speedups (time and printing SmallIntegers), the other one is a simple addition of behavior (parsing dates) that I wrote as a reaction to a post on the beginners list a while back. Oh, and I also added a fix for SMTPClient - well, two rolled into one changeset actually - harvested from the Gjallar project.
I consider 6513 to be trivial to add (just added behavior - can't break stuff), 6512 seems trivial too (easy to verify), 4669 should be green with all Date/Time tests and has been recommended for inclusion earlier, but perhaps someone else did something in that area that has made it obsolete (Keith?), I don't recall. 6768 also seems easy to include, and it has been battle tested in Gjallar.
regards, Göran
----------------------------------------- http://bugs.squeak.org/view.php?id=6512
Much faster printString (and thus also asString) for SmallIntegers: One override of #printString for SmallInteger and a new method for counting digits in base 10. This makes #printString for SmallIntegers more than 4 times faster than before. ----------------------------------------- http://bugs.squeak.org/view.php?id=6513
Read a Date from the stream based on the pattern which can include the tokens:
y = A year with 1-n digits yy = A year with 2 digits yyyy = A year with 4 digits m = A month with 1-n digits mm = A month with 2 digits d = A day with 1-n digits dd = A day with 2 digits
...and any other Strings inbetween. Representing $y, $m and $d is done using \y, \m and \d and slash itself with \. Simple example patterns:
'yyyy-mm-dd' 'yyyymmdd' 'yy.mm.dd' 'y-m-d'
A year given using only two decimals is considered to be >2000. -------------------------------------------- http://bugs.squeak.org/view.php?id=4669
Ok, so we were trying to figure out why our logger in Gjallar spent so much time in creating DateAndTime etc... after looking, tweaking, profiling and even some thinking I came up with this "SpeedPack" of changes.
I might have broken some subtleties (I don't think I have though) but the tests are still green. Glad for any indepth review.
And? Well, the speed differences are quite huge. :) Lots of it comes from better Duration instance creation methods and from not going back and forth too much between nanos and seconds etc.
"DateAndTime now" is about 6 times faster and "Date today" 4 times. The full chronology test suite runs almost 2 times faster. See preamble for a do-it that shows this (run before and after installing cs).
So far only tested in 3.8. -------------------------------------------- http://bugs.squeak.org/view.php?id=6768
Added support for EHLO (sending SMTP using Exchange) and fixed a problem with authentication - #initiateSession needs to be sent before login occurs.