bits-837 released with these changes:

  • Update to ACPICA version 20130517

  • Update Python to 2.7.5

    Update pyconfig.h, handle new definitions for 32-bit and 64-bit sized integer types, and define EINTR (which Python will never receive but nonetheless expects a definition of).

  • Python readline: write out full lines at a time rather than character-by-character

  • Add a new Python "bitfields" module for bitfield manipulation

    Most Intel documentation references bitfields defined as [msb:lsb], or as [bit]; this module allows creating and extracting such fields without having to translate them to shifts and masks.

  • Add processor socket/core/thread topology decode and display. Contributed by Cathy Ji.

  • Provide a more user-friendly exception when asking for a CPUID on a non-existent CPU

    Now raises a RuntimeError with a clear error message, rather than a TypeError complaining about the inability to *-splat out a None.

  • bits.cpus(): Cache the list of CPUs

    bits.cpus() recomputed the list of CPUs every time, even though it never changed. Cache it instead. Particularly relevant for bits.bsp_apicid(), which calls bits.cpus() to produce the entire list only to return the zeroth element.