Mark Shannon

Results 183 comments of Mark Shannon

> This was only caught by the GC changes, not by the debugger that I was working on. OOI, do you know why this was?

It doesn't matter what is "annoying". It needs to be correct. `Py_DECREF` doesn't escape, it is `Py_Dealloc` that escapes. So the `ESCAPING_CALL` can be embedded in a interpreter-only version of...

Something like: ```C #define INTERPRETER_DECREF(op) \ if (--op->ob_refcnt == 0) { \ ESCAPING_CALL(Py_Dealloc(op)); \ } ``` (plus debug and free-threading variants)

I don't like this change. Having to add magical `[1]` suffices for reasons that aren't at all clear without knowing the internals of the nogil GC is going to be...

>> We don't want a pointer to a specific stack location. > Why do you say that? We want a pointer to the location of where value (the result) is...

> A new annotation, either write_to_stack val0 or &val0 or flush val0. There two problems with explicitly flushing values: * It isn't clear *why* the value needs to be flushed....

One possibility to keep things moving for the free-threading build is to generate a different `generated_cases.h` for the free-threading interpreter. For that case, you could write *all* values to the...

This is not just aesthetics. Maintainability is important. By degrading maintainability, you are making more work for others. Particularly for my team. You say that "writing all values to the...

In general, stackrefs *must* be spilled to the in-memory stack around any escaping call. To do this automatically, we need to: 1. Identify all escaping calls 2. Track assignments to...

In case that sounds too expensive, don't worry. It shouldn't be. Spilling the stack pointer is cheap as registers often need to be spilled across calls anyway. We need to...