[racket-dev] Patching a distribution

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Sep 2 15:34:17 EDT 2010

At Thu, 2 Sep 2010 12:24:20 -0400, Eric Dobson wrote:
> I am trying to create a patch for 5.0.1 in the form of a plt file that
> will backport fixes to plai. To do this I also need to backport the
> new define-struct.

For my class, I'm using an implementation of `define-type' that is
different from both the one in 5.0.1 and in 5.0.1.3. It doesn't require
the latest `define-struct'.

See

 http://www.cs.utah.edu/~mflatt/tmp/plai_5.0.1_patched/


Students install the "plai" replacement via the ".plt" on this page:

  http://www.eng.utah.edu/~cs5510/

FWIW, that ".plt" is built with `--replace', but not with
`--all-users'. Each student installs it themselves. The documentation
from the main installation is still used, even though the collection is
replaced in the user-specific area.

> I am getting bugs after installation about bytecode mismatches. I'm
> wondering if I am doing this correctly and if there is a better way of
> doing this?
>
> I put everything in a folder called collects with the correct inner
> structure, and then run the following command to make the plt file.
> 
> raco pack --at-plt --all-users --replace ++setup racket ++setup plai
> plai.plt collects

It's not going to work well to replace
"rackets/private/define-struct.rkt"; the whole Racket bytecode tree
would have to be recompiled. Instead, I think you want the alternate
"datatype.rkt" --- though it's possible that you need even more
repairs in the alternate "datatype.rkt".



Posted on the dev mailing list.