ffi string added by alicemaz on Thu Sep 3 20:22:56 2020

alice@bellona:/tmp/ffitest % cat src/ffitest.scm
(module ffitest ()

(import scheme)
(import chicken.base)
(import chicken.type)
(import chicken.string)
(import chicken.format)
(import chicken.foreign)
(import chicken.memory)

(define passback (foreign-lambda* c-string ((c-string s)) #<<EOF
s[0] = 'b';
C_return(s);
EOF
))

(define (main)
  (define s "alice")
  (printf "s:  ~S ~S\n" s (object->pointer s))
  (define s^ (passback s))
  (printf "s^: ~S ~S\n" s^ (object->pointer s^))
  (exit 0))

(main)

)
alice@bellona:/tmp/ffitest % pontiff build && pontiff run
checking dependencies
building ffitest
* preparing modules... done
* checking module graph... done
* determining build order... done
compiling 1/1 modules (dynamic)
* csc done
* cc done
* ld done
compilation finished
ffitest build finished
all builds complete
running ffitest...
s:  "alice" #<pointer 0x5590fd60c780>
s^: "blice" #<pointer 0x7ffdbf88b970>