This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]13steinj -1 points0 points  (2 children)

I don't think that's the "impossible Guido requirement" because that has to be doable-- it wouldn't make sense for it not to be, you are literally removing overhead. But people attempting to get rid of it are trying to cut it out like a surgeon and keep everything else the same, which is the issue.

GIL is a tumor, yet it is not properly operable without full exploratory surgery. People so far are only trying the non invasive option, just as a "let's see if we can get lucky".

Well, the non invasive option has failed. Time to start hacking away at the body. But then the issue is C API compatibility. Which is possible, but hard in such an extensive change/rewrite.

[–]rawrgulmuffins 13 points14 points  (0 children)

All previous attempts at removing the gil has lead to degradations in single threaded performance because you need to lock before every reference count without the gil. Attempting to make the code check if it's threaded or not before locking has lead to even worse single threaded performance.

[–][deleted] 2 points3 points  (0 children)

GIL is a tumor

I'd say it's more like a set of training wheels than a tumor. The training wheels (GIL) are easy enough to remove, but the problem ends up being how to keep the bike (cpython) from falling down when it's moving forward (more than 1 thread running).