Discovercore.pyEpisode 6 - An Exceptional Episode
Episode 6 - An Exceptional Episode

Episode 6 - An Exceptional Episode

Update: 2024-01-08
Share

Description

Happy New Year! In this episode we're talking about exceptions, how they work, and how they evolved. Expect the unexpected.




# Timestamps




(00:00:00 )  INTRO


(00:01:43 )  How does a 'try' block work?


(00:04:00 )  How many 'try' blocks can you fit on a bus?


(00:05:56 )  How does Python store the current exception?


(00:09:30 )  Pre-history: exceptions as strings


(00:12:59 )  Try out string exceptions with CentOS 5


(00:14:28 )  PEP 341: Combining 'finally' and 'except' in one 'try' block


(00:16:15 )  Core Hacker in Residence


(00:16:51 )  PEP 3109: Raising exceptions in Python 3K


(00:19:17 )  Automatic tuple unpacking for raised exceptions?!


(00:21:55 )  PEP 3110: Catching exceptions in Python 3K


(00:26:00 )  Foreshadowing: exception groups


(00:27:10 )  PEP 3134: Exception chaining


(00:29:12 )  __cause__, __context__, __traceback__


(00:31:50 )  Back in the day we had to walk uphill both ways


(00:32:56 )  PEP 409: Suppressing exception chaining


(00:34:44 )  Raise from None? Or raise from Ellipsis?


(00:37:11 )  __supress_context__


(00:38:13 )  Semantic difference between 'pass', 'None', and '....'


(00:41:02 )  NotImplemented vs NotImplementedError


(00:43:02 )  Zero-cost exceptions in Python 3.11


(00:51:12 )  Reconstructing exception table entries dynamically


(00:52:51 )  Objects/exception_handling_notes.txt


(00:54:19 )  PEP 654: Historical context


(00:56:58 )  PEP 654: BaseExceptionGroup and ExceptionGroup


(00:58:29 )  PEP 654: except*


(01:03:23 )  PEP 678: Exception notes


(01:06:09 )  PEP 657: Cooler Errors


(01:08:36 )  A message to language implementers


(01:09:15 )  Fine-grained error locations in tracebacks


(01:12:05 )  This is useful for tracing coverage and Specializator


(01:13:50 )  Hacker in Residence fired?


(01:16:25 )  WHAT'S GOING ON IN CPYTHON


(01:16:58 )  Copy&patch JIT PR open


(01:21:30 )  Free-threading progress: GC split, stop-the-world


(01:24:22 )  The buildbots are red


(01:25:27 )  Faster CPython changes: interpreter code generator refactors


(01:26:27 )  Eval Game crash fix


(01:28:41 )  Three developers in residence!


(01:29:54 )  OUTRO




# Links




https://compilercrim.es/rust-np/

Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Episode 6 - An Exceptional Episode

Episode 6 - An Exceptional Episode

Pablo Galindo and Łukasz Langa