Help needed!
 
I am trying to understand Gambit's C interface and I have this very simple code that crashes and have no clue why. Anyone has any idea? (Gambit 4.0.0)
 
With this function defined in my gambcini :
 
(define (C . rest)
  (let loop ((n (if (null? rest) 1 (car rest))))
    (if (> n 0)
        (begin
          (write n) (newline)
          (compile-file "c")
          (load "c")
          (make-S2)
          (loop (- n 1))))))
 
I run (C 50) maybe a couple times and always end up getting a random crash often the first time
 
File c.scm :

(c-declare
  "struct S2_
   {
    int x;
    int y;
   };
   typedef struct S2_ S2;"
   )

(c-define-type S2 (type "S2"))

(define make-S2
  (c-lambda () S2
    "___result_voidstar = calloc(1, sizeof(S2));"))