I have some fairly simple code setting up an embedded Racket BC instance in a C++ coroutine, allowing me to call `scheme_dynamic_require` a module using a custom #lang (supported by an embedded module) and extract a cpointer matching a certain type tag from the exported symbols.
It *looks* like it should be possible to port this over to even simpler Racket CS code since Racket CS handles suspending itself between calls instead of assuming a main-loop program structure; however I have a few questions here: - What are the preconditions and error-handling setup for calling `racket_dynamic_require` and/or other `racket_*` functions? - How does one obtain a path from a C string to pass to `racket_dynamic_require`? (i.e. what's the equivalent idiom to `scheme_make_path`? - There don't appear to be documented equivalents to SCHEME_CPTRP and SCHEME_CPTR_TYPE. What does `racket_cpointer_address` do if the argument is not a cpointer, and is there some way to check the type tag without triggering garbage collection? - One of the hassles with Racket BC is that the garbage collection algorithm intetionally triggers segfaults and uses a signal handler to resolve them, marking it hard to use GDB on the larger embedded application. Does Racket CS have the same behavior, or is this not a problem anymore? Thanks! -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/3c713776-3dfc-44f9-b148-b44c623a1d36n%40googlegroups.com.

