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.
