O Python GIL é realmente por intérprete?

Muitas vezes vejo pessoas falando que o GIL é por interpretador Python (mesmo aqui no stackoverflow).

Mas o que eu vejo no código-fonte parece ser que o GIL é uma variável global e, portanto, há um GIL para todos os interpretadores em cada processo python. Eu sei que eles fizeram isso porque não há nenhum objeto interpretador transmitido como lua ou TCL, ele simplesmente não foi bem projetado no começo. E o armazenamento local de threads parece não ser portátil para os caras do Python usarem.

Isso está correto? Eu tive uma breve olhada na versão 2.4 que estou usando em um projeto aqui.

Isso mudou em versões posteriores, especialmente em 3.0?

questionAnswers(3)

yourAnswerToTheQuestion