Change Log

eGenix mx Base Distribution Change Log

The change log includes a detailed description of all changes to this package in the recent releases.
Version: 3.2.4

Note that this change log usually only lists changes to the distribution, not the changes of the included subpackages. Please refer to the sub-package documentation for more detailed information.

Changes from 3.2.3 to 3.2.4

  • Fixed a compatibility problem with Python 2.7's distutils that was introduced in Python 2.7.3
  • mxDateTime: Fixed a possible double deallocation in the mxDateTime C API import helper. Thanks to Daniele Varrazzo for reporting this.

Changes from 3.2.2 to 3.2.3

  • mxDateTime: Fixed a possible segfault when using the .pydate(), .pydatetime() and .pytime() methods. Thanks to Daniel Szoska for reporting this.

Changes from 3.2.1 to 3.2.2

  • mxDateTime seconds rounding is now more careful to not show 60.00 or 61.00 as second value.
  • mxDateTime will now correctly work with numeric arrays (numpy) again. Thanks to Christian Marquardt for reporting the problem.
  • mxDateTime's DateTimeFromAbsDateTime() now accepts leap second values (86400.0 - <86401.0) as well. Thanks to Christian Marquardt for reporting the problem.
  • mxDateTime range errors did not always format the wrong value.
  • Made mxDateTime compile again on Python 2.1 and 2.2.
  • Added parameter to allow None values on most mx.Misc.ConfigFile Entry() fields.
  • mx.Misc.ConfigFile provides a new method .read_defaults() to set all values to defaults.
  • Fixed mx.Misc.ConfigFile.SafeEvalEntry() to actually work.

Changes from 3.2.0 to 3.2.1

  • Fixed a segfault in mxDateTime.
  • Fixed a possible buffer overflow in the mxDebugPrintf() function of all mx Base extensions.
  • Fixed a problem in mxSetup mx_autoconf: Python.h was not found by some tests

Changes from 3.1.3 to 3.2.0

  • Added support for Python 2.7.
  • Added native Window x64 support.
  • Included many news features in mxDateTime.
  • Fixed a few typos in the code and made the use of mxTools builtins explicit in the subpackages.
  • Added new mx.Misc.Daemon module which provides abstractions to implement Unix daemon processes.
  • Replaced all uses of string module functions with string methods... this was long overdue and should result in a small speedup across all packages.
  • eGenix mx Base Extensions now use PyObject_MALLOC() for memory allocation which should make memory allocation a little faster in a few places.
  • Documentation files are no longer duplicated in mx/Doc/. They now only appear in the resp. Doc/ subdir of the packages.
  • Prebuilt archives now also work with snapshots that use the date in the version.
  • mxSetup now cooperates with easy_install (again) and disables its own bdist_egg implementation if setuptools is found to be loaded. Thanks to Tim Cook for reporting the problem.
  • Dropped support for Python 2.3.
  • Added pip support to egenix-mx-base.
  • Added support for detecting version and platform mismatches in prebuilt archives.
  • Starting with Python 2.5, we no longer support bdist_rpm in mxSetup.
  • Starting with Python 2.6, we no longer support bdist_wininst in mxSetup.
  • mxLog no longer unfolds Unicode strings when logging stacks or tracebacks.

Changes from 3.1.2 to 3.1.3

  • Fixed a problem with mxBeeBase on BSD-based platforms such as FreeBSD and Mac OS X: file system synchronization problems between read and writes could cause data corruption. Thanks to Ernesto Picardi for bringing this to our attention.
  • Updated mxSetup to our latest version with platform mismatch detection for prebuilt archives.

Changes from 3.1.1 to 3.1.2

  • Changed the way pre-built state is restored during installation to handle situations where the distutils platform string is different between the build platform and the installation platform (e.g. for Mac OS X fat builds).

Changes from 3.1.0 to 3.1.1

  • Fixed a problem with the pre-built packages not installing on Mac OS X and older Linux distributions.
  • Verified and tested all packages with Python 2.6.

Changes from 3.0.0 to 3.1.0

  • mxSetup bdist_wininst will now always include the Python version number if you build pure Python distributions that don't include the Python source
  • mxSetup clean command will now also remove the build pickle used for e.g. bdist_prebuilt.
  • mxSetup bdist_prebuilt will now create platform independent archives for packages that don't include any C extensions.
  • mxSetup prebuilt archives no longer need to use "... build --skip ..." to skip the build process. The build command is now smart enough to detect, check and automatically use a build pickle and the prebuilt format.
  • Added setuptools support, ie. mxSetup can run with an installed setuptools to e.g. create eggs. Running python --use-setuptools bdist_egg will create an .egg file in the dist/ directory. If you want to convert a prebuilt archive to an egg, run the command with bdist_egg --skip-build.
  • Fixed a problem in mxSetup that caused the uninstall command not to work with prebuilt packages. Thanks to Wouter van Atteveldt for pointing out the problem.
  • Added new mx.Misc.CSV module for reading and writing CSV files.

Changes from 2.0.5 to 3.0.0

  • Fixed the distutils setup to now allow defining compiler options on the command line using 'python mx_autoconf -DENABLE_FEATURE install'.
  • Lots of changes in the various sub-packages. See the sub-package documentation for a full list of new features.
  • Added source code encoding markers to those files that need it.
  • Moved mxURL and mxUID from the Experimental Distribution to the Base Distribution.
  • Added better support for Python DEBUG builds. The total reference counting should now also work in case object constructors raise exceptions.
  • Added Python 2.4 and 2.5 support.

Changes from 2.0.4 to 2.0.5

  • Added Python 2.3 support.

Changes from 2.0.3 to 2.0.4

  • RPMs now install to /usr/ instead of /usr/local/. This change was necessary to resynch to the standard Python RPMs.
  • The mx distutils build system was updated to the latest version.

Changes from 2.0.2 to 2.0.3

  • Some cleanup of assignments to __debug__ which cause warnings in Python 2.1.
  • Added some missing header files. These are needed by third party tools in case they rely on the provided C interfaces.
  • Changed the error class object fullnames to properly include the complete package path.
  • Corrected a bug in the free list management of the various types which showed up when using pymalloc.
  • Prepared the tools for Python 2.2.

Changes from 2.0.1 to 2.0.2

  • Added compiler support for Cygwin. Thanks to Mark Hadfield for pointing out the necessary changes.
  • Reworked the RPM packaging for different Python versions: you can now install the RPMs for different Python versions side-by-side.
  • Updated a few packages, e.g. the mxDateTime package.

Changes from 2.0.0 to 2.0.1

  • Added back .h header files to the mx-subdirectories. Third-party software was relying on these files, but the distutils process did not include them per default.
  • New release for Python 2.1.