I've put together a fix for the inability to share FFI objects between user namespaces... but it has a catch.
Specifically, I moved the define-struct of cpointer into a module by itself, called ffi/unsafe/cvector-def; that way, my tool.rkt file can require this one-line module and attach it to the user's namespace using 'reset-console'. BUT: the cvector.rkt file wants to use "protect-out" to prevent others from using make-cvector explicitly, and I'm not sure how to do this after moving the structure definition into another file. Compilation complains: module: cannot protect imported identifier with re-provide in: make-cvector ... which seems pretty reasonable; there's no way to guarantee that protection when the imported binding could be floating around freely. I started trying to track down the various instances of make-cvector inside the cvector.rkt module, but then decided it would be easier for a proof-of-concept simply to remove the protection. Happily, this solves my problem, but leaves another. Is there some obvious way to recover the protection--after all, I certainly have no need for the user namespaces to call make-cvector--without bloating the startup again? John
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev