[plt-scheme] R5RS is totally useless for PLT, and I presume that R6RS is, also.
In case you missed it, Matthew Flatt wrote a blog post about his
experience converting out (approx) 500,000 lines of Scheme code from
using mutable pairs to immutable pairs. (It was easy.) I don't know if
your code follows ours, but if it doesn't, I'm sure we'd all be
interested to get a boiled down version of the problem so we can learn
more about it.
http://blog.plt-scheme.org/2007/11/getting-rid-of-set-car-and-set-cdr.html
But Eli's solution might be the right thing in the short term -- if
you have a clearly marked boundary where pairs are mutated, then it is
pretty easy to just put some copying layers around it -- this at least
lets you get started so that you can figure out where you stand and if
eliminating the mutation is worth the effort.
In the meantime, you might consider directing some of your anger at
your ISP for changing your deployment environment without adequate
warning. (Altho if you pay attention around here, you were well
warned.)
Robby
On Wed, Nov 19, 2008 at 7:40 AM, /// <84jkdl202 at sneakemail.com> wrote:
> PLT Scheme 4.1 has totally scuttled my project, which was started
> under PLT version 360, in which R5RS programs could interact freely
> with PLT Scheme code, and PLT code could be (and was) written as if
> it was R5RS with a few extensions.
>
> Today, I discovered that my ISP has upgraded to PLT 4.1.2, where they
> have introduced a feature (among many) they claimed wouldn't affect
> "most code:" Immutable lists. The HTML-parsing library my program uses
> is heavily infused with set-car! and set-cdr!. All kinds of functions
> are
> dependent on it, and their callers are in turn dependent on the
> mutating
> behavior. In short, to get rid of list mutation, you'd have to rewrite
> the entire library from scratch (PLT's html module sucks, BTW).
>
> PLT Scheme still supports mutable lists, but they're a separate data
> type, which means that I can't pass the lists that come out of the
> HTML-parsing library to any function that uses any PLT Scheme library
> call to work with lists. All the code I wrote to accept the output of
> this
> library is suddenly completely useless.
>
> While trying to come up with a workaround (a KLUDGE), I was delighted
> to discover that PLT Scheme 4.1.2 doesn't support nested (define)
> forms,
> either.
>
> Useless.
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>