[plt-scheme] Simple IDE questions: multi-file projects

From: Robby Findler (robby at cs.uchicago.edu)
Date: Mon Sep 8 18:33:42 EDT 2008

The short answer is that modules may have macros and other things that
affect the compilation of those that require them, so cycles are just
disallowed.

You might try using units inside your files (or just refactoring ...)

Robby

On Mon, Sep 8, 2008 at 5:30 PM, Eric Tanter <etanter at dcc.uchile.cl> wrote:
> Thanks all for the extremely fast answers!
> I understood that I need to start using modules instead of files with load.
>
> So I'm trying (still)...
> Problem I'm running into: mutually-recursive modules (A requires B, B
> requires A). I get a cycle error.
> I have found a thread on the mailing list (from 2004 (*)), that suggests
> that it's not feasible "out of the box".
>
> So I am trying to refactor the code to avoid this, but does not seem
> possible.
> While I'm still trying, I can't help wondering: what is wrong with
> mutually-recursive modules?
>
> Note that I understand the technical reason of why a cycle is bad, because a
> module can have expressions that have to be evaluated, so all definitions
> must be there, etc. -- but all my modules are just define's, the actual code
> is in the examples/tests -- so there is indeed no real problem with the
> dependencies (I guess that's why the solution with files/load was working
> nicely.
>
> Any simple way out of this tunnel?
>
> -- Éric
>
> (*) http://article.gmane.org/gmane.lisp.scheme.plt/6081
>
> PS: BTW this might be a bug:
> a circular dependency of the type:
> A requires B
> B requires (only-in A foo)
> does not result in a cyclic error, but in an out of memory error. (I guess
> one would expect the same circularity error)
>
>
> On Sep 8, 2008, at 13:55 , Danny Yoo wrote:
>
>>> I have a multi-file project, all files open, I debug one of the test file
>>> (examples.scm) that starts by loading other files:
>>>
>>> (load "ds-fp.scm")
>>> (load "test.scm")
>>> (load "macros.scm")
>>
>> Are you using PLT Scheme modules?  It looks like you're using "load",
>> which isn't involving the module system.  See:
>>
>>  http://docs.plt-scheme.org/guide/intro.html#(part._use-module)
>>
>>  http://docs.plt-scheme.org/guide/module-basics.html
>>
>>
>> Good luck to you!
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>

Posted on the users mailing list.