Skip to content

v7.0.0: Overhaul package dependencies

Compare
Choose a tag to compare
@honnibal honnibal released this 15 Feb 11:23

⚠️ Backwards incompatibilities

  • Thinc v7.0 drops support for Python 2.7 on Windows. Python 2.7 remains supported on Linux and OSX. Support could be restored in future. We're currently unable to build our new dependency, blis, for Windows on Python 2.7. If you can assist with this, please let us know.

✨ New features and improvements

  • Use blis for matrix multiplication. Previous versions delegated matrix multiplication to platform-specific libraries via numpy. This led to inconsistent results, especially around multi-threading. We now provide a standalone package, with the Blis linear algebra routines. Importantly, we've built Blis to be single-threaded. This makes it much easier to do efficient inference, as the library will no longer spawn threads underneath you.

  • Use srsly for serialization. We now provide a single package with forks of our preferred serialisation libraries – specifically, msgpack, ujson and cloudpickle. This allows us to provide a single binary wheel for these dependencies, and to maintain better control of our dependency tree, preventing breakages.

  • Update versions of cymem, preshed and murmurhash. Thinc is compiled against our memory pool and hash table libraries, cymem and preshed. Changing these build-time dependencies requires Thinc to be recompiled. This is one reason the major version number needed to be incremented for this release.