Closed seandenigris closed 2 years ago
I did find a problem, alluded to by #224, with WideStrings, which did not rematerialized correctly, and look like this:
Any way to recover the data, @theseion?
As far as I remember (and can glean from the issue), the changes in #224 only concern WideStrings
in class names and globals. Regular instances of WideString
are serialized as collections and there shouldn't be any differences. Unless the problem is related to the integer encoding for 64 bit. Can you construct a simple test case that I can work with?
Can you construct a simple test case that I can work with?
The problem is that the data I was rescuing was materialized on an unknown vm/arch, so I don’t know how to reproduce. Would it be helpful if I could figure out where the WideString was supposed to contain?
Unless the problem is related to the integer encoding for 64 bit.
Could very well be. How can I investigate this possibility? Any way to recover the data in this case?
It would help to know the contents, yes. I also think you made a mistake when changing FLWordjectCluster>>#materializeInstanceWith:
. FLDecoder>>isBigEndian
is not a boolean (although it should be) but an integer. To compare it, you have to compare it to an integer, so you should compare it to EndianDetector isBigEndian asBit
.
This issue has been automatically marked as stale because it has not had recent activity. It will remain open but will probably not come into focus. If you still think this should receive some attention, leave a comment. Thank you for your contributions.
@seandenigris can I close this issue?
Sure
I condensed the insights from this conversation into the Pharo-Enhancements project's Pharo Lepiter DB, which will (hopefully soon) also be exported as GH markdown
I got this additional error in P8:
Any ideas?
Looks to me like loading didn't work as expected. I know this happens under certain circumstances (though I don't know what those are exactly). Your best bet is to fully unload the old version before loading the new one.
Okay thanks. I’ll close for now
I'm putting this here for posterity. I needed to load fuel v. 1.9.4 data in P9.
Here are the steps I followed, which seem to have worked:
SmallFloat64s can only be created by performing arithmetic
2)SmalltalkImage DNU isBigEndian
FLWordjectCluster>>#materializeInstanceWith:
, I changedaDecoder isBigEndian = Smalltalk isBigEndian asBit
toaDecoder isBigEndian = EndianDetector isBigEndian
If anyone is faced with a similar problem, hopefully this helps!