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.

Reply via email to