[squeak-dev] [ANN] Fuel 1.8.1

Frank Shearar frank.shearar at gmail.com
Thu Feb 14 15:15:14 UTC 2013


On 14 February 2013 10:30, Martin Dias <tinchodias at gmail.com> wrote:
> Hi
> Just looking at the test that is failing (#testSmalltalkGlobals) and
> the error (a DoIt method can't be materialized), it makes me wonder
> why a method is being serialized in this method. There is the problem,
> I guess.
>
> To reproduce what the test is serializing you can inspect:
>
> | anObject aStream |
> anObject := Smalltalk globals.
> aStream := (MultiByteBinaryOrTextStream on: '') binary.
>
> (FLSerializer newDefault
>    serialize: anObject
>    on: aStream)
>    objects.
>
> I get this in Pharo:
>
> an Array(a SystemDictionary(lots of globals) true false nil)

What does `Smalltalk globals` return in Pharo? Does it directly match
what #objects returns?

> What do you get?
>
> Maybe it has to be with the environment? I have no idea of that.

It might. I get an Array with a whole pile of stuff. I _don't_ have a
SystemDirectory with a bunch of stuff; I see symbols, associations,
classes, ...

So it might be that these two tests no longer make sense in Squeak
4.5? `Smalltalk globals` is an Environment in Squeak 4.5. Do things
need custom serialisers/deserialisers?

frank

> Best regards,
> Martin
>
>
> On Wed, Feb 13, 2013 at 10:56 AM, Frank Shearar <frank.shearar at gmail.com> wrote:
>> On 13 February 2013 08:45, Max Leske <maxleske at gmail.com> wrote:
>>> (I'm reposting this without the screen shots because the message was bounced
>>> for being to big…)
>>>
>>>
>>> Frank,
>>>
>>> I took a 4.4 image, pointed it to trunk and updated.
>>> Running the tests (CogVM) I do get the same two failures but with slightly
>>> different entries on the top of the stack. These entries vary depenging on
>>> which other tests are run simultaneously. However, they all seem to have in
>>> common, that they fail during #rehash. The point of failure is probably more
>>> or less random. I attached screen shots of the stack traces.
>>>
>>> Stepping through the debugger, it looks like the problem might acutally
>>> occurr during serialization. If you look at the third screen shot you'll see
>>> that the instance variable "array" of the IdentityDictionary does not
>>> contain any associations and the array you see is actually the value of the
>>> association (see
>>> StandardScriptingSystem>>addCustomEventFor:name:help:targetMorphClass:).
>>>
>>> I'll try to find out more.
>>
>> Thanks for looking into this, Max. If you want to precisely (modulo
>> operating system) reproduce the setup causing the issue you can run
>> "./run-test.sh Fuel" once you've checked out
>> https://github.com/frankshearar/squeak-ci/. You might need to comment
>> out the `WorldState addDeferredUIMessage: [ SmalltalkImage current
>> snapshot: false andQuit: true ].` line.
>>
>> frank
>>
>>> Cheers,
>>> Max
>>>
>>>
>>>
>>>
>>>
>>> On 12.02.2013, at 17:09, Frank Shearar <frank.shearar at gmail.com> wrote:
>>>
>>> On 8 January 2013 07:21, Max Leske <maxleske at gmail.com> wrote:
>>>
>>>
>>> On 07.01.2013, at 12:09, Frank Shearar <frank.shearar at gmail.com> wrote:
>>>
>>> On 7 January 2013 10:42, Max Leske <maxleske at gmail.com> wrote:
>>>
>>> Could somone please update the SqueakMap release with the following:
>>>
>>> Installer ss3
>>>    project: 'Fuel';
>>>    install: 'ConfigurationOfFuel-MarianoMartinezPeck.179'.
>>> (Smalltalk at: #ConfigurationOfFuel) load.
>>>
>>> I tried to do it myself but I get a connection timeout (i did create a
>>> SqueakMap account for that a few minutes ago).
>>>
>>>
>>> Done. The 1.8.1 version now uses the above installation.
>>>
>>>
>>> Thanks Frank.
>>>
>>>
>>> I added a CI job that loads Fuel into a Trunk image and, in a post
>>> Environments-fbs.13 world, we have Fuel almost perfectly working in
>>> 4.5. "Almost" means two test failures:
>>> http://build.squeak.org/job/ExternalPackage-Fuel/6/#showFailuresLink
>>>
>>> Judging by the error message, they're failing for the same reason.
>>>
>>> Any ideas?
>>>
>>> #1:
>>> Error Message
>>>
>>> Materialization error. Method UndefinedObject>>#DoIt not found.
>>> Stacktrace
>>>
>>> [] in FLGlobalCompiledMethodCluster>>materializeInstanceWith:
>>> MethodDictionary>>at:ifAbsent:
>>> UndefinedObject class(Behavior)>>compiledMethodAt:ifAbsent:
>>> FLGlobalCompiledMethodCluster>>materializeInstanceWith:
>>> FLGlobalCompiledMethodCluster(FLIteratingCluster)>>materializeInstancesStepWith:
>>> FLMaterialization>>clusterInstancesStep
>>> [] in FLMaterialization>>instancesStep
>>> SmallInteger(Integer)>>timesRepeat:
>>> FLMaterialization>>instancesStep
>>> FLMaterialization>>run
>>> [] in FLMaterializer>>setDefaultMaterialization
>>> FLMaterializer>>materializeFrom:
>>> [] in FLBasicSerializationTest(FLSerializationTest)>>materialization
>>> FLMultiByteStreamStrategy>>readStreamDo:
>>> FLBasicSerializationTest(FLSerializationTest)>>materialization
>>> FLBasicSerializationTest(FLSerializationTest)>>materialized
>>> FLBasicSerializationTest(FLSerializationTest)>>resultOfSerializeAndMaterialize:
>>> FLBasicSerializationTest(FLSerializationTest)>>assertSerializationIdentityOf:
>>> FLBasicSerializationTest>>testSmalltalkGlobals
>>> FLBasicSerializationTest(TestCase)>>performTest
>>>
>>> #2:
>>> Error Message
>>>
>>> Materialization error. Method UndefinedObject>>#DoIt not found.
>>> Stacktrace
>>>
>>> [] in FLGlobalCompiledMethodCluster>>materializeInstanceWith:
>>> MethodDictionary>>at:ifAbsent:
>>> UndefinedObject class(Behavior)>>compiledMethodAt:ifAbsent:
>>> FLGlobalCompiledMethodCluster>>materializeInstanceWith:
>>> FLGlobalCompiledMethodCluster(FLIteratingCluster)>>materializeInstancesStepWith:
>>> FLMaterialization>>clusterInstancesStep
>>> [] in FLMaterialization>>instancesStep
>>> SmallInteger(Integer)>>timesRepeat:
>>> FLMaterialization>>instancesStep
>>> FLMaterialization>>run
>>> [] in FLMaterializer>>setDefaultMaterialization
>>> FLMaterializer>>materializeFrom:
>>> FLMaterializer class>>materializeFromByteArray:
>>> FLInMemoryBasicSerializationTest>>materialized
>>> FLInMemoryBasicSerializationTest(FLSerializationTest)>>resultOfSerializeAndMaterialize:
>>> FLInMemoryBasicSerializationTest(FLSerializationTest)>>assertSerializationIdentityOf:
>>> FLInMemoryBasicSerializationTest(FLBasicSerializationTest)>>testSmalltalkGlobals
>>> FLInMemoryBasicSerializationTest(TestCase)>>performTest
>>>
>>> frank
>>>
>>>
>>>
>>>
>>>
>>
>


More information about the Squeak-dev mailing list