=> 5/30/00 12:00:30 PM EDT, arning@charm.net => << As far back as Squeak 2.5, I get (true '1' false ). >>
Bob,
I get the result for the evaluation (Squeak2.7@cs#2210 -- VM => '(2000.05.24 14:00:36 436,736) Squeak.exe' on Windows base: no question about Integer built-in module): -------------------------------------------------- zz _ LargePositiveInteger new: 1. zz digitAt: 1 put: 1. a _ zz = 1. b _ zz printString. c _ zz = 1. {a. b. c. zz} => (false '1' false 0 ) -------------------------------------------------- where zz is a LargePositiveInteger of size 1. I take this to be a bug in LargePositiveInteger>>digitAt:put:, but I don't quite know how to grok in fullness the rest of your comments,
where in the case of evaluating -------------------------------------------------- zz _ Integer new: 1. zz digitAt: 1 put: 1. a _ zz = 1. b _ zz printString. c _ zz = 1. {a. b. c. zz} -------------------------------------------------- I get an error: Error: Integer cannot have variable sized instances which seems to agree with the code for Integer>>digitAt:put:
When re-evaluating the DSA test, I am getting (of course) some very big numbers. Not as big as the tests I was hinting at in previous E-mails, but big enough. I am trying to compose a run-down on this test. In any case, the body of DigitalSignatureAlgorithm>>remainder:mod: is attempting to do an Integer>>new: with a negative parameter in statement quotient _ LargePositiveInteger new: remainder digitLength - divisor digitLength. There are a number of numeric operations in that routine prior to this statement, and my suspicion is that one of them is behaving badly. I'll have an E-mail up in a few minutes.
Sincerely lost, Jerry. ____________________________
Jerry L. Archibald systemObjectivesIncorporated ____________________________
squeak-dev@lists.squeakfoundation.org