I think V4 is a good step forward and I certainly welcome it. I'm not that
worried about converting my code over to it. What I am worried about is
that there doesn't seem to be a practical way, that I've seen, to maintain a
single PLaneT package that is compliant with both V4 and V3. I certainly
don't see how I can make use many of the new V4 features in a PLaneT package
and retain that compatibility.
Doug
On Fri, Feb 1, 2008 at 3:53 AM, Dave Gurnell <d.j.gurnell at gmail.com> wrote:
> > What other constructs might bite us?
>> Hi Doug,
>> There are a lot of great improvements in PLT4, and on the whole the
> transition process is not too bad. However, there are a couple of
> areas in which I've had problems:
>> I've been having lots of problems with keyword arguments. There is a
> fundamental difference in the way they work in the mzscheme and scheme/
> base languages, and there are issues that still need ironing out:
>> - the semantics of keyword arguments have changed: you can no
> longer pass arbitrary keywords to a procedure and ignore those you are
> not expecting (on the other hand, unrecognised keywords are found at
> compile time);
>> - AFAIK, modules in the mzscheme language cannot call keyword
> procedures in modules written in scheme/base;
>> - also AFAIK, modules in scheme/base cannot call keyword procedures
> in mzscheme modules;
>> - the new style contracts from scheme/contract work fine with old
> style lambdas and opt-lambdas, but they do not work with lambda/kws;
>> - class.ss currently does not work correctly with either keyword
> system (I've filed a bug report about this one too).
>> There are also some differences between the structure subforms in
> provide and provide/contract. If you provide a structure using provide/
> contract, you cannot re-provide it using provide and struct-out. For
> example:
>> (module a scheme/base
> (require scheme/contract)
> (define-struct person (name) #:transparent)
> (provide/contract (struct person ([name string?]))))
>> (module b scheme/base
> (require (file "a.ss"))
> (provide (struct-out person)))
>> That's all I can think of for now.
>> Cheers,
>> -- Dave
>> _________________________________________________
> For list-related administrative tasks:
>http://list.cs.brown.edu/mailman/listinfo/plt-scheme>-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20080201/40f2f327/attachment.html>