[plt-scheme] migrating non-modular mzscheme programs to PLT version 4
From: H David Goering (hdg at cox.net)
Date: Thu Nov 20 10:25:44 EST 2008 |
|
Noel & carl,
Thank you for your advice. I implemented Carl's solution. The
differences between MzScheme v. 372 and #lang scheme/load + (require
mzscheme) were in my case trivial.
David
On Nov 18, 2008, at 11:40 PM, Carl Eastlund wrote:
> The scheme/load language is PLT 4.0, like the scheme and scheme/base
> languages, but it behaves like the top level (i.e. the REPL) rather
> than like a module. I forgot it wouldn't save you the trouble of
> porting to the new language features.
>
> --Carl
>
> On Tue, Nov 18, 2008 at 11:41 PM, H David Goering <hdg at cox.net> wrote:
>> Carl,
>>
>> Which Scheme is scheme/load? It's not MzScheme. The program
>> loaded after
>> adding "(require mzscheme)" and making a few small changes, but it
>> doesn't
>> run.
>>
>> Thanks,
>>
>> David
>>
>> On Nov 16, 2008, at 11:14 AM, Carl Eastlund wrote:
>>
>>> If you put "#lang scheme/load" at the top of your main file, I
>>> believe
>>> it should run properly in the Module language and load the other
>>> files
>>> without changing them.
>>>
>>> --Carl
>>>
>>> On Sun, Nov 16, 2008 at 12:36 AM, H David Goering <hdg at cox.net>
>>> wrote:
>>>>
>>>> Unlike MzScheme of version 3, Module seems to require that the
>>>> top-level
>>>> file of a multi=file program contain a module. Adding '(require
>>>> mzscheme)'
>>>> is not sufficient.
>>>>
>>>> Converting the top-level file to a module is no hardship, but
>>>> 'load' and
>>>> 'load/use-compiled' now seem to require that arguments refer to
>>>> modules
>>>> rather than mere files. If the reference is not a module the error
>>>> message
>>>> "compile: bad syntax; function application is not allowed,
>>>> because no
>>>> #%app
>>>> syntax transformer is bound" is seen. Adding '#lang mzscheme'
>>>> fixes that
>>>> problem but fragments the namespace in a regrettable way.
>>>>
>>>> Will Module accept a multi-file mzscheme program that is not
>>>> modularized?
>>>> Or one that is treated as a single module?
>>>>
>>>> Thanks,
>>>>
>>>> David