bits-763 released with these changes:

  • Significantly speed up the BITS boot process, by pre-compiling Python code to bytecode.

    BITS previously spent most of its boot time parsing Python source files and compiling them to bytecode. BITS now compiles its included version of Python for the host system at build time, and uses that to pre-compile all of its Python source files to bytecode.

    This speeds up BITS boot time by a factor of 10 or so: on fast systems boot time goes from seconds to near-instant, and on slow systems from minutes to seconds.

    Since the version of GRUB used by BITS doesn't support file modification times (mtime), our version of fstat always returns an mtime of 0, so the build process patches the mtimes stored in the bytecode files to 0 as well. Unfortunately, this defeats the usual Python mechanism to check for up-to-date bytecode, so anyone modifying Python scripts directly on the BITS boot media will need to remove the corresponding .pyc files. However, the recommended procedure of modifying Python files in the BITS source tree and using ./build and ./mkdisk will still work.

  • Update to ACPICA version 20120620.

  • Update to Python 2.7.3.

  • Port the SMI latency test from C to Python.

  • Add a variant of SMI latency test with USB disabled.

  • Now that all tests have moved over to Python, remove the C test infrastructure.

  • Remove the unused C implementation of cpu_freq, previously ported to Python.

  • Remove the auto-generated list of C-based GRUB commands provided in the menu and the README. As functionality has moved from C to Python, this list has become shorter and less useful, and it doesn't substitute for real documentation.

  • Improve test log formatting.

  • Bugfixes:

    • Fix the return value of fread.
    • Fix fgetc to not sign-extend characters 0x80 and above.