[gambit-list] compiling _std.scm fails if make-obj re-defined
Oleg Parashchenko
olpa at uucode.com
Wed May 25 08:58:29 EDT 2011
Hello,
I can't understand why compiiler fails if "make-obj" function is
re-defined (for example, using "(include-adt "_gvmadt.scm")").
A minimal example to reproduce:
$ export GAMBIT_SOURCE=....my local copy....
$ $GAMBIT_SOURCE/gsc/gsc -:~~lib=/home/olpa/p/scheme/gambit/lib
Gambit v4.6.0
> (define std-scm (string-append (getenv "GAMBIT_SOURCE") "/lib
/_std.scm"))
> (compile-file-to-c std-scm)
"/home/olpa/p/scheme/gambit/lib/_std.c"
> (pp c#make-obj)
(##lambda (val) (+ (* (enter-opnd val #f) 8) 5))
> (define c#make-obj (##lambda (val) (+ (* (c#enter-opnd val #f)
8) 5)))
> (pp c#make-obj)
(lambda (val) (+ (* (c#enter-opnd val #f) 8) 5))
> (compile-file-to-c std-scm)
*** ERROR IN c#schedule-gen-proc, "p/scheme/gambit/gsc/_front.sc
m"@1215.19 -- Wrong number of arguments passed to procedure
(c#make-obj)
1>
An obvious solution is not to re-define the function, but I'm curious:
what happens? Why using an identical function leads to the error?
--
Oleg Parashchenko olpa@ http://uucode.com/
http://uucode.com/blog/ XML, TeX, Python, Mac, Chess
More information about the Gambit-list
mailing list