Hello community, here is the log from the commit of package python3-numexpr for openSUSE:Factory checked in at 2016-04-03 23:07:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-numexpr (Old) and /work/SRC/openSUSE:Factory/.python3-numexpr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-numexpr" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-numexpr/python3-numexpr.changes 2016-02-17 12:23:38.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python3-numexpr.new/python3-numexpr.changes 2016-04-03 23:07:30.000000000 +0200 @@ -1,0 +2,12 @@ +Sat Apr 2 03:39:15 UTC 2016 - a...@gmx.de + +- update to version 2.5.1: + * Fix for log10() and conj() functions. These produced wrong results + when numexpr was compiled with Intel's MKL (which is a popular + build since Anaconda ships it by default) and non-contiguous data + (issue #210). Thanks to Arne de Laat and Tom Kooij for reporting + and providing a nice test unit. + * Fix that allows numexpr-powered apps to be profiled with + pympler. Thanks to @nbecker. + +------------------------------------------------------------------- Old: ---- numexpr-2.5.tar.gz New: ---- numexpr-2.5.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-numexpr.spec ++++++ --- /var/tmp/diff_new_pack.j5jy68/_old 2016-04-03 23:07:30.000000000 +0200 +++ /var/tmp/diff_new_pack.j5jy68/_new 2016-04-03 23:07:30.000000000 +0200 @@ -17,7 +17,7 @@ Name: python3-numexpr -Version: 2.5 +Version: 2.5.1 Release: 0 Url: https://github.com/pydata/numexpr Summary: Fast numerical expression evaluator for NumPy ++++++ numexpr-2.5.tar.gz -> numexpr-2.5.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/ANNOUNCE.rst new/numexpr-2.5.1/ANNOUNCE.rst --- old/numexpr-2.5/ANNOUNCE.rst 2016-02-06 11:44:03.000000000 +0100 +++ new/numexpr-2.5.1/ANNOUNCE.rst 2016-03-31 09:22:51.000000000 +0200 @@ -1,5 +1,5 @@ ========================= - Announcing Numexpr 2.5 + Announcing Numexpr 2.5.1 ========================= Numexpr is a fast numerical expression evaluator for NumPy. With it, @@ -8,7 +8,7 @@ It wears multi-threaded capabilities, as well as support for Intel's MKL (Math Kernel Library), which allows an extremely fast evaluation -of transcendental functions (sin, cos, tan, exp, log...) while +of transcendental functions (sin, cos, tan, exp, log...) while squeezing the last drop of performance out of your multi-core processors. Look here for a some benchmarks of numexpr using MKL: @@ -21,10 +21,12 @@ What's new ========== -In this version, a lock has been added so that numexpr can be called -not from multithreaded apps. Mind that this does not prevent numexpr -to use multiple cores internally. Also, a new min() and max() -functions have been added. Thanks to contributors! +Fixed a critical bug that caused wrong evaluations of log10() and +conj(). These produced wrong results when numexpr was compiled with +Intel's MKL (which is a popular build since Anaconda ships it by +default) and non-contiguous data. This is considered a *critical* bug +and upgrading is highly recommended. Thanks to Tom Kooij and Arne de +Laat for reporting and providing a test unit. In case you want to know more in detail what has changed in this version, see: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/PKG-INFO new/numexpr-2.5.1/PKG-INFO --- old/numexpr-2.5/PKG-INFO 2016-02-06 11:48:22.000000000 +0100 +++ new/numexpr-2.5.1/PKG-INFO 2016-03-31 09:37:44.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: numexpr -Version: 2.5 +Version: 2.5.1 Summary: Fast numerical expression evaluator for NumPy Home-page: https://github.com/pydata/numexpr Author: David M. Cooke, Francesc Alted and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/RELEASE_NOTES.rst new/numexpr-2.5.1/RELEASE_NOTES.rst --- old/numexpr-2.5/RELEASE_NOTES.rst 2016-02-06 11:34:30.000000000 +0100 +++ new/numexpr-2.5.1/RELEASE_NOTES.rst 2016-03-31 09:34:43.000000000 +0200 @@ -2,6 +2,20 @@ Release notes for Numexpr 2.5 series ====================================== + +Changes from 2.5 to 2.5.1 +========================= + +- Fix for log10() and conj() functions. These produced wrong results + when numexpr was compiled with Intel's MKL (which is a popular build + since Anaconda ships it by default) and non-contiguous data (issue + #210). Thanks to Arne de Laat and Tom Kooij for reporting and + providing a nice test unit. + +- Fix that allows numexpr-powered apps to be profiled with pympler. + Thanks to @nbecker. + + Changes from 2.4.6 to 2.5 ========================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/numexpr/expressions.py new/numexpr-2.5.1/numexpr/expressions.py --- old/numexpr-2.5/numexpr/expressions.py 2016-01-26 14:46:28.000000000 +0100 +++ new/numexpr-2.5.1/numexpr/expressions.py 2016-03-22 22:17:01.000000000 +0100 @@ -51,7 +51,10 @@ def __getattr__(self, name): if name.startswith('_'): - return self.__dict__[name] + try: + return self.__dict__[name] + except KeyError: + raise AttributeError else: return VariableNode(name, default_kind) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/numexpr/necompiler.py new/numexpr-2.5.1/numexpr/necompiler.py --- old/numexpr-2.5/numexpr/necompiler.py 2016-01-26 14:46:28.000000000 +0100 +++ new/numexpr-2.5.1/numexpr/necompiler.py 2016-03-30 23:01:40.000000000 +0200 @@ -35,6 +35,36 @@ kind_to_type = expressions.kind_to_type default_type = kind_to_type[expressions.default_kind] +# VML functions that are implemented in numexpr +vml_functions = [ + "div", # interp_body.cpp + "inv", # interp_body.cpp + "pow", # interp_body.cpp + # Keep the rest of this list in sync with the ones listed in functions.hpp + "sqrt", + "sin", + "cos", + "tan", + "arcsin", + "arccos", + "arctan", + "sinh", + "cosh", + "tanh", + "arcsinh", + "arccosh", + "arctanh", + "log", + "log1p", + "log10", + "exp", + "expm1", + "abs", + "conj", + "arctan2", + "fmod", + ] + # Final addtions for Python 3 (mainly for PyTables needs) if sys.version_info[0] > 2: typecode_to_kind['s'] = 'str' @@ -665,15 +695,7 @@ ex_uses_vml = False else: for node in ast.postorderWalk(): - if node.astType == 'op' \ - and node.value in ['sin', 'cos', 'exp', 'log', - 'expm1', 'log1p', - 'pow', 'div', - 'sqrt', 'inv', - 'sinh', 'cosh', 'tanh', - 'arcsin', 'arccos', 'arctan', - 'arccosh', 'arcsinh', 'arctanh', - 'arctan2', 'abs']: + if node.astType == 'op' and node.value in vml_functions: ex_uses_vml = True break else: @@ -747,7 +769,7 @@ local_dict = call_frame.f_locals if global_dict is None: global_dict = call_frame.f_globals - + arguments = [] for name in names: try: @@ -755,10 +777,10 @@ except KeyError: a = global_dict[name] arguments.append(numpy.asarray(a)) - + # Create a signature signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)] - + # Look up numexpr if possible. numexpr_key = expr_key + (tuple(signature),) try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/numexpr/tests/test_numexpr.py new/numexpr-2.5.1/numexpr/tests/test_numexpr.py --- old/numexpr-2.5/numexpr/tests/test_numexpr.py 2016-01-26 17:16:40.000000000 +0100 +++ new/numexpr-2.5.1/numexpr/tests/test_numexpr.py 2016-03-30 22:20:08.000000000 +0200 @@ -380,6 +380,16 @@ assert_array_equal(evaluate("c1"), c1) assert_array_equal(evaluate("a0+c1"), a0 + c1) + def test_recarray_strides(self): + a = arange(100) + b = arange(100,200) + recarr = np.rec.array(None, formats='f4,f4', shape=(100,)) + recarr['f0'] = a + recarr['f1'] = b + c = recarr['f1'] + assert_array_almost_equal(evaluate("sqrt(c) > 1."), sqrt(c) > 1.) + assert_array_almost_equal(evaluate("log10(c)"), log10(c)) + def test_broadcasting(self): a = arange(100).reshape(10, 10)[::2] c = arange(10) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/numexpr/version.py new/numexpr-2.5.1/numexpr/version.py --- old/numexpr-2.5/numexpr/version.py 2016-02-06 11:44:30.000000000 +0100 +++ new/numexpr-2.5.1/numexpr/version.py 2016-03-31 09:32:18.000000000 +0200 @@ -8,4 +8,4 @@ # rights to use. #################################################################### -version = '2.5' +version = '2.5.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/numexpr.egg-info/PKG-INFO new/numexpr-2.5.1/numexpr.egg-info/PKG-INFO --- old/numexpr-2.5/numexpr.egg-info/PKG-INFO 2016-02-06 11:48:22.000000000 +0100 +++ new/numexpr-2.5.1/numexpr.egg-info/PKG-INFO 2016-03-31 09:37:44.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: numexpr -Version: 2.5 +Version: 2.5.1 Summary: Fast numerical expression evaluator for NumPy Home-page: https://github.com/pydata/numexpr Author: David M. Cooke, Francesc Alted and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5/numexpr.egg-info/pbr.json new/numexpr-2.5.1/numexpr.egg-info/pbr.json --- old/numexpr-2.5/numexpr.egg-info/pbr.json 2016-02-06 11:48:22.000000000 +0100 +++ new/numexpr-2.5.1/numexpr.egg-info/pbr.json 2016-03-31 09:37:44.000000000 +0200 @@ -1 +1 @@ -{"is_release": true, "git_version": "f067f36"} \ No newline at end of file +{"is_release": true, "git_version": "b4eaeea"} \ No newline at end of file