Re: DBI.Connection call yields "Object: nil error: did not understand #atEnd" in ST 3.2.91-b98173d
Mark Bratcher <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.gnu.general |
|---|---|
| Message-ID | <[email protected]> |
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
>
>