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 racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/3c713776-3dfc-44f9-b148-b44c623a1d36n%40googlegroups.com.