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 thomas_d...@alumni.brown.edu 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 racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/0e2ce781-1466-4b52-8621-37019eaa59bbn%40googlegroups.com.