can not install Chronos

Philippe Marschall philippe.marschall at gmail.com
Tue Jul 11 17:53:44 UTC 2006


As it turns out, the problems only occur in 3.9 and not 3.8.

2006/7/11, Alan Lovejoy <squeak-dev.sourcery at forum-mail.net>:
> Phillipe,
>
> The overrides of <HTTPSocket class >> #httpProxyServer> and <HTTPSocket
> class >> #httpProxyPort> are .... b) bytecode-identical to
> the originals in any case.

Not in 3.9. There they break Monticello.

> As I use the term, neither <SocketStream >> #skip:> nor <SocketStream >>
> #peek> qualify as "overrides," since SocketStream does not inherit either
> message, and since they are additions, not modificiations of existing
> methods (as of Squeak 3.8.)

Again this is not the case for 3.9 where they replace existing methods.

Looking at the inherited #peek and #skip: in SocketStream 3.8 I have
my doubts that they actually work for SocketStreams. So they are
basically bugfixes, right?

This is of course a problem if you want to be compatible with 3.8 and
3.9 at the same time. Conditionally load code?

> Is that why you refer
> to them as "overrides"?

Yes, basically a class extension that replaces an existing method.

> I can test that
> hypothesis, if you will tell me where to find the conflicting versions of
> those methods.

If you have a 3.8 image, the FastSocketStream class from SqueakMap is
what is the SocketStream class in 3.9. Great effort has been put into
this class to make in perform well (or work at all).

peek
	"Return next byte, if inBuffer is empty
	we recieve some more data and try again.
	Do not consume the byte."

	self atEnd ifTrue: [^nil].
	self isInBufferEmpty ifTrue:
		[self receiveData.
		self atEnd ifTrue: [^nil]].
	^inBuffer at: lastRead

skip: anInteger
	"Skip a number of bytes.
	This is faster than #next: since it does not
	have to copy and return a new String or ByteArray.

	NOTE: This method doesn't honor timeouts if shouldSignal is false!"

	self receiveData: anInteger.
	lastRead _ (lastRead + anInteger) min: inNextToWrite - 1

Philippe


> --Alan
>
> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On Behalf Of Philippe
> Marschall
> Sent: Tuesday, July 11, 2006 9:00 AM
> To: The general-purpose Squeak developers list
> Subject: Re: can not install Chronos
>
> Ok, this worked so far. I think I'll have to run some of your snippets to
> make sure.
>
> But I found some other problem. The sar contains four overrides. I don't
> think they are neccessary (some break stuff like Monticello others are quite
> likely to slow down the system) so I think it's best to remove them.
>
> In detail they are:
>
> HTTPSocket class >> #httpProxyServer
> HTTPSocket class >> #httpProxyPort
> SocketStream >> #skip:
> SocketStream >> #peek
>
> Philippe
>
> 2006/7/11, Alan Lovejoy <squeak-dev.sourcery at forum-mail.net>:
> > Phillipe: "It loads!"
> >
> > C'est formidable!
> >
> > Phillipe: "So do I have to copy the time-zones folder to the image
> > directory or should that have been done automatically?"
> >
> > I'd like to make that happen automatically, but I haven't figured out
> > a way to do that using .sar files yet.  If anyone would like to help, let
> me know.
> >
> > The "time-zones" folder is actually in the Chronos.sar archive file.
> > If you're on Windows, just change the extension from .sar to .zip, and
> > then your favorite zip archive app will be able to open the archive.
> > Extract the "time-zones" folder.
> >
> > You can also download the Chronos Time Zone Repository (the contents
> > of the "time-zones" folder) directly, by itself, from the Chronos web
> > site using the following link:
> http://www.chronos-st.org/downloads/time-zones.zip .
> > Extract the "time-zones" folder from the "time-zones.zip" archive file.
> >
> > By default, Chronos expects to find the "time-zones" folder in the
> > same directory as the one from which you run your Squeak image.  You
> > can change the default location programmatically.  Ask me, if you'd like
> to know how.
> >
> > --Alan
> >
> >
> > -----Original Message-----
> > From: squeak-dev-bounces at lists.squeakfoundation.org
> > [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On Behalf Of
> > Philippe Marschall
> > Sent: Monday, July 10, 2006 9:54 PM
> > To: The general-purpose Squeak developers list
> > Subject: Re: can not install Chronos
> >
> > It loads!
> > But
> > Timezone allCanonicalKeys
> > gives me an empty IdentitySet
> > In the transcript I see
> > Olson timezone keys was not accessible at the path
> > ./time-zones/foreign-keys So do I have to copy the time-zones folder
> > to the image directory or should that have been done automatically?
> >
> > Philippe
> >
> > 2006/7/10, Alan Lovejoy <squeak-dev.sourcery at forum-mail.net>:
> > > Phillippe,
> > >
> > > Apparently, the Squeak changeset logic isn't smart enough to realize
> > > that when a class is added, then renamed, it's neither necessary nor
> > > advisable to include a class renaming doIt in the changeset fileout.
> > > Since I wasn't aware of this deficiency, I didn't correct for it.
> > >
> > > But now that I know, I have removed the class rename doIt "by hand,"
> > > and have uploaded new versions of the .sar and .zip files.  Try it
> again.
> > > Hopefully, there won't be any more such issues.
> > >
> > > --Alan
> > >
> > > -----Original Message-----
> > > From: squeak-dev-bounces at lists.squeakfoundation.org
> > > [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On Behalf Of
> > > Philippe Marschall
> > > Sent: Monday, July 10, 2006 2:44 AM
> > > To: The general-purpose Squeak developers list
> > > Subject: Re: can not install Chronos
> > >
> > > 2006/7/10, Alan Lovejoy <squeak-dev.sourcery at forum-mail.net>:
> > > > Phillipe,
> > > >
> > > > There is no such method "parseCookies:" anywhere in either the
> > > > Passport or Chronos codebases.  Nor is there any protocol named
> > > > "KomHttpServer-Protocol."
> > > >
> > > > I'd check that you didn't rename Seaside's HttpRequest, instead of
> > > > Passport's. I'd also try a "virgin" Squeak image, with nothing
> > > > else installed.
> > >
> > > What I did is:
> > > - "virgin" 3.9 beta 7038
> > > - DynamicBindings 1.2
> > > - KomServices 1.1.2
> > > - KomHttpServer 7.0.3
> > > - Seaside2.6b1-lr.53
> > > Standard Seaside setup. No renaming, no nothing.
> > >
> > > The I filed in Chronos.sar
> > >
> > > What I observed is that PPHttpRequest ends up in the category
> > > 'KomHttpServer-Protocol' so it rather looks like Chronos.sar
> > > renames HttpRequest (of Kom which also has #parseCookies:) to
> > > PPHttpRequest
> > >
> > > Philippe
> > >
> > >
> > >
> > >
> >
> >
> >
> >
>
>
>
>



More information about the Squeak-dev mailing list