|
From: | Mark Bratcher |
Subject: | Re: [Help-smalltalk] DBI.Connection call yields "Object: nil error: did not understand #atEnd" in ST 3.2.91-b98173d |
Date: | Mon, 31 Aug 2015 06:28:40 -0400 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
Hi Holger Thanks again for being so responsive.After doing some admittedly light research on the `new` method versus `initialize`, it looks like Pharo (and probably, therefore, Squeak) is the only variant of Smalltalk that automatically calls an instance initializer (`initialize`) on `new`. If GNU Smalltalk is following this to be easier to port from Pharo, that raises a philosophical question for GNU Smalltalk: is intended for it to align as much as possible with the Pharo implementation (and then perhaps, ultimately, become a "Pharo variant"), or to attempt to remain more "pure" (whatever that might mean :)) relative to Smalltalk-80? I noticed in various texts discussion Smalltalk class instance creation, specifically show a pattern something like:
Foo class >> new [ ^super new initialize ] Mark On 8/31/2015 2:09 AM, Holger Freyther wrote:
The socket is connecting fine. But digging into the connection code, I found that a `class new` operation now automatically calls the `initialize` method in 3.2.91-b98173d, but it does not do so in 3.2.5. This causes a problem in the MySQLPacket and MySQLInputPacket connection code and results in `MySQLInputPacket >> initialize` being called too early in `^(self new) stream: aStream ; initialize` inside of ` MySQLPacket class >> on: aStream`. It's called automatically on `self new` before the stream is set.I tried to align this semantic to Pharo (as porting from/to Pharo gets easier). Thank you for your analysis! The question is why does the CI pass? Did I by accident not go through authentication? I will try to reproduce and integrate a fix this week. holger
[Prev in Thread] | Current Thread | [Next in Thread] |