On Sun Oct 19, 2025 at 9:56 PM CEST, Diogo via Chicken-users wrote:
>
> I am trying to embed crunch modules in test cases written in chicken like 
> this:
>
>     ; test.scm
>     (import (scheme base) test crunch)
>     (crunch (include "something-in-crunch.scm"))
>     (import something-in-crunch)
>     ; chicken tests ...
>
> But that fails. Here is a minimal example showing the issue:
>
>[...]
>
> The symbol foo is being exported in the module crunch-example, why can't I
> access it in the top level? Am I missing something?

The mapping of exported toplevel names inside crunched code to
qualified names in the outer Scheme environment is a bit tricky
and may be buggy, I'll investigate this. In the meantime you can
move the crunching into the module, as a workaround, which is
also (IMHO) somewhat more in the style as this is intended to be
used:

(module crunch-example (foo)
  (import (scheme base))
  (import (crunch))
  (crunch (define (foo) 123)))

(import (scheme write))
(import crunch-example)
(display (foo))
(newline)

> (error ...) does not do what I'd expect. Consider this example:

As siiky pointed out, the argument must be a string. I will clarify
this in the docs.

> The option -emit-wrappers is not working. The case in `crunch-driver.scm` 
> seems
> to have a weird form, so I changed it as follows:

Indeed, that code is buggy, thanks for reporting this.


cheers,
felix


Reply via email to