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