Monticello mcz files write their DataStream and a portion of their chunk-files as WideStrings, which are non-portable.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Monticello mcz files write their DataStream and a portion of their chunk-files as WideStrings, which are non-portable.

Paul DeBruicker
Hi-
I created an issue in the tracker:
https://code.google.com/p/pharo/issues/detail?id=2697

Some packages that were created with and load fine into Pharo 1.1 release do not load into Gemstone because of the use of WideStrings while creating the mcz files.  I don't know how to dissect the mcz files at this time but in describing my issue on the GLASS list, Dale Henrichs was able to reproduce the problem and diagnose it.  His diagnosis is pasted below.

To recreate my issue you must be using Gemstone 2.4.4.1, Glass 1.0-beta8.2, and GemTools for Gemstone 2.4.4.  First load the ConfigurationOfJQueryWidgetBox package from the Metacello Repository on SqueakSource.  Then run:
  
(ConfigurationOfJQueryWidgetBox project latestVersion)
        load: #('JQWidgetBox-FullCalendar-Core').


It will attempt to load the package but complain that a dependency for the JQFullCalendar Class is not met.  The JQFullCalendar class is provided by the JQWidgetBox-FullCalendar-Core package. 

Our entire discussion leading up to his diagnosis is here: http://forum.world.st/aFilePackage-cannot-perform-the-selector-preamble-with-the-arguments-in-anArray-aChangeRecord-td2291748.html#a2294376



Is there a way to write the mcz files using something other than WideStrings that will allow me to attempt to load them into Gemstone and perhaps get a different result?

Thanks

Paul

Paul,

Okay, it looks to me like your mcz file(s) are "corrupted" ... probably 
due to a bug in Pharo 1.2 (that's the version you're using right?).

In an mcz file the snapshot of the definitions are serialized using two 
formats:

   1. a DataStream on an ordered collection of MCDefintions
   2. a chunk-file formatted string.

It appears that for the DataStream, the entire(?) stream is written as a 
WideString ... WideString is Squeak/Pharo dependent and is not portable 
at all ... this is new. When GemStone hits the widestring an error is 
thrown and Monticello tries to use the chunk-file format (which is why 
you ran into the preamble probelm ... chunk file format is normally hit 
(nor is it desirable to hit it)...

The chunk file-file is partially written as a WideString again...because 
  the WideString is not portable it breaks the parsing algorithms for 
GemStone ... interestingly enough the chunk-file string looks to be a 
WideString for the first hundred characters or so ...

One of three things is happening:

   1. someone in Pharo land decided it was a "good idea" to create mcz
      files using WideString
   2. The that you used to create the class had a WideString in it
   3. there is a bug somewhere in the pharo/monticello implementation

I can't guess which of those 3 the problem is and I can't guess what the 
solution might be either.

If you bring up this bug on the Pharo list, I'll monitor the list and if 
I can step in and help, I will.

Dale
  

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Monticello mcz files write their DataStream and a portion of their chunk-files as WideStrings, which are non-portable.

Stéphane Ducasse
Interesting.
Now is the problem happening with other packages than a JS related?

Stef

> Hi-
> I created an issue in the tracker:
> https://code.google.com/p/pharo/issues/detail?id=2697
>
> Some packages that were created with and load fine into Pharo 1.1 release do not load into Gemstone because of the use of WideStrings while creating the mcz files.  I don't know how to dissect the mcz files at this time but in describing my issue on the GLASS list, Dale Henrichs was able to reproduce the problem and diagnose it.  His diagnosis is pasted below.
>
> To recreate my issue you must be using Gemstone 2.4.4.1, Glass 1.0-beta8.2, and GemTools for Gemstone 2.4.4.  First load the ConfigurationOfJQueryWidgetBox package from the Metacello Repository on SqueakSource.  Then run:
>    
> (ConfigurationOfJQueryWidgetBox project latestVersion)
>         load: #('JQWidgetBox-FullCalendar-Core').
>
> It will attempt to load the package but complain that a dependency for the JQFullCalendar Class is not met.  The JQFullCalendar class is provided by the JQWidgetBox-FullCalendar-Core package.  
>
> Our entire discussion leading up to his diagnosis is here: http://forum.world.st/aFilePackage-cannot-perform-the-selector-preamble-with-the-arguments-in-anArray-aChangeRecord-td2291748.html#a2294376
>
>
>
> Is there a way to write the mcz files using something other than WideStrings that will allow me to attempt to load them into Gemstone and perhaps get a different result?
>
> Thanks
>
> Paul
>
>> Paul,
>>
>> Okay, it looks to me like your mcz file(s) are "corrupted" ... probably
>> due to a bug in Pharo 1.2 (that's the version you're using right?).
>>
>> In an mcz file the snapshot of the definitions are serialized using two
>> formats:
>>
>>    1. a DataStream on an ordered collection of MCDefintions
>>    2. a chunk-file formatted string.
>>
>> It appears that for the DataStream, the entire(?) stream is written as a
>> WideString ... WideString is Squeak/Pharo dependent and is not portable
>> at all ... this is new. When GemStone hits the widestring an error is
>> thrown and Monticello tries to use the chunk-file format (which is why
>> you ran into the preamble probelm ... chunk file format is normally hit
>> (nor is it desirable to hit it)...
>>
>> The chunk file-file is partially written as a WideString again...because
>>   the WideString is not portable it breaks the parsing algorithms for
>> GemStone ... interestingly enough the chunk-file string looks to be a
>> WideString for the first hundred characters or so ...
>>
>> One of three things is happening:
>>
>>    1. someone in Pharo land decided it was a "good idea" to create mcz
>>       files using WideString
>>    2. The that you used to create the class had a WideString in it
>>    3. there is a bug somewhere in the pharo/monticello implementation
>>
>> I can't guess which of those 3 the problem is and I can't guess what the
>> solution might be either.
>>
>> If you bring up this bug on the Pharo list, I'll monitor the list and if
>> I can step in and help, I will.
>>
>> Dale
>>  
>>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Monticello mcz files write their DataStream and a portion of their chunk-files as WideStrings, which are non-portable.

Dale Henrichs
In reply to this post by Paul DeBruicker
I've added a little more information to Issue 2697 and I'm willing to
help on the GemStone-side. It looks like a WideString has snuck into the
mcz file ... seems to be similar to the WideStrings showing up in the
changes file issue (Issue 830 ... which appears to resurface
periodicaly:)), but I haven't looked closely at how it could happen,
although if the changes file had a WideString in it then the WideString
could easily migrate into the mcz file...

Dale

Paul DeBruicker wrote:

> Hi-
> I created an issue in the tracker:
> https://code.google.com/p/pharo/issues/detail?id=2697
>
> Some packages that were created with and load fine into Pharo 1.1 release do not load into Gemstone because of the use of WideStrings while creating the mcz files.  I don't know how to dissect the mcz files at this time but in describing my issue on the GLASS list, Dale Henrichs was able to reproduce the problem and diagnose it.  His diagnosis is pasted below.
>
> To recreate my issue you must be using Gemstone 2.4.4.1, Glass 1.0-beta8.2, and GemTools for Gemstone 2.4.4.  First load the ConfigurationOfJQueryWidgetBox package from the Metacello Repository on SqueakSource.  Then run:
>
> (ConfigurationOfJQueryWidgetBox project latestVersion)
>         load: #('JQWidgetBox-FullCalendar-Core').
>
> It will attempt to load the package but complain that a dependency for the JQFullCalendar Class is not met.  The JQFullCalendar class is provided by the JQWidgetBox-FullCalendar-Core package.
>
> Our entire discussion leading up to his diagnosis is here: http://forum.world.st/aFilePackage-cannot-perform-the-selector-preamble-with-the-arguments-in-anArray-aChangeRecord-td2291748.html#a2294376
>
>
>
> Is there a way to write the mcz files using something other than WideStrings that will allow me to attempt to load them into Gemstone and perhaps get a different result?
>
> Thanks
>
> Paul
>
>
> Paul,
>
> Okay, it looks to me like your mcz file(s) are "corrupted" ... probably
> due to a bug in Pharo 1.2 (that's the version you're using right?).
>
> In an mcz file the snapshot of the definitions are serialized using two
> formats:
>
>    1. a DataStream on an ordered collection of MCDefintions
>    2. a chunk-file formatted string.
>
> It appears that for the DataStream, the entire(?) stream is written as a
> WideString ... WideString is Squeak/Pharo dependent and is not portable
> at all ... this is new. When GemStone hits the widestring an error is
> thrown and Monticello tries to use the chunk-file format (which is why
> you ran into the preamble probelm ... chunk file format is normally hit
> (nor is it desirable to hit it)...
>
> The chunk file-file is partially written as a WideString again...because
>   the WideString is not portable it breaks the parsing algorithms for
> GemStone ... interestingly enough the chunk-file string looks to be a
> WideString for the first hundred characters or so ...
>
> One of three things is happening:
>
>    1. someone in Pharo land decided it was a "good idea" to create mcz
>       files using WideString
>    2. The that you used to create the class had a WideString in it
>    3. there is a bug somewhere in the pharo/monticello implementation
>
> I can't guess which of those 3 the problem is and I can't guess what the
> solution might be either.
>
> If you bring up this bug on the Pharo list, I'll monitor the list and if
> I can step in and help, I will.
>
> Dale
>
>
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Monticello mcz files write their DataStream and a portion of their chunk-files as WideStrings, which are non-portable.

Paul DeBruicker
In reply to this post by Paul DeBruicker


Interesting.
Now is the problem happening with other packages than a JS related?

Stef

> Hi-

Hi -

Yes. If you attempt to load the latest Money package I uploaded to SqueakSource into Gemstone it fails because it requires the Currency class, which is provide by the Money package.  The Money package doesn't use any JS.  The Money package loads just fine into Pharo.  It behaves in the same way as the JQWidgetBox-FullCalendar-Core package. 


Thanks

Paul


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Monticello mcz files write their DataStream and a portion of their chunk-files as WideStrings, which are non-portable.

Stéphane Ducasse
thanks for the info.
So some people will have to investigate because my plate is more than full.

Stef

On Jul 19, 2010, at 11:43 PM, Paul DeBruicker wrote:

>
>
>> Interesting.
>> Now is the problem happening with other packages than a JS related?
>>
>> Stef
>>
>> >
>>  Hi-
>>
>
> Hi -
>
> Yes. If you attempt to load the latest Money package I uploaded to SqueakSource into Gemstone it fails because it requires the Currency class, which is provide by the Money package.  The Money package doesn't use any JS.  The Money package loads just fine into Pharo.  It behaves in the same way as the JQWidgetBox-FullCalendar-Core package.  
>
>
> Thanks
>
> Paul
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project