Sorry for the double-post, one more question.

The output of `raco ctool --c-mods` has the form:

#ifdef MZ_XFORM
> XFORM_START_SKIP;
> #endif
> static void declare_modules(Scheme_Env *env) {
>   static unsigned char data[] = { /* bytes go here */ };
>   scheme_register_embedded_load(NUM_BYTES, (const char *)data);
>   scheme_embedded_load(NUM_BYTES, (const char *)data, 1);
> }
> #ifdef MZ_XFORM
> XFORM_END_SKIP;
> #endif
>

As I understand it, this means there's no reason to pass it through `raco 
ctool --xform`, which presumably means we don't need need to register `env` 
or `data`, but we are seeing `scheme_embedded_load` in the stack trace of 
some Racket routines that triggered a watchpoint on memory that it 
shouldn't be touching, so I just wanted to double check that's indicative 
of a problem upstream.

On Friday, November 1, 2019 at 1:34:50 PM UTC-4, Thomas Dickerson wrote:
>
> The documentation says:
> "The 3m collector needs to know the address of every local or temporary 
> pointer within a function call at any point when a collection can be 
> triggered."
>
> A couple questions:
> - Is this "every pointer which might be passed to a Racket function, or 
> contain the result of a Racket function"? Or is it truly *every pointer*?
> - Do I need to register the data pointer passed to 
> `scheme_main_stack_setup`, even though this is above the GC's stack base?
> - In an instance method, does `this` need to be registered? What about 
> reference types?
>

-- 
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/91dbac56-97da-4446-ab49-d061dc36f8f6%40googlegroups.com.

Reply via email to