[gambit-list] Operator is not a PROCEDURE, unbound

Matt Hastie matthastie at gmail.com
Fri Sep 20 18:39:53 EDT 2013


Marc,

I think the situation appears more urgent than you suggest. The change appears to have broken executable compilation.

I was able to reproduce this problem trivially with the suggested code:

;; change-directory.scm
(define (change-directory path)
 (current-directory path))
(change-directory (cadr (command-line)))


bash-3.2$ gsc -:s -exe change-directory.scm ../lib/syntax-case.scm
change-directory.scm:
/Volumes/Data/scratch/scheme/control/home/change-directory.c:
../lib/syntax-case.scm:
/Volumes/Data/scratch/scheme/control/lib/syntax-case.c:
/Volumes/Data/scratch/scheme/control/lib/syntax-case_.c:
bash-3.2$ ./change-directory ..
*** ERROR IN | change-directory| -- Operator is not a PROCEDURE
(#!unbound
 '#(syntax-object change-directory ((top) #(ribcage #(change-directory) #((t...
 '(global . change-directory)
 '*top*)
bash-3.2$ 

I'll go back and study the psyntax code around this defect for a resolution that supports both the command line compilation and gsc repl envrionments.

Sven - my sincere apologies for this fail.

Matt.

On Sep 20, 2013, at 7:28 AM, Marc Feeley <feeley at iro.umontreal.ca> wrote:

> With the latest changes to syntax-case, it is now required to load syntax-case.scm (or use the -:s runtime option) when loading files which were compiled with the -:s option.
> 
> Marc
> 
> On 2013-09-20, at 7:56 AM, Sven Hartrumpf <hartrumpf at gmx.net> wrote:
> 
>> Hi.
>> 
>> I have a large program that runs fine in the interpreter.
>> But when compiled with these options (latest gambit from git)
>> (declare
>> (r5rs-scheme)
>> (constant-fold)
>> (inline)
>> (inlining-limit 500)
>> (standard-bindings)
>> (extended-bindings)
>> (safe)
>> (mostly-generic))
>> the compiled program crashes as follows:
>> 
>> *** ERROR IN | n| -- Operator is not a PROCEDURE
>> (#!unbound '#(syntax-object change-directory ((top) #(ribcage #(change-directory) #((top)) #(change-directory)))) '(global . change-directory) '*top*)
>> 
>> change-directory is from a simple Scheme portability layer:
>> 
>> (define (change-directory path)
>> (current-directory path))
>> 
>> Sven
>> _______________________________________________
>> Gambit-list mailing list
>> Gambit-list at iro.umontreal.ca
>> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
> 
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list




More information about the Gambit-list mailing list