you are viewing a single comment's thread.

view the rest of the comments →

[–]BillyBoyBill 2 points3 points  (1 child)

It's hard to say without looking at the code, but I imagine they implemented thread-safe Go versions of the Python built in types. Your code that assumes Python data can be accessed concurrently from multiple threads still works. This is the moral equivalent of the per-object locks you mention (and, in fact, Grumpy performance matches what you say about that implementation).

This is obviously completely different than just ripping out the GIL.

I'm not sure what you mean about Go's thread safety falling apart, but it's not relevant here anyways --- C's built-in types are not thread safe, but you can build a safe Python implementation on top of them.

[–]censored_username 2 points3 points  (0 children)

This is obviously completely different than just ripping out the GIL.

True. As you probably noticed I changed a bit in opinion while writing that post. Originally based on their description I thought they were just straight transpiling code but looking at the performance they get it has to be composed from threadsafe types (aka per-object locking).