[gambit-list] calling interpreted scheme code from compiled C code

symbolic expression symbolic.expression at gmail.com
Mon Jan 19 20:43:40 EST 2009


hi!

  I have wrapper.scm (which is compiled code), and test.scm (which is
interpreted)

  i.e. (compile-file-to-c "wrapper"); (link-flat '("wrapper ...) output:
"blah.o1.c"); gcc -shared -fPIC ... blah.o1.c -o blah.o1

  test.scm:
  (load "blah")
  ...

  and I run everything with "gsi test.scm"

  Now, here's the problem. In test.scm, I need to call a glutDisplayFunc,
which requires a _C_ callback. Okay, so I define function with (c-define
(c-disp ...) ... (disp)). (disp) is the scheme funfction that does the real
workd; c-disp is a c wrapper around disp. Since test.scm is interpted, I
have to put it in wrapper.scm -- however, I want to keep disp in test.scm
(rapid prototypinhg, changing it on the fly, etc ...). Question is, how can
I get c-disp (which is in wrapper.scm) to get call (disp), which is in
test.scm?

  if I just do wrapper.scm:

(c-define (c-disp) () void "f" "" (disp))

  and test.scm:
(load "graphics")

;(c-define (c-disp) () void "f" "" (disp))

(define (disp)
  (glClear GL_COLOR_BUFFER_BIT)
  (glutWireTeapot 0.5))

and run gsi test.scm, I get:

$gsi test.scm
*** WARNING -- Variable "format" used in module "wrapper-s" is undefined

so the question is ... how can i get compile scheme code to 'wait' in order
to call interpted scheme code?

thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20090119/a1ddda94/attachment.htm>


More information about the Gambit-list mailing list