[squeak-dev] SqNumberParser refactoring
nicolas cellier
ncellier at ifrance.com
Sun Aug 31 02:46:31 UTC 2008
SqNumberParser speed up has been introduced a little prematurely in
3.10.1 image. I uploaded correction for a detail at
http://bugs.squeak.org/view.php?id=6976
Now all the tests parsing gradual underflow Float should pass again
(round to the nearest Float as was the case before the speed up).
That's quite some time i spent correcting my own bugs with this
SqNumberParser!
- http://bugs.squeak.org/view.php?id=6976 speed up (harvested in 3.10.1)
introduced the bug described above
- http://bugs.squeak.org/view.php?id=6982 (not harvested)
had a typo
- http://bugs.squeak.org/view.php?id=3512 (harvested in 3.9)
introduced a bug in ScaledDecimal parsing
(see http://bugs.squeak.org/view.php?id=7169)
- http://bugs.squeak.org/view.php?id=6779 (in minor fix unstable 3.10)
duplicated this bug in another method
so did http://bugs.squeak.org/view.php?id=6982
Sorry for inconvenience (don't think any user but me bumped into these
problems however, given that Number readFrom: is far worse w.r.t.
nearest Float, and is still the official Number reader in the image).
Sorry for flooding maintainers too (I think the impact is bigger).
Looking at my own code i saw code duplications, not enough comment,
typos in comments.
Some will find that using inst var to save some of the parser state is
tricky, but that's another subject (Scanner and parser do the same).
This is the cost of efficiency. And that's why comments are necessary.
Anyway, i refactored a bit, cleaned duplications, added comments, and
added more speed again for LargeInteger using same kind of divide and
conquer trick as http://bugs.squeak.org/view.php?id=6887 (more in
another post)
All my tests are green. Now, i have a problem for publishing in mantis.
Since the refactoring does interfere with a lot of already published
patches some harvested, some not, some on the way to be harvested, It
might create some problems for harvesters (load order of Installer
mantis ensureFix:).
I like the small change sets for they can be adopted independantly in
several distributions, but there Monticello might be more appropriated.
What do you suggest?
More information about the Squeak-dev
mailing list
|