[plt-scheme] using serialize for language settings

From: Dave Herman (dherman at ccs.neu.edu)
Date: Sun Feb 26 00:18:31 EST 2006


I've written a library that uses serialize.ss to encode language level 
settings as a serializable struct. Unfortunately, the marshalled data 
seems to keep track of the location of struct type's module exactly as 
that module happend to be originally required.

So, for example, if the module that defines the settings structure is 
called my-lang-settings.ss, and the language level module happens to 
require it with a local require-spec, e.g.:

     (require "my-lang-settings.ss")

then the serialized data gets stored as a local file path. The next time 
DrScheme starts up, it reads in the preferences file and tries to load 
the same module, but relative to the current directory that DrScheme was 
started in! Chances are, now it can't find the module.

Is there a way to force the serialization to use something like an 
absolute path in its representation of the data? Or do I (shudder) need 
to munge the serialized data?

Or do I need to require all users of this language level serialization 
library I've written to make sure that whenever they require a module 
that uses my library the serializable data structure, they do so with an 
non-relative require-spec? That can't be the best solution, can it?


Posted on the users mailing list.