[plt-scheme] Compiler error: "not currently transforming module provides"

From: Dave Gurnell (d.j.gurnell at gmail.com)
Date: Thu May 13 03:49:57 EDT 2010

Hi all,

Sometimes, when compiling an application, I'll get the following error message form mzc:

syntax-local-module-required-identifiers: not currently transforming module provides

 === context ===
/usr/local/plt-4.2.1.5/collects/scheme/private/reqprov.ss:687:27
/usr/local/plt-4.2.1.5/collects/scheme/private/reqprov.ss:677:12
/usr/local/plt-4.2.1.5/collects/scheme/private/reqprov.ss:671:5
/usr/local/plt-4.2.1.5/collects/scheme/provide-transform.ss:51:2: expand-export
/usr/local/plt-4.2.1.5/collects/scheme/private/reqprov.ss:604:17: transform-simple
/usr/local/plt-4.2.1.5/collects/scheme/private/reqprov.ss:600:2
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:206:0: compile-zo
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:246:2: do-check
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:265:16
/usr/local/plt-4.2.1.5/collects/scheme/private/map.ss:110:21: loop
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:246:2: do-check
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:265:16
/usr/local/plt-4.2.1.5/collects/scheme/private/map.ss:110:21: loop
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:246:2: do-check
/usr/local/plt-4.2.1.5/collects/compiler/cm.ss:265:16
/usr/local/plt-4.2.1.5/collects/scheme/private/map.ss:110:21: loop
...

This has been bugging me for quite a while - I have so far struggled to get a small (or even medium sized) reproducible test case. At the moment I'm curious whether anyone else has seen this, whether it is a known or fixed issue, and/or whether I'm doing something dumb.

Here are the symptoms I've managed to pull together so far:

- It happens when compiling files that have a (provide ...) statement with multiple arguments,
   where some of those arguments are (all-from-out ...) forms. For example:

(provide (all-from-out "a.ss" "b.ss"))

or

(provide (all-from-out "a.ss") (all-from-out "b.ss"))

- Separating the all-from-out forms into separate provide forms fixes the problem:

(provide (all-from-out "a.ss"))
(provide (all-from-out "b.ss"))

- The problem is not always reproducible - sometimes the application compiles all the way through without problems.

- Once the problem has happened once, repeated invocations of "mzc main.ss" typically do not clear up the problem.

- Before I worked out the thing about the provide statements, I tried working around the problem 
   by haphazardly running mzc on different modules in the application. This occasionally worked, but often failed.

- The problem occurs on mzc 4.2.1.5 and 4.2.4.4 - I haven't ventured further forth than that yet.

Best regards,

-- Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100513/cd8cb63d/attachment.html>

Posted on the users mailing list.