Gently bumping this thread in the hopes it might get some new eyes. On Friday, November 5, 2021 at 11:58:07 AM UTC-4 [email protected] wrote:
> 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/0e2ce781-1466-4b52-8621-37019eaa59bbn%40googlegroups.com.

