The Storm team is proud to announce Storm 0.16! The new release includes a number of new features:
* Storm's C extensions are enabled by default * Comparable expressions have new string comparison methods * The default object cache size has been changed * Set expressions use fewer stack frames during compilation * MySQL reserved words are correctly handled This release includes official packages for all supported releases of Ubuntu. They are available in the Storm team's PPA: https://edge.launchpad.net/~storm/+archive/ppa You can find the release files at: https://launchpad.net/storm/+download You can always get the latest source code from Launchpad: bzr branch lp:storm Finally, you can join us in the #storm channel on irc.freenode.net and on the Storm mailing list: https://lists.canonical.com/mailman/listinfo/storm Read on for more... Storm's C extensions are enabled by default ------------------------------------------- Storm has had C extensions for a long time, but until now they've been disabled by default. The extensions have a significant improvement on performance and are now used by default. The extensions can be disabled by defining a STORM_CEXTENSIONS=0 environment variable. When not available, Storm will automatically fall back to the equivalent Python versions of optimized code. Comparable expressions have new string comparison methods --------------------------------------------------------- Comparable expressions (such as Column and Alias) provide new startswith(), endswith() and contains_string() methods. These methods perform prefix, suffix and substring comparisons using LIKE. Strings used with these methods are automatically escaped. The default object cache size has been changed ---------------------------------------------- Storm 0.15 included an announcement about the default cache size being changed from 100 items to 1000 items. Due to a bug this information was actually incorrect. This is now fixed and should result in improved performance. Please report any problems or concerns about this change to the mailing list. Set expressions use fewer stack frames during compilation --------------------------------------------------------- The set expression constructor flattens the first argument, if it's part of the same type. The resulting expression tree uses fewer stack frames during compilation, reducing the chance of hitting Python's recursion limit. MySQL reserved words are correctly handled ------------------------------------------ In addition to the standard SQL92 reserved words, MySQL has it's own set reserved words. Storm is now aware of them and will perform escaping correctly, making it easier for users that have table and column names that conflict with this list. Detailed changelog ------------------ Improvements: - The set expression constructor will now flatten its first argument if it is of the same type. The resulting expression tree uses less stack when compiling so reduces the chance of hitting Python's recursion limit (bug #242813). - Add startswith(), endswith() and contains_string() methods to Comparable. These methods perform prefix, suffix and substring checks respectively using the LIKE operator, taking care of escaping for you (bug #387840). - C extensions are enabled by default. Define the STORM_CEXTENSIONS=0 environment variable to disable them (bug #410592). - The README file contains information about Storm's license and detailed instructions on setting up a development environment suitable for running the entire test suite. - 'make doc' uses Pydoctor to generate API documentation. - Integration tests for Django now work with Django 1.1. Bug fixes: - Remove a leak when mutable variables (ListVariable or PickleVariable instances) are collected before store.flush, leaving hooks behind them. - The ResultSet min, max and sum methods now work correctly when the result set is empty and the column has allow_none=False set. Previously this resulted in a NoneError (bug #457801). - MySQL reserved words are handled properly (bug #433833). - Test loading code has been simplified. Support for py.test has been removed in this process, as it was not functioning correctly and didn't fit into the PyUnit framework (bug #331905). - Remote diverged and remote deleted references now use a weak (Python) reference to the local object. This prevents a leak when the remote object stays in memory (bug #475148). - Check for invalidated state when returning the remote object of a relation: it fixes a bug if the local key of the Reference is the primary key (bug #435962). - The default Cache instance created for a Store honours Cache's default size. Store's docstring has been updated to reflect this (bug #374180). -- storm mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/storm
