Fri 19 May 2023

PEP 684 – A Per-Interpreter GIL

Since Python 1.5 (1997), CPython users can run multiple interpreters in the same process. However, interpreters in the same process have always shared a significant amount of global state. This is a source of bugs, with a growing impact as more and more people use the feature. Furthermore, sufficient isolation would facilitate true multi-core parallelism, where interpreters no longer share the GIL. The changes outlined in this proposal will result in that level of interpreter isolation.

Source: PEP 684 – A Per-Interpreter GIL, an article by Eric Snow.

Nuances of Overloading and Overriding in Java

I’ve been programming in Java for over half a decade, and thought I had mastered all aspects of overloading and overriding. It was only once I started thinking of and writing up the following edge cases, that I realized I didn’t know it nearly as well as I thought.

In an effort to gamify these nuances, I’ve listed them below as a series of puzzles. Kudos if you get them all without peeking at the answers.

Source: Nuances of Overloading and Overriding in Java, an article by Rajiv Prabhakar.