Hello
Loading Seaside into Squeak6.0a-17082 .... gives the following error Character(Object)>>doesNotUnderstand: #greaseInteger Details [1] Is there a particular Squeak6.0a version where Seaside loads fine? http://files.squeak.org/6.0alpha/ Any suggestions how a fix to Grease should look like? Regards --Hannes --------------------------------------------------------------------------------------------- Character(Object)>>doesNotUnderstand: #greaseInteger Receiver: Character null Arguments and temporary variables: aMessage: greaseInteger exception: MessageNotUnderstood: Character>>greaseInteger resumeValue: nil Receiver's instance variables: Character null WAUrlEncoder class>>encode:on: Receiver: WAUrlEncoder Arguments and temporary variables: aCharacter: Character null aStream: a WriteStream printer: a GRNumberPrinter Receiver's instance variables: superclass: WATableBasedEncoder methodDict: a MethodDictionary() format: 65538 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAUrlEncoder classPool: nil sharedPools: nil environment: Smalltalk category: #'Seaside-Core-Document' table: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc... WAUrlEncoder class>>initializeTable Receiver: WAUrlEncoder Arguments and temporary variables: stream: a WriteStream characterLimit: 255 index: 0 character: Character null value: nil Receiver's instance variables: superclass: WATableBasedEncoder methodDict: a MethodDictionary() format: 65538 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAUrlEncoder classPool: nil sharedPools: nil environment: Smalltalk category: #'Seaside-Core-Document' table: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc... |
The issue is that
GRPlatform current returns nil. On 4/26/17, H. Hirzel <[hidden email]> wrote: > After replacing > > #greaseInteger > > with > > #asInteger > > I get an error in > > > WAKeyGenerator>>initialize > > initialize > super initialize. > self generator: GRPlatform current newRandom. > self space: > 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' > > > > So there are issues with the Grease compatibility layer. > > Maybe the configuration map loads the wrong version? > > > Suggestions? > > > On 4/26/17, H. Hirzel <[hidden email]> wrote: >> Hello >> >> Loading Seaside into Squeak6.0a-17082 .... gives the following error >> >> Character(Object)>>doesNotUnderstand: #greaseInteger >> >> Details [1] >> >> Is there a particular Squeak6.0a version where Seaside loads fine? >> http://files.squeak.org/6.0alpha/ >> >> Any suggestions how a fix to Grease should look like? >> >> Regards >> --Hannes >> >> --------------------------------------------------------------------------------------------- >> Character(Object)>>doesNotUnderstand: #greaseInteger >> Receiver: Character null >> Arguments and temporary variables: >> aMessage: greaseInteger >> exception: MessageNotUnderstood: >> Character>>greaseInteger >> resumeValue: nil >> Receiver's instance variables: >> Character null >> >> WAUrlEncoder class>>encode:on: >> Receiver: WAUrlEncoder >> Arguments and temporary variables: >> aCharacter: Character null >> aStream: a WriteStream >> printer: a GRNumberPrinter >> Receiver's instance variables: >> superclass: WATableBasedEncoder >> methodDict: a MethodDictionary() >> format: 65538 >> instanceVariables: nil >> organization: ('as yet unclassified') >> >> subclasses: nil >> name: #WAUrlEncoder >> classPool: nil >> sharedPools: nil >> environment: Smalltalk >> category: #'Seaside-Core-Document' >> table: #(nil nil nil nil nil nil nil nil nil nil nil >> nil nil nil >> nil nil nil ni...etc... >> >> WAUrlEncoder class>>initializeTable >> Receiver: WAUrlEncoder >> Arguments and temporary variables: >> stream: a WriteStream >> characterLimit: 255 >> index: 0 >> character: Character null >> value: nil >> Receiver's instance variables: >> superclass: WATableBasedEncoder >> methodDict: a MethodDictionary() >> format: 65538 >> instanceVariables: nil >> organization: ('as yet unclassified') >> >> subclasses: nil >> name: #WAUrlEncoder >> classPool: nil >> sharedPools: nil >> environment: Smalltalk >> category: #'Seaside-Core-Document' >> table: #(nil nil nil nil nil nil nil nil nil nil nil >> nil nil nil >> nil nil nil ni...etc... >> > |
So you are saying 5.1 could load Seaside with Grease loaded first ? If this works, I could load it in the in the works FunSqueakRos5dot1 and then fix the references to BlockContext an MethodContext , put the relevant .mcz into Ladrillos repository we at using in squeak source with Hannes. And we could have a Squeak loadable Seaside in 6.0.
|
> On 27.04.2017, at 00:23, Edgar De Cleene <[hidden email]> wrote: > > So you are saying 5.1 could load Seaside with Grease loaded first ? Should work out of the box (grease would be loaded nevertheless with Seaside) > If this works, I could load it in the in the works FunSqueakRos5dot1 and then fix the references to BlockContext an MethodContext , put the relevant .mcz into Ladrillos repository we at using in squeak source with Hannes. > > And we could have a Squeak loadable Seaside in 6.0. Sorry, I don't understand what process you are proposing… Best regards -Tobias > > >> On Apr 26, 2017, at 18:26, Tobias Pape <[hidden email]> wrote: >> >> Hi >>> On 26.04.2017, at 22:31, Dale Henrichs <[hidden email]> wrote: >>> >>> >>> On 04/26/2017 11:08 AM, Tobias Pape wrote: >>>> Hi, >>>> (cc squeak-dev) >>>> >>>>> On 26.04.2017, at 19:52, Esteban A. Maringolo <[hidden email]> wrote: >>>>> >>>>> You should have a GRSqueakPlatform as subclass, and then evaluate >>>>> "GRSqueakPlatform select", this will create and assign the new >>>>> instance as GRPlatform singleton. >>>>> >>>> Sadly, in his image won't be a GRSqueakPlatform. >>>> Why? because (SystemVersion current version asString) returns 'Squeak6.0alpha', but >>>> MetacelloSqueakPlatform>>defaultPlatformAttributes does not know about that. >>>> And ConfigurationOfGrease>>baseline117: only has an idea of #'squeak4.x' and #'squeak5.x'. >>>> >>>> I've no good idea how to fix that yet. >>> submit a pull request for the Metacello project on github[1] and update the method MetacelloSqueakPlatform>>defaultPlatformAttributes[2] with your new Squeak versions added to the list ... >>> >>> If you want to avoid having to update Metacello for each new Squeak release, add something along the lines of what pharo has been doing for a few years[3] ... then you only need to remember to update that method ... but at least it will be part of the base image ... >>> >>> For GemStone I've included code to generate the default attributes for GemStone based on the GemStone version number ... >>> >> >> Hey Dale, those are good ideas and I've thought about that, too. >> However, that does not help on its own. because even if this brought us, eg, #'squeak6.x' or #'squeak6alpha', Grease would pick none of them. >> >> So, this could work: >> 1. have an extraction like gemstone below, but >> 2. ALSO identify as #'squeakTrunk' if version string ends in 'alpha', and >> 3. Change grease baseline 117 (or push number here?) the specific line from #'squeak5.x' to >> a. either #( 'squeak5.x' 'squeak6.x') >> b. or #( 'squeak5.x' 'squeakTrunk') >> c. or have #'squeak6.x' separate. >> >> @squeak-dev: hoping you are ok with (1), are you ok with (2)? >> @seaside-dev: would you rather like (3a), (3b), or (3c)? >> >> Best regards >> -Tobias >> >> >> >>> Dale >>> >>> [1] https://github.com/dalehenrich/metacello-work >>> [2] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-Platform.squeak.package/MetacelloSqueakPlatform.class/instance/defaultPlatformAttributes.st#L11-L19 >>> [3] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-PharoCommonPlatform.package/MetacelloPharoCommonPlatform.class/instance/defaultPlatformAttributes.st#L4-L5 >>> [4] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-Platform.gemstone.package/MetacelloGemStonePlatform.class/instance/extractAtrributesFrom..st >>>> >>>> Any takers? >>>> >>>> best regards >>>> -Tobias >>>> >>>> >>>>> Regards. >>>>> Esteban A. Maringolo >>>>> >>>>> >>>>> 2017-04-26 14:27 GMT-03:00 H. Hirzel <[hidden email]>: >>>>>> The issue is that >>>>>> >>>>>> GRPlatform current >>>>>> >>>>>> >>>>>> returns nil. >>>>>> >>>>>> On 4/26/17, H. Hirzel <[hidden email]> wrote: >>>>>>> After replacing >>>>>>> >>>>>>> #greaseInteger >>>>>>> >>>>>>> with >>>>>>> >>>>>>> #asInteger >>>>>>> >>>>>>> I get an error in >>>>>>> >>>>>>> >>>>>>> WAKeyGenerator>>initialize >>>>>>> >>>>>>> initialize >>>>>>> super initialize. >>>>>>> self generator: GRPlatform current newRandom. >>>>>>> self space: >>>>>>> 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' >>>>>>> >>>>>>> >>>>>>> >>>>>>> So there are issues with the Grease compatibility layer. >>>>>>> >>>>>>> Maybe the configuration map loads the wrong version? >>>>>>> >>>>>>> >>>>>>> Suggestions? >>>>>>> >>>>>>> >>>>>>> On 4/26/17, H. Hirzel <[hidden email]> wrote: >>>>>>>> Hello >>>>>>>> >>>>>>>> Loading Seaside into Squeak6.0a-17082 .... gives the following error >>>>>>>> >>>>>>>> Character(Object)>>doesNotUnderstand: #greaseInteger >>>>>>>> >>>>>>>> Details [1] >>>>>>>> >>>>>>>> Is there a particular Squeak6.0a version where Seaside loads fine? >>>>>>>> http://files.squeak.org/6.0alpha/ >>>>>>>> >>>>>>>> Any suggestions how a fix to Grease should look like? >>>>>>>> >>>>>>>> Regards >>>>>>>> --Hannes >>>>>>>> >>>>>>>> --------------------------------------------------------------------------------------------- >>>>>>>> Character(Object)>>doesNotUnderstand: #greaseInteger >>>>>>>> Receiver: Character null >>>>>>>> Arguments and temporary variables: >>>>>>>> aMessage: greaseInteger >>>>>>>> exception: MessageNotUnderstood: >>>>>>>> Character>>greaseInteger >>>>>>>> resumeValue: nil >>>>>>>> Receiver's instance variables: >>>>>>>> Character null >>>>>>>> >>>>>>>> WAUrlEncoder class>>encode:on: >>>>>>>> Receiver: WAUrlEncoder >>>>>>>> Arguments and temporary variables: >>>>>>>> aCharacter: Character null >>>>>>>> aStream: a WriteStream >>>>>>>> printer: a GRNumberPrinter >>>>>>>> Receiver's instance variables: >>>>>>>> superclass: WATableBasedEncoder >>>>>>>> methodDict: a MethodDictionary() >>>>>>>> format: 65538 >>>>>>>> instanceVariables: nil >>>>>>>> organization: ('as yet unclassified') >>>>>>>> >>>>>>>> subclasses: nil >>>>>>>> name: #WAUrlEncoder >>>>>>>> classPool: nil >>>>>>>> sharedPools: nil >>>>>>>> environment: Smalltalk >>>>>>>> category: #'Seaside-Core-Document' >>>>>>>> table: #(nil nil nil nil nil nil nil nil nil nil nil >>>>>>>> nil nil nil >>>>>>>> nil nil nil ni...etc... >>>>>>>> >>>>>>>> WAUrlEncoder class>>initializeTable >>>>>>>> Receiver: WAUrlEncoder >>>>>>>> Arguments and temporary variables: >>>>>>>> stream: a WriteStream >>>>>>>> characterLimit: 255 >>>>>>>> index: 0 >>>>>>>> character: Character null >>>>>>>> value: nil >>>>>>>> Receiver's instance variables: >>>>>>>> superclass: WATableBasedEncoder >>>>>>>> methodDict: a MethodDictionary() >>>>>>>> format: 65538 >>>>>>>> instanceVariables: nil >>>>>>>> organization: ('as yet unclassified') >>>>>>>> >>>>>>>> subclasses: nil >>>>>>>> name: #WAUrlEncoder >>>>>>>> classPool: nil >>>>>>>> sharedPools: nil >>>>>>>> environment: Smalltalk >>>>>>>> category: #'Seaside-Core-Document' >>>>>>>> table: #(nil nil nil nil nil nil nil nil nil nil nil >>>>>>>> nil nil nil >>>>>>>> nil nil nil ni...etc... >>>>>>>> >>>>>> _______________________________________________ >>>>>> seaside mailing list >>>>>> [hidden email] >>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>>>> _______________________________________________ >>>>> seaside mailing list >>>>> [hidden email] >>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>>> _______________________________________________ >>>> seaside mailing list >>>> [hidden email] >>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>> >>> _______________________________________________ >>> seaside mailing list >>> [hidden email] >>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > |
Hello Tobias
Your hint [1] and the remarks by Esteban and Dale allowed me to load Seaside into a Squeak6.0alpha-17082 image (points a and b below) and the most recent Squeak6.0alpha-17227 (point c below) with some workarounds. a) I had to patch [2] MetacelloSqueakPlatform>>defaultPlatformAttributes in a way so that it gives the same result as in Squeak 5.1 where everything works fine [3] b) Before opening the Seaside control panel (World menu / open) I had to call the following initialisation code manually. WAServerManager initialize. WAKeyGenerator initialize. WAResponse initialize. With this the initial Seaside screen came up and I could create a component and browse the examples. Maybe there are more objects to initialize, however the tests (see point c) seem to indicate that it is probably sufficient. It seems that some startup / initialisation code does not get registered / called after loading. c) Points a) and b) are for Squeak6.0alpha-17082 and for Squeak 6.0alpha-17227 (= the most recent one). So this point is about what you have to do in addition to make Seaside load in Squeak 6.0alpha-17227. In Squeak6.0alpha-17082 we still have the class BlockContext. In the more recent versions (current is 17227) the classes BlockContext and ContextPart are no longer in the image. Only Context. To load MetaCello you need to add a (temporary) subclass to context Context variableSubclass: #BlockContext instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Methods' And for Seaside to load Context variableSubclass: #ContextPart instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Methods' With this workaround Seaside loads fine and when I run all tests in categories starting with 'Seaside-Tests-' then I get 914 passes out ot 915. [4] Conclusion: ---------------- It seems that there are no changes in Squeak6.0a so far which are show stoppers for Seaside. The current result is fine for me at the moment and I will look into this issue later in the release cycle of Squeak 6.0a. The remarks by Dale will be helpful to do so. Esteban, Dale and Tobias, thank you for your help. Regards --Hannes //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [1] defaultPlatformAttributes On 4/26/17, Tobias Pape <[hidden email]> wrote: [snip] > > Hannes, since I have not much time atm for Seaside, can you try out a bit > yourself? > You should get things loaded at least if you make > `MetacelloSqueakPlatform>>defaultPlatformAttributes` return #'squeak5.0' > > best regards > -Tobias > [2] MetacelloSqueakPlatform>>defaultPlatformAttributes defaultPlatformAttributes "self new defaultPlatformAttributes" | attributes | attributes := OrderedCollection with: #squeakCommon with: #squeak. Smalltalk at: #SystemVersion ifPresent: [:cl | |versionString| versionString := cl current version asString. " Major version " #( 'Squeak3.10' (#'squeak3.10.x' ()) 'Squeak4' (#'squeak4.x' ( 'Squeak4.1' #'squeak4.1.x' 'Squeak4.2' #'squeak4.2.x' 'Squeak4.3' #'squeak4.3.x' 'Squeak4.4' #'squeak4.4.x' 'Squeak4.5' #'squeak4.5.x' 'Squeak4.6' #'squeak4.6.x')) 'Squeak5' (#'squeak5.x' ( 'Squeak5.0' #'squeak5.0.x'))) pairsDo: [:major :allAttributes | (versionString beginsWith: major) ifTrue: [ attributes add: allAttributes first. allAttributes second ifNotEmpty: [:minorVersions | minorVersions pairsDo: [:minor :attribute | (versionString beginsWith: minor) ifTrue: [ attributes add: attribute. ^ attributes]]]]]]. "HACK HJH to load Seaside into Squeak6.0a" attributes add: #'squeak5.x'. ^ attributes //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [3] Seaside runs fine in Squeak 5.1 as show here https://travis-ci.org/SeasideSt/Seaside Seaside loads fine in Squeak 5.1 https://travis-ci.org/SeasideSt/Seaside/jobs/204692009 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [4] The test which fails is WAGenericCodecTest testGenericCodecMacRoman | codec | codec := GRCodec forEncoding: 'mac-roman'. self assert: (codec isKindOf: GRPharoGenericCodec). self assert: codec name = 'mac-roman'. self assert: codec url name = 'utf-8'. self assert: (codec url isKindOf: GRPharoUtf8Codec). self assert: (codec encode: self latin1String) = self macromanString. self assert: (codec url encode: self latin1String) = self utf8String. self assert: (codec decode: self macromanString) = self latin1String. self assert: (codec url decode: self utf8String) = self latin1String |
Free forum by Nabble | Edit this page |