Talks - Brandt Bucher: Inside CPython 3.11's new specializing, adaptive interpreter

Get an inside look at the new specializing adaptive interpreter in Python 3.11, which makes the interpreter more efficient by specializing certain instructions.

Key takeaways
  • The new specializing adaptive interpreter in Python 3.11 makes the interpreter more efficient by specializing certain instructions.
  • The interpreter can adapt to the code over time, making it faster.
  • The specialization is done at compile time, making it faster and more efficient.
  • The interpreter can specialize certain instructions, such as loading attributes, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain operations, such as addition, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of iterators, such as lists and tuples, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of generators, such as generators and coroutines, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of attributes, such as instance attributes, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of methods, such as instance methods, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of classes, such as instance classes, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of objects, such as instance objects, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as floating point values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as integer values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as floating point values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as integer values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as floating point values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as integer values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as floating point values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of modules, such as instance modules, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of packages, such as instance packages, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of types, such as instance types, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of values, such as integer values, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of variables, such as instance variables, to make them faster.
  • The specialization is done by inserting special instructions into the bytecode, which can be executed more quickly.
  • The interpreter can also specialize certain types of functions, such as instance functions, to make them faster.
  • The specialization is done