Hi
I tried to install Chronos and followed the steps described at: http://chronos-st.blogspot.com/2006/03/squeak-version-of-chronos-published.html However at step 5, when filing in Chronos.st, I get a DNU in the #initialize method of TimeZonePolicyFactory class for self basicInitializeAll. Philippe |
Philippe,
Your problem is simply that you are following instructions that are out of date, and were applicable only to Chronos version B1.150. [Perhaps I should delete old blog entries?] The current version of Chronos is B1.172. That's the only version downloadable from the web site at this time. The correct installation instructions are in the file named Installation.html, which is included in the "Chronos.zip" archive file. You can also see the correct installation instructions on the Squeak Downloads page on the Chronos web site (http://www.chronos-st.org). I haven't published any new versions of Chronos since early May, but expect to do so soon. The new Squeak version will be repackaged as a SAR file, which should make things easier. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Sunday, July 02, 2006 3:50 AM To: The general-purpose Squeak developers list Subject: can not install Chronos Hi I tried to install Chronos and followed the steps described at: http://chronos-st.blogspot.com/2006/03/squeak-version-of-chronos-published.h tml However at step 5, when filing in Chronos.st, I get a DNU in the #initialize method of TimeZonePolicyFactory class for self basicInitializeAll. Philippe |
In reply to this post by Philippe Marschall
Hi
Thanks, but now when I try to load Chronos/Passport-Squeak.st I get a syntax error at: HttpRequest KomHttpSever-protocol writeOn: writeOn: aStream "this can be used to form a client-side request and send it over network" aStream nextPutAll: self method, ' ', self url, ' ', self protocol, String crlf. self header keysAndValuesDo: [:key :Name already used in this class ->value | aStream nextPutAll: key, ': ', value, String crlf]. aStream nextPutAll: String crlf. "aStream nextPutAll: self body asString" I renamed the value block argument but then the next just popped up in #parseCookies:. That image already had a Kom Server (7.0.3). Philippe 2006/7/4, Alan Lovejoy <[hidden email]>: > Philippe, > > Your problem is simply that you are following instructions that are out of > date, and were applicable only to Chronos version B1.150. [Perhaps I should > delete old blog entries?] > > The current version of Chronos is B1.172. That's the only version > downloadable from the web site at this time. The correct installation > instructions are in the file named Installation.html, which is included in > the "Chronos.zip" archive file. > > You can also see the correct installation instructions on the Squeak > Downloads page on the Chronos web site (http://www.chronos-st.org). > > I haven't published any new versions of Chronos since early May, but expect > to do so soon. The new Squeak version will be repackaged as a SAR file, > which should make things easier. > > --Alan > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]] On Behalf Of Philippe > Marschall > Sent: Sunday, July 02, 2006 3:50 AM > To: The general-purpose Squeak developers list > Subject: can not install Chronos > > Hi > > I tried to install Chronos and followed the steps described at: > http://chronos-st.blogspot.com/2006/03/squeak-version-of-chronos-published.h > tml > > However at step 5, when filing in Chronos.st, I get a DNU in the #initialize > method of TimeZonePolicyFactory class for self basicInitializeAll. > > Philippe > > > > |
Phillipe,
The Passport package, on which Chronos depends, defines a class named HttpRequest. Apparently, you have some other package installed that also defines a class named HttpRequest. You will have to rename one of the "HttpRequest" classes to something else, given Squeak's lack of support for namespaces. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Monday, July 03, 2006 9:49 PM To: The general-purpose Squeak developers list Subject: Re: can not install Chronos Hi Thanks, but now when I try to load Chronos/Passport-Squeak.st I get a syntax error at: HttpRequest KomHttpSever-protocol writeOn: writeOn: aStream "this can be used to form a client-side request and send it over network" aStream nextPutAll: self method, ' ', self url, ' ', self protocol, String crlf. self header keysAndValuesDo: [:key :Name already used in this class ->value | aStream nextPutAll: key, ': ', value, String crlf]. aStream nextPutAll: String crlf. "aStream nextPutAll: self body asString" I renamed the value block argument but then the next just popped up in #parseCookies:. That image already had a Kom Server (7.0.3). Philippe 2006/7/4, Alan Lovejoy <[hidden email]>: > Philippe, > > Your problem is simply that you are following instructions that are > out of date, and were applicable only to Chronos version B1.150. > [Perhaps I should delete old blog entries?] > > The current version of Chronos is B1.172. That's the only version > downloadable from the web site at this time. The correct installation > instructions are in the file named Installation.html, which is > included in the "Chronos.zip" archive file. > > You can also see the correct installation instructions on the Squeak > Downloads page on the Chronos web site (http://www.chronos-st.org). > > I haven't published any new versions of Chronos since early May, but > expect to do so soon. The new Squeak version will be repackaged as a > SAR file, which should make things easier. > > --Alan > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]] On Behalf Of > Philippe Marschall > Sent: Sunday, July 02, 2006 3:50 AM > To: The general-purpose Squeak developers list > Subject: can not install Chronos > > Hi > > I tried to install Chronos and followed the steps described at: > http://chronos-st.blogspot.com/2006/03/squeak-version-of-chronos-publi > shed.h > tml > > However at step 5, when filing in Chronos.st, I get a DNU in the > #initialize method of TimeZonePolicyFactory class for self > > Philippe > > > > |
In reply to this post by Philippe Marschall
> The Passport package, on which Chronos depends, defines a class named
> HttpRequest. Apparently, you have some other package installed that also > defines a class named HttpRequest. Well me and anybody with Seaside :( > You will have to rename one of the "HttpRequest" classes to something else, > given Squeak's lack of support for namespaces. Well, this and I am not sure I really need or want all these overrides. Either changing Kom or Passport and Passport-Squeak. Passport-Squeak is the Squeak Password compatibilty/implementation layer, is that correct? Personally I'd prefer the later but for that it would help to have it as let's say a SqueakSource package. Philippe |
Phillipe,
The next version of the Passport package for Squeak will have Passport's HttpRequest renamed to PPHttpRequest. It will also be distributed as a SAR (which I believe will also make it have the format of a SqueakSource package, although Avi currently is the sole admin of the Chronos package on SqueakSource.) You should expect the next version to be available by Sunday evening, 9 July (US Pacific Time.) --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Tuesday, July 04, 2006 12:09 PM To: The general-purpose Squeak developers list Subject: Re: can not install Chronos > The Passport package, on which Chronos depends, defines a class named > HttpRequest. Apparently, you have some other package installed that > also defines a class named HttpRequest. Well me and anybody with Seaside :( > You will have to rename one of the "HttpRequest" classes to something > else, given Squeak's lack of support for namespaces. Well, this and I am not sure I really need or want all these overrides. Either changing Kom or Passport and Passport-Squeak. Passport-Squeak is the Squeak Password compatibilty/implementation layer, is that correct? Personally I'd prefer the later but for that it would help to have it as let's say a SqueakSource package. Philippe |
In reply to this post by Philippe Marschall
Wow, this is great news. I'm looking forward to it.
Philippe 2006/7/5, Alan Lovejoy <[hidden email]>: > Phillipe, > > The next version of the Passport package for Squeak will have Passport's > HttpRequest renamed to PPHttpRequest. It will also be distributed as a SAR > (which I believe will also make it have the format of a SqueakSource > package, although Avi currently is the sole admin of the Chronos package on > SqueakSource.) > > You should expect the next version to be available by Sunday evening, 9 July > (US Pacific Time.) > > --Alan > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]] On Behalf Of Philippe > Marschall > Sent: Tuesday, July 04, 2006 12:09 PM > To: The general-purpose Squeak developers list > Subject: Re: can not install Chronos > > > The Passport package, on which Chronos depends, defines a class named > > HttpRequest. Apparently, you have some other package installed that > > also defines a class named HttpRequest. > > Well me and anybody with Seaside :( > > > You will have to rename one of the "HttpRequest" classes to something > > else, given Squeak's lack of support for namespaces. > > Well, this and I am not sure I really need or want all these overrides. > Either changing Kom or Passport and Passport-Squeak. > Passport-Squeak is the Squeak Password compatibilty/implementation layer, is > that correct? Personally I'd prefer the later but for that it would help to > have it as let's say a SqueakSource package. > > Philippe > > > > |
In reply to this post by Philippe Marschall
Version B1.173 of Chronos has been published.
This version fixes a bug in ChronosParser reported by John Rubier. It also renames the Passport class HttpRequest to PPHttpRequest, and renames the Passport class HttpResponse to PPHttpResponse (to avoid a class name conflict with Seaside.) The latter changes only affect Squeak, since both HttpRequest and HttpRespose existed only in the Squeak version of Passport. The new version is available either from SqueakSource (http://map.squeak.org/account/package/46b5731f-5112-4157-94d3-d40c4ed8304d) or from the Chronos web site (http://www.chronos-st.org). Note that the version available from SqueakSource is now distributed as a SAR file. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Alan Lovejoy Sent: Tuesday, July 04, 2006 8:43 PM To: 'The general-purpose Squeak developers list' Subject: RE: can not install Chronos Phillipe, The next version of the Passport package for Squeak will have Passport's HttpRequest renamed to PPHttpRequest. It will also be distributed as a SAR (which I believe will also make it have the format of a SqueakSource package, although Avi currently is the sole admin of the Chronos package on SqueakSource.) You should expect the next version to be available by Sunday evening, 9 July (US Pacific Time.) --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Tuesday, July 04, 2006 12:09 PM To: The general-purpose Squeak developers list Subject: Re: can not install Chronos > The Passport package, on which Chronos depends, defines a class named > HttpRequest. Apparently, you have some other package installed that > also defines a class named HttpRequest. Well me and anybody with Seaside :( > You will have to rename one of the "HttpRequest" classes to something > else, given Squeak's lack of support for namespaces. Well, this and I am not sure I really need or want all these overrides. Either changing Kom or Passport and Passport-Squeak. Passport-Squeak is the Squeak Password compatibilty/implementation layer, is that correct? Personally I'd prefer the later but for that it would help to have it as let's say a SqueakSource package. Philippe |
In reply to this post by Philippe Marschall
2006/7/10, Alan Lovejoy <[hidden email]>:
> Version B1.173 of Chronos has been published. > > This version fixes a bug in ChronosParser reported by John Rubier. It also > renames the Passport class HttpRequest to PPHttpRequest, and renames the > Passport class HttpResponse to PPHttpResponse (to avoid a class name > conflict with Seaside.) The latter changes only affect Squeak, since both > HttpRequest and HttpRespose existed only in the Squeak version of Passport. Cool thanks. However I still can't load it, I get a TimeZonePolicyFactory class doesNotUnderstand: #basicInitializeAll This happens in the #initialize method of TimeZonePolicyFactory class. > The new version is available either from SqueakSource > (http://map.squeak.org/account/package/46b5731f-5112-4157-94d3-d40c4ed8304d) > or from the Chronos web site (http://www.chronos-st.org). Note that the > version available from SqueakSource is now distributed as a SAR file. You're talking about SqueakMap. SqueakSource is something different. (I get a EOCD error when directly loading from SqueakMap, so I have to download and install by hand, but this is standard procedure for SqueakMap for me these days anyway) Philippe |
Phillippe,
There was an error in the install script. I've fixed it. Download the sar file and try it again. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Monday, July 10, 2006 12:30 AM To: The general-purpose Squeak developers list Subject: Re: can not install Chronos 2006/7/10, Alan Lovejoy <[hidden email]>: > Version B1.173 of Chronos has been published. > > This version fixes a bug in ChronosParser reported by John Rubier. It > also renames the Passport class HttpRequest to PPHttpRequest, and > renames the Passport class HttpResponse to PPHttpResponse (to avoid a > class name conflict with Seaside.) The latter changes only affect > Squeak, since both HttpRequest and HttpRespose existed only in the Squeak version of Passport. Cool thanks. However I still can't load it, I get a TimeZonePolicyFactory class doesNotUnderstand: #basicInitializeAll This happens in the #initialize method of TimeZonePolicyFactory class. > The new version is available either from SqueakSource > (http://map.squeak.org/account/package/46b5731f-5112-4157-94d3-d40c4ed > 8304d) or from the Chronos web site (http://www.chronos-st.org). Note > that the version available from SqueakSource is now distributed as a > SAR file. You're talking about SqueakMap. SqueakSource is something different. (I get a EOCD error when directly loading from SqueakMap, so I have to download and install by hand, but this is standard procedure for SqueakMap for me these days anyway) Philippe |
In reply to this post by Philippe Marschall
Well, now I get a Syntax Error again:
PPHttpRequest KomHttpServer-Protocol parseCookies: parseCookies: aString "PRIVATE: Parse a string in the format: Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ..." | dict | dict := Dictionary new. (aString findTokens: ';') do: [:pairStr | | pair | pair := pairStr findTokens: '='. pair size > 0 ifTrue: [| key Name already used in this class ->value | key := pair first withBlanksTrimmed asSymbol. value := pair size > 1 ifTrue: [pair second withBlanksTrimmed] ifFalse: [nil]. (dict includesKey: key) ifTrue: [self halt]. dict at: key put: value] ifFalse: ["self log: 'Cookie invalid pair format: ''' , pairStr , ''''" ]]. ^dict Philippe 2006/7/10, Alan Lovejoy <[hidden email]>: > Phillippe, > > There was an error in the install script. I've fixed it. Download the sar > file and try it again. > > --Alan > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]] On Behalf Of Philippe > Marschall > Sent: Monday, July 10, 2006 12:30 AM > To: The general-purpose Squeak developers list > Subject: Re: can not install Chronos > > 2006/7/10, Alan Lovejoy <[hidden email]>: > > Version B1.173 of Chronos has been published. > > > > This version fixes a bug in ChronosParser reported by John Rubier. It > > also renames the Passport class HttpRequest to PPHttpRequest, and > > renames the Passport class HttpResponse to PPHttpResponse (to avoid a > > class name conflict with Seaside.) The latter changes only affect > > Squeak, since both HttpRequest and HttpRespose existed only in the Squeak > version of Passport. > > Cool thanks. However I still can't load it, I get a > > TimeZonePolicyFactory class doesNotUnderstand: #basicInitializeAll > > This happens in the #initialize method of TimeZonePolicyFactory class. > > > The new version is available either from SqueakSource > > (http://map.squeak.org/account/package/46b5731f-5112-4157-94d3-d40c4ed > > 8304d) or from the Chronos web site (http://www.chronos-st.org). Note > > that the version available from SqueakSource is now distributed as a > > SAR file. > > You're talking about SqueakMap. SqueakSource is something different. > > (I get a EOCD error when directly loading from SqueakMap, so I have to > download and install by hand, but this is standard procedure for SqueakMap > for me these days anyway) > > Philippe > > > > |
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. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Monday, July 10, 2006 1:40 AM To: The general-purpose Squeak developers list Subject: Re: can not install Chronos Well, now I get a Syntax Error again: PPHttpRequest KomHttpServer-Protocol parseCookies: parseCookies: aString "PRIVATE: Parse a string in the format: Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ..." | dict | dict := Dictionary new. (aString findTokens: ';') do: [:pairStr | | pair | pair := pairStr findTokens: '='. pair size > 0 ifTrue: [| key Name already used in this class ->value | key := pair first withBlanksTrimmed asSymbol. value := pair size > 1 ifTrue: [pair second withBlanksTrimmed] ifFalse: [nil]. (dict includesKey: key) ifTrue: [self halt]. dict at: key put: value] ifFalse: ["self log: 'Cookie invalid pair format: ''' , pairStr , ''''" ]]. ^dict Philippe 2006/7/10, Alan Lovejoy <[hidden email]>: > Phillippe, > > There was an error in the install script. I've fixed it. Download > the sar file and try it again. > > --Alan > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]] On Behalf Of > Philippe Marschall > Sent: Monday, July 10, 2006 12:30 AM > To: The general-purpose Squeak developers list > Subject: Re: can not install Chronos > > 2006/7/10, Alan Lovejoy <[hidden email]>: > > Version B1.173 of Chronos has been published. > > > > This version fixes a bug in ChronosParser reported by John Rubier. > > It also renames the Passport class HttpRequest to PPHttpRequest, and > > renames the Passport class HttpResponse to PPHttpResponse (to avoid > > a class name conflict with Seaside.) The latter changes only affect > > Squeak, since both HttpRequest and HttpRespose existed only in the > > Squeak > version of Passport. > > Cool thanks. However I still can't load it, I get a > > TimeZonePolicyFactory class doesNotUnderstand: #basicInitializeAll > > This happens in the #initialize method of TimeZonePolicyFactory class. > > > The new version is available either from SqueakSource > > (http://map.squeak.org/account/package/46b5731f-5112-4157-94d3-d40c4 > > ed > > 8304d) or from the Chronos web site (http://www.chronos-st.org). > > Note that the version available from SqueakSource is now distributed > > as a SAR file. > > You're talking about SqueakMap. SqueakSource is something different. > > (I get a EOCD error when directly loading from SqueakMap, so I have to > download and install by hand, but this is standard procedure for > SqueakMap for me these days anyway) > > Philippe > > > > |
In reply to this post by Philippe Marschall
2006/7/10, Alan Lovejoy <[hidden email]>:
> 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 |
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: [hidden email] [mailto:[hidden email]] 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 <[hidden email]>: > 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 |
In reply to this post by Philippe Marschall
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 <[hidden email]>: > 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: [hidden email] > [mailto:[hidden email]] 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 <[hidden email]>: > > 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 > > > > |
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: [hidden email] [mailto:[hidden email]] 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 <[hidden email]>: > 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: [hidden email] > [mailto:[hidden email]] 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 <[hidden email]>: > > 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 > > > > |
In reply to this post by Philippe Marschall
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 <[hidden email]>: > 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: [hidden email] > [mailto:[hidden email]] 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 <[hidden email]>: > > 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: [hidden email] > > [mailto:[hidden email]] 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 <[hidden email]>: > > > 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 > > > > > > > > > > > > |
Phillipe,
The overrides of <HTTPSocket class >> #httpProxyServer> and <HTTPSocket class >> #httpProxyPort> are a) uninitentional, and b) bytecode-identical to the originals in any case. I will remove both of those overrides in the next Chronos release. 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.) Theoretically, that means they could only break other packages/apps in cases where those other packages/apps add methods with the same selectors to the same class hierarchy. Is that why you refer to them as "overrides"? (If so, the more precise term would be "conflicts.") Both <SocketStream >> #skip:> and <SocketStream >> #peek> are necessary to the functionality of Passport. However, Chronos only needs that functionality in the case where the Chronos Time Zone Repository is accessed remotely over HTTP--which is not the default set-up. Perhaps Passport would work just as well with the conflicting versions of <SocketStream >> #skip:> and <SocketStream >> #peek>? I can test that hypothesis, if you will tell me where to find the conflicting versions of those methods. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] 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 <[hidden email]>: > 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: [hidden email] > [mailto:[hidden email]] 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 <[hidden email]>: > > 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 > > Hopefully, there won't be any more such issues. > > > > --Alan > > > > -----Original Message----- > > From: [hidden email] > > [mailto:[hidden email]] 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 <[hidden email]>: > > > 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 > > > > > > > > > > > > |
In reply to this post by Philippe Marschall
As it turns out, the problems only occur in 3.9 and not 3.8.
2006/7/11, Alan Lovejoy <[hidden email]>: > 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: [hidden email] > [mailto:[hidden email]] 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 <[hidden email]>: > > 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: [hidden email] > > [mailto:[hidden email]] 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 <[hidden email]>: > > > 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: [hidden email] > > > [mailto:[hidden email]] 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 <[hidden email]>: > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > |
Phillipe,
Thanks for the info. I'll work on a solution. As for SocketStream>>peek and SocketStream>>skip:, I now notice that the superclass of SocketStream in 3.7 is different than the superclass in 3.8. In 3.7, the superclass is simply Stream, and so neither #peek nor #skip: are overrides. However, in 3.8, SocketStream is a sublcass of PositionableStream, and so SocketStream>>peek and SocketStream>>skip: are both overrides. Passport just needs to be able to use a "SocketStream-like" class that responds to #peek and #skip: with the canonical semantics of those messages when sent to a Stream. I generally use 3.7 for Chronos development work, because I have had backward compatibility problems with the format of file-outs produced from 3.8. My goal is for "the same" Chronos package to work across as wide a range of Squeak versions as possible. However, since 3.9 is not yet officially released, I have yet to research whatever issues may be involved in porting to 3.9. It appears I now need to do that. --Alan -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Philippe Marschall Sent: Tuesday, July 11, 2006 10:54 AM To: The general-purpose Squeak developers list Subject: Re: can not install Chronos As it turns out, the problems only occur in 3.9 and not 3.8. 2006/7/11, Alan Lovejoy <[hidden email]>: > 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: [hidden email] > [mailto:[hidden email]] 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 > > In detail they are: > > HTTPSocket class >> #httpProxyServer > HTTPSocket class >> #httpProxyPort > SocketStream >> #skip: > SocketStream >> #peek > > Philippe > > 2006/7/11, Alan Lovejoy <[hidden email]>: > > 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: [hidden email] > > [mailto:[hidden email]] 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 <[hidden email]>: > > > 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 > > > 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: [hidden email] > > > [mailto:[hidden email]] 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 <[hidden email]>: > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > |
Free forum by Nabble | Edit this page |