Hi all,
I was just trying to file out a complex Object graph via #saveOnFile and found two problems with the SmartRefStream:
First, uniclass instances cannot be written to the stream. In SmartRefStream >> #instVarInfo:, I get an #errorKeyNotFound because the uniclass name is looked up into the SmalltalkImage globals. Minimum example to reproduce:
Object newSubclass new saveOnFile.
Second, blocks met during the file out process cannot be filed in again. Just try [] saveOnFile to reproduce this. Filein raises newMethodViaNewError. Maybe CompiledBlock should overwrite some streaming method for creating an appropriate disk representation?
Just wanted to report these issues. Maybe someone is more experienced with the SmartRefStream architecture and would like to fix these bugs. :-)
Best, Christoph
Hi Christoph,
On Sep 1, 2020, at 3:14 AM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
Hi all,
I was just trying to file out a complex Object graph via #saveOnFile and found two problems with the SmartRefStream:
First, uniclass instances cannot be written to the stream. In SmartRefStream >> #instVarInfo:, I get an #errorKeyNotFound because the uniclass name is looked up into the SmalltalkImage globals. Minimum example to reproduce:
Object newSubclass new saveOnFile.
Second, blocks met during the file out process cannot be filed in again. Just try [] saveOnFile to reproduce this. Filein raises newMethodViaNewError. Maybe CompiledBlock should overwrite some streaming method for creating an appropriate disk representation?
My guess is that class side code in CompiledMethod should be moved up to CompiledCode, the common superclass of CompiledMethod and CompiledBlock.
Just wanted to report these issues. Maybe someone is more experienced with the SmartRefStream architecture and would like to fix these bugs. :-)
Best, Christoph
Hi Eliot,
generalization would have been my first idea, too, but I did not yet found the relevant piece of code ...
Best,
Christoph
http://www.hpi.de/ ________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Eliot Miranda eliot.miranda@gmail.com Gesendet: Dienstag, 1. September 2020 17:29:11 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Issues with SmartRefStream
Hi Christoph,
On Sep 1, 2020, at 3:14 AM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
Hi all,
I was just trying to file out a complex Object graph via #saveOnFile and found two problems with the SmartRefStream:
First, uniclass instances cannot be written to the stream. In SmartRefStream >> #instVarInfo:, I get an #errorKeyNotFound because the uniclass name is looked up into the SmalltalkImage globals. Minimum example to reproduce:
Object newSubclass new saveOnFile.
Second, blocks met during the file out process cannot be filed in again. Just try [] saveOnFile to reproduce this. Filein raises newMethodViaNewError. Maybe CompiledBlock should overwrite some streaming method for creating an appropriate disk representation?
My guess is that class side code in CompiledMethod should be moved up to CompiledCode, the common superclass of CompiledMethod and CompiledBlock.
http://www.hpi.de/ Just wanted to report these issues. Maybe someone is more experienced with the SmartRefStream architecture and would like to fix these bugs. :-)
Best, Christoph
Hi Christoph, Hi Marcel (cuz you're in the timestamp)
In NativeImageSegment>>rootsIncludingBlock[Method]s are two "anOut class == CompiledMethod" that should probably be anOut isCompiledCode.
On Tue, Sep 1, 2020 at 8:46 AM Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
Hi Eliot,
generalization would have been my first idea, too, but I did not yet found the relevant piece of code ...
Best,
Christoph
http://www.hpi.de/
*Von:* Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Eliot Miranda eliot.miranda@gmail.com *Gesendet:* Dienstag, 1. September 2020 17:29:11 *An:* The general-purpose Squeak developers list *Betreff:* Re: [squeak-dev] Issues with SmartRefStream
Hi Christoph,
On Sep 1, 2020, at 3:14 AM, Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
Hi all,
I was just trying to file out a complex Object graph via #saveOnFile and found two problems with the SmartRefStream:
First, uniclass instances cannot be written to the stream. In SmartRefStream >> #instVarInfo:, I get an #errorKeyNotFound because the uniclass name is looked up into the SmalltalkImage globals. Minimum example to reproduce:
Object newSubclass new saveOnFile.
Second, blocks met during the file out process cannot be filed in again. Just try [] saveOnFile to reproduce this. Filein raises newMethodViaNewError. Maybe CompiledBlock should overwrite some streaming method for creating an appropriate disk representation?
My guess is that class side code in CompiledMethod should be moved up to CompiledCode, the common superclass of CompiledMethod and CompiledBlock.
http://www.hpi.de/ Just wanted to report these issues. Maybe someone is more experienced with the SmartRefStream architecture and would like to fix these bugs. :-)
Best, Christoph
This does not help, unfortunately.
Best,
Christoph
http://www.hpi.de/ ________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Eliot Miranda eliot.miranda@gmail.com Gesendet: Dienstag, 1. September 2020 17:53:06 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Issues with SmartRefStream
Hi Christoph, Hi Marcel (cuz you're in the timestamp)
In NativeImageSegment>>rootsIncludingBlock[Method]s are two "anOut class == CompiledMethod" that should probably be anOut isCompiledCode.
On Tue, Sep 1, 2020 at 8:46 AM Thiede, Christoph <Christoph.Thiede@student.hpi.uni-potsdam.demailto:Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
Hi Eliot,
generalization would have been my first idea, too, but I did not yet found the relevant piece of code ...
Best,
Christoph
http://www.hpi.de/ ________________________________ Von: Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.orgmailto:squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda@gmail.commailto:eliot.miranda@gmail.com> Gesendet: Dienstag, 1. September 2020 17:29:11 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Issues with SmartRefStream
Hi Christoph,
On Sep 1, 2020, at 3:14 AM, Thiede, Christoph <Christoph.Thiede@student.hpi.uni-potsdam.demailto:Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
Hi all,
I was just trying to file out a complex Object graph via #saveOnFile and found two problems with the SmartRefStream:
First, uniclass instances cannot be written to the stream. In SmartRefStream >> #instVarInfo:, I get an #errorKeyNotFound because the uniclass name is looked up into the SmalltalkImage globals. Minimum example to reproduce:
Object newSubclass new saveOnFile.
Second, blocks met during the file out process cannot be filed in again. Just try [] saveOnFile to reproduce this. Filein raises newMethodViaNewError. Maybe CompiledBlock should overwrite some streaming method for creating an appropriate disk representation?
My guess is that class side code in CompiledMethod should be moved up to CompiledCode, the common superclass of CompiledMethod and CompiledBlock.
http://www.hpi.de/ Just wanted to report these issues. Maybe someone is more experienced with the SmartRefStream architecture and would like to fix these bugs. :-)
Best, Christoph
-- _,,,^..^,,,_ best, Eliot
squeak-dev@lists.squeakfoundation.org