[plt-dev] parameterizations rationale
At Sun, 8 Feb 2009 22:56:21 -0500, Dave Herman wrote:
> I noticed this comment in the '99 Revenge of the Son of Lisp Machine
> paper:
>
> "An early version of MrEd supported bundles of parameter values as
> first-class objects, called parameterizations. ... This generalization
> turns out to be nearly useless in practice ... Worse,
> parameterizations defeat the essential purpose of parameters for
> separating global state from thread-specific state."
>
> Of course, parameterizations are back. What was the change in thinking
> that led to bringing them back?
The definition of "parameter" changed to build on thread cells. So, even
if you grab a parameterization and use it in another thread, mutations
in that other thread do not affect the original thread.
Parameterizations turned out to be useful in DrScheme. A REPL
interaction goes back into DrScheme for a while, and then continues
into the user space. Parameterizations let us more easily swap in
different "contexts" as control goes between those worlds.