Hello community, here is the log from the commit of package python-numexpr for openSUSE:Factory checked in at 2016-02-03 10:19:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-numexpr (Old) and /work/SRC/openSUSE:Factory/.python-numexpr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-numexpr" Changes: -------- --- /work/SRC/openSUSE:Factory/python-numexpr/python-numexpr.changes 2015-05-15 07:44:19.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-numexpr.new/python-numexpr.changes 2016-02-03 10:19:44.000000000 +0100 @@ -1,0 +2,23 @@ +Mon Feb 1 11:39:24 UTC 2016 - toddrme2...@gmail.com + +- update to version 2.4.6: + * Fixed some UserWarnings in Solaris (PR #189, Graham Jones). + * Better handling of MSVC defines. (#168, Francesc Alted). +- update to version 2.4.5: + * Undone a 'fix' for a harmless data race. (#185 Benedikt Reinartz, + Francesc Alted). + * Ignore NumPy warnings (overflow/underflow, divide by zero and + others) that only show up in Python3. Masking these warnings in + tests is fine because all the results are checked to be + valid. (#183, Francesc Alted). +- update to version 2.4.4: + * Honor OMP_NUM_THREADS as a fallback in case NUMEXPR_NUM_THREADS is + not set. Fixes #161. (PR #175, Stefan Erb). + * Added support for AppVeyor (PR #178 Andrea Bedini) + * Fix to allow numexpr to be imported after eventlet.monkey_patch(), + as suggested in #118 (PR #180 Ben Moran). + * Fix harmless data race that triggers false positives in + ThreadSanitizer. (PR #179, Clement Courbet). + * Fixed some string tests on Python 3 (PR #182, Antonio Valentino). + +------------------------------------------------------------------- Old: ---- numexpr-2.4.3.tar.gz New: ---- numexpr-2.4.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-numexpr.spec ++++++ --- /var/tmp/diff_new_pack.TeAMz0/_old 2016-02-03 10:19:45.000000000 +0100 +++ /var/tmp/diff_new_pack.TeAMz0/_new 2016-02-03 10:19:45.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-numexpr # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,15 +16,14 @@ # -%define modname numexpr -Name: python-%{modname} -Version: 2.4.3 +Name: python-numexpr +Version: 2.4.6 Release: 0 Url: https://github.com/pydata/numexpr/ Summary: Fast numerical expression evaluator for NumPy License: MIT Group: Development/Languages/Python -Source: http://pypi.python.org/packages/source/n/numexpr/%{modname}-%{version}.tar.gz +Source: http://pypi.python.org/packages/source/n/numexpr/numexpr-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: gcc-c++ BuildRequires: python-devel >= 2.5 @@ -32,8 +31,6 @@ Requires: python-numpy >= 1.6 %if 0%{?suse_version} <= 1110 %{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%else -Requires: python(abi) >= %{py_ver} %endif %description @@ -42,7 +39,7 @@ and use less memory than doing the same calculation in Python. %prep -%setup -q -n %{modname}-%{version} +%setup -q -n numexpr-%{version} # remove unwanted shebang sed -i '/^#!/ d' numexpr/cpuinfo.py @@ -55,7 +52,7 @@ %files %defattr(-,root,root,-) %doc ANNOUNCE.rst AUTHORS.txt LICENSE.txt README.rst RELEASE_NOTES.rst site.cfg.example -%{python_sitearch}/%{modname}/ -%{python_sitearch}/%{modname}-%{version}-py%{py_ver}.egg-info +%{python_sitearch}/numexpr/ +%{python_sitearch}/numexpr-%{version}-py*.egg-info %changelog ++++++ numexpr-2.4.3.tar.gz -> numexpr-2.4.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/ANNOUNCE.rst new/numexpr-2.4.6/ANNOUNCE.rst --- old/numexpr-2.4.3/ANNOUNCE.rst 2015-04-27 17:45:42.000000000 +0200 +++ new/numexpr-2.4.6/ANNOUNCE.rst 2015-11-02 20:03:12.000000000 +0100 @@ -1,5 +1,5 @@ ========================= - Announcing Numexpr 2.4.3 + Announcing Numexpr 2.4.6 ========================= Numexpr is a fast numerical expression evaluator for NumPy. With it, @@ -21,15 +21,14 @@ What's new ========== -This is a maintenance release to cope with an old bug affecting -comparisons with empty strings. Fixes #121 and PyTables #184. +This is a quick maintenance version that offers better handling of +MSVC symbols (#168, Francesc Alted), as well as fising some +UserWarnings in Solaris (#189, Graham Jones). In case you want to know more in detail what has changed in this version, see: -https://github.com/pydata/numexpr/wiki/Release-Notes - -or have a look at RELEASE_NOTES.txt in the tarball. +https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst Where I can find Numexpr? ========================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/AUTHORS.txt new/numexpr-2.4.6/AUTHORS.txt --- old/numexpr-2.4.3/AUTHORS.txt 2013-12-01 00:32:07.000000000 +0100 +++ new/numexpr-2.4.6/AUTHORS.txt 2015-11-02 20:00:15.000000000 +0100 @@ -18,3 +18,5 @@ enhancements. Antonio Valentino contributed the port to Python 3. + +Google Inc. contributed bug fixes. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/PKG-INFO new/numexpr-2.4.6/PKG-INFO --- old/numexpr-2.4.3/PKG-INFO 2015-04-27 17:47:24.000000000 +0200 +++ new/numexpr-2.4.6/PKG-INFO 2015-11-02 20:09:26.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: numexpr -Version: 2.4.3 +Version: 2.4.6 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.4.3/README.rst new/numexpr-2.4.6/README.rst --- old/numexpr-2.4.3/README.rst 2015-04-14 14:29:26.000000000 +0200 +++ new/numexpr-2.4.6/README.rst 2015-11-02 20:00:15.000000000 +0100 @@ -1,3 +1,22 @@ +====================================================== +Numexpr: Fast numerical expression evaluator for NumPy +====================================================== + +:Author: David M. Cooke, Francesc Alted and others +:Contact: fal...@gmail.com +:URL: https://github.com/pydata/numexpr +:Travis CI: |travis| +:Appveyor: |appveyor| +:PyPi: |version| |pypi| + +.. |travis| image:: https://travis-ci.org/pydata/numexpr.png?branch=master + :target: https://travis-ci.org/pydata/numexpr +.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/FrancescAlted/numexpr + :target: https://ci.appveyor.com/project/FrancescAlted/numexpr +.. |pypi| image:: https://pypip.in/d/numexpr/badge.png + :target: https://pypi.python.org/pypi/numexpr + + What it is Numexpr? =================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/RELEASE_NOTES.rst new/numexpr-2.4.6/RELEASE_NOTES.rst --- old/numexpr-2.4.3/RELEASE_NOTES.rst 2015-04-27 17:44:51.000000000 +0200 +++ new/numexpr-2.4.6/RELEASE_NOTES.rst 2015-11-02 20:00:15.000000000 +0100 @@ -2,6 +2,49 @@ Release notes for Numexpr 2.4 series ====================================== +Changes from 2.4.5 to 2.4.6 +=========================== + +- Fixed some UserWarnings in Solaris (PR #189, Graham Jones). + +- Better handling of MSVC defines. (#168, Francesc Alted). + + +Changes from 2.4.4 to 2.4.5 +=========================== + +- Undone a 'fix' for a harmless data race. (#185 Benedikt Reinartz, + Francesc Alted). + +- Ignore NumPy warnings (overflow/underflow, divide by zero and + others) that only show up in Python3. Masking these warnings in + tests is fine because all the results are checked to be + valid. (#183, Francesc Alted). + + +Changes from 2.4.3 to 2.4.4 +=========================== + +- Fix bad #ifdef for including stdint on Windows (PR #186, Mike Sarahan). + + +Changes from 2.4.3 to 2.4.4 +=========================== + +* Honor OMP_NUM_THREADS as a fallback in case NUMEXPR_NUM_THREADS is not + set. Fixes #161. (PR #175, Stefan Erb). + +* Added support for AppVeyor (PR #178 Andrea Bedini) + +* Fix to allow numexpr to be imported after eventlet.monkey_patch(), + as suggested in #118 (PR #180 Ben Moran). + +* Fix harmless data race that triggers false positives in ThreadSanitizer. + (PR #179, Clement Courbet). + +* Fixed some string tests on Python 3 (PR #182, Antonio Valentino). + + Changes from 2.4.2 to 2.4.3 =========================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/__init__.py new/numexpr-2.4.6/numexpr/__init__.py --- old/numexpr-2.4.3/numexpr/__init__.py 2015-04-14 14:28:33.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/__init__.py 2015-11-02 20:00:15.000000000 +0100 @@ -42,25 +42,13 @@ from numexpr.tests import test, print_versions from numexpr.utils import ( get_vml_version, set_vml_accuracy_mode, set_vml_num_threads, - set_num_threads, detect_number_of_cores) + set_num_threads, detect_number_of_cores, detect_number_of_threads) # Detect the number of cores ncores = detect_number_of_cores() +nthreads = detect_number_of_threads() # Initialize the number of threads to be used -# If this is modified, please update the note in: -# https://github.com/pydata/numexpr/wiki/Numexpr-Users-Guide -try: - nthreads = int(os.environ['NUMEXPR_NUM_THREADS']) -except KeyError: - nthreads = ncores - # Check that we don't activate too many threads at the same time. - # 8 seems a sensible value. - if nthreads > 8: - nthreads = 8 -# Check that we don't surpass the MAX_THREADS in interpreter.cpp -if nthreads > 4096: - nthreads = 4096 if 'sparc' in platform.machine(): import warnings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/cpuinfo.py new/numexpr-2.4.6/numexpr/cpuinfo.py --- old/numexpr-2.4.3/numexpr/cpuinfo.py 2015-04-14 14:28:33.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/cpuinfo.py 2015-11-02 20:00:15.000000000 +0100 @@ -507,11 +507,11 @@ return info = command_info(arch='arch', mach='mach', - uname_i='uname_i', + uname_i=['uname', '-i'], isainfo_b=['isainfo', '-b'], isainfo_n=['isainfo', '-n'], ) - info['uname_X'] = key_value_from_command('uname -X', sep='=') + info['uname_X'] = key_value_from_command(['uname', '-X'], sep='=') for line in command_by_line(['psrinfo', '-v', '0']): m = re.match(r'\s*The (?P<p>[\w\d]+) processor operates at', line) if m: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/expressions.py new/numexpr-2.4.6/numexpr/expressions.py --- old/numexpr-2.4.3/numexpr/expressions.py 2015-04-14 14:28:33.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/expressions.py 2015-11-02 20:00:15.000000000 +0100 @@ -60,13 +60,6 @@ class Context(threading.local): - initialized = False - - def __init__(self, dict_): - if self.initialized: - raise SystemError('__init__ called too many times') - self.initialized = True - self.__dict__.update(dict_) def get(self, value, default): return self.__dict__.get(value, default) @@ -78,7 +71,7 @@ self.__dict__.update(dict_) # This will be called each time the local object is used in a separate thread -_context = Context({}) +_context = Context() def get_optimization(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/module.cpp new/numexpr-2.4.6/numexpr/module.cpp --- old/numexpr-2.4.3/numexpr/module.cpp 2015-04-14 14:28:42.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/module.cpp 2015-11-02 20:00:15.000000000 +0100 @@ -48,7 +48,8 @@ while (1) { - gs.init_sentinels_done = 0; /* sentinels have to be initialised yet */ + /* Sentinels have to be initialised yet */ + gs.init_sentinels_done = 0; /* Meeting point for all threads (wait for initialization) */ pthread_mutex_lock(&gs.count_threads_mutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/str-two-way.hpp new/numexpr-2.4.6/numexpr/str-two-way.hpp --- old/numexpr-2.4.3/numexpr/str-two-way.hpp 2014-03-03 08:38:37.000000000 +0100 +++ new/numexpr-2.4.6/numexpr/str-two-way.hpp 2015-11-02 20:00:15.000000000 +0100 @@ -30,7 +30,27 @@ */ #include <limits.h> -#include <stdint.h> + +/* + Python 2.7 (the only Python 2.x version supported as of now and until 2020) + is built on windows with Visual Studio 2008 C compiler. That dictates that + the compiler which must be used by authors of third party Python modules. + See https://mail.python.org/pipermail/distutils-sig/2014-September/024885.html + + Unfortunately this version of Visual Studio doesn't claim to be C99 compatible + and in particular it lacks the stdint.h header. So we have to replace it with + a public domain version. + + Visual Studio 2010 and later have stdint.h. +*/ + +#ifdef _MSC_VER + #if _MSC_VER <= 1500 + #include "win32/stdint.h" + #endif +#else + #include <stdint.h> +#endif /* We use the Two-Way string matching algorithm, which guarantees linear complexity with constant space. Additionally, for long diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/tests/test_numexpr.py new/numexpr-2.4.6/numexpr/tests/test_numexpr.py --- old/numexpr-2.4.3/numexpr/tests/test_numexpr.py 2015-04-27 17:38:07.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/tests/test_numexpr.py 2015-11-02 20:00:15.000000000 +0100 @@ -13,6 +13,7 @@ import sys import platform import warnings +from contextlib import contextmanager import numpy as np from numpy import ( @@ -720,19 +721,19 @@ self.assert_missing_op('add_sss', expr, locals()) def test_empty_string1(self): - a = np.array(["", "pepe"]) - b = np.array(["pepe2", ""]) - res = evaluate("(a == '') & (b == 'pepe2')") + a = np.array([b"", b"pepe"]) + b = np.array([b"pepe2", b""]) + res = evaluate("(a == b'') & (b == b'pepe2')") assert_array_equal(res, np.array([True, False])) - res2 = evaluate("(a == 'pepe') & (b == '')") + res2 = evaluate("(a == b'pepe') & (b == b'')") assert_array_equal(res2, np.array([False, True])) def test_empty_string2(self): - a = np.array(["p", "pepe"]) - b = np.array(["pepe2", ""]) - res = evaluate("(a == '') & (b == 'pepe2')") + a = np.array([b"p", b"pepe"]) + b = np.array([b"pepe2", b""]) + res = evaluate("(a == b'') & (b == b'pepe2')") assert_array_equal(res, np.array([False, False])) - res2 = evaluate("(a == 'pepe') & (b == '')") + res2 = evaluate("(a == b'pepe') & (b == b'')") assert_array_equal(res, np.array([False, False])) def test_add_numeric_array(self): @@ -813,6 +814,31 @@ assert_array_equal(r1, a1) +@contextmanager +def _environment(key, value): + old = os.environ.get(key) + os.environ[key] = value + try: + yield + finally: + if old: + os.environ[key] = old + else: + del os.environ[key] + + +# Test cases for the threading configuration +class test_threading_config(TestCase): + def test_numexpr_num_threads(self): + with _environment('OMP_NUM_THREADS', '5'): + with _environment('NUMEXPR_NUM_THREADS', '3'): + self.assertEquals(3, numexpr.detect_number_of_threads()) + + def test_omp_num_threads(self): + with _environment('OMP_NUM_THREADS', '5'): + self.assertEquals(5, numexpr.detect_number_of_threads()) + + # Case test for threads class test_threading(TestCase): def test_thread(self): @@ -886,6 +912,10 @@ """ print_versions() + # For some reason, NumPy issues all kinds of warnings when using Python3. + # Ignoring them in tests should be ok, as all results are checked out. + # See https://github.com/pydata/numexpr/issues/183 for details. + np.seterr(divide='ignore', invalid='ignore', over='ignore', under='ignore') return unittest.TextTestRunner().run(suite()) @@ -924,6 +954,7 @@ theSuite.addTest( unittest.makeSuite(test_irregular_stride)) theSuite.addTest(unittest.makeSuite(test_zerodim)) + theSuite.addTest(unittest.makeSuite(test_threading_config)) # multiprocessing module is not supported on Hurd/kFreeBSD if (pl.system().lower() not in ('gnu', 'gnu/kfreebsd')): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/utils.py new/numexpr-2.4.6/numexpr/utils.py --- old/numexpr-2.4.3/numexpr/utils.py 2015-04-14 14:28:47.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/utils.py 2015-11-02 20:00:15.000000000 +0100 @@ -115,6 +115,24 @@ return 1 # Default +def detect_number_of_threads(): + """ + If this is modified, please update the note in: https://github.com/pydata/numexpr/wiki/Numexpr-Users-Guide + """ + try: + nthreads = int(os.environ['NUMEXPR_NUM_THREADS']) + except KeyError: + nthreads = int(os.environ.get('OMP_NUM_THREADS', detect_number_of_cores())) + # Check that we don't activate too many threads at the same time. + # 8 seems a sensible value. + if nthreads > 8: + nthreads = 8 + # Check that we don't surpass the MAX_THREADS in interpreter.cpp + if nthreads > 4096: + nthreads = 4096 + return nthreads + + class CacheDict(dict): """ A dictionary that prevents itself from growing too much. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/version.py new/numexpr-2.4.6/numexpr/version.py --- old/numexpr-2.4.3/numexpr/version.py 2015-04-27 17:46:06.000000000 +0200 +++ new/numexpr-2.4.6/numexpr/version.py 2015-11-02 20:03:30.000000000 +0100 @@ -8,4 +8,4 @@ # rights to use. #################################################################### -version = '2.4.3' +version = '2.4.6' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr/win32/stdint.h new/numexpr-2.4.6/numexpr/win32/stdint.h --- old/numexpr-2.4.3/numexpr/win32/stdint.h 1970-01-01 01:00:00.000000000 +0100 +++ new/numexpr-2.4.6/numexpr/win32/stdint.h 2015-11-02 20:00:15.000000000 +0100 @@ -0,0 +1,235 @@ +/* ISO C9x 7.18 Integer types <stdint.h> + * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794) + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * Contributor: Danny Smith <danny_r_smith_2...@yahoo.co.nz> + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Date: 2000-12-02 + * + * mwb: This was modified in the following ways: + * + * - make it compatible with Visual C++ 6 (which uses + * non-standard keywords and suffixes for 64-bit types) + * - some environments need stddef.h included (for wchar stuff?) + * - handle the fact that Microsoft's limits.h header defines + * SIZE_MAX + * - make corrections for SIZE_MAX, INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX, + * PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, and SIG_ATOMIC_MAX + * to be 64-bit aware. + */ + + +#ifndef _STDINT_H +#define _STDINT_H +#define __need_wint_t +#define __need_wchar_t +#include <wchar.h> +#include <stddef.h> + +#if _MSC_VER && (_MSC_VER < 1300) +/* using MSVC 6 or earlier - no "long long" type, but might have _int64 type */ +#define __STDINT_LONGLONG __int64 +#define __STDINT_LONGLONG_SUFFIX i64 +#else +#define __STDINT_LONGLONG long long +#define __STDINT_LONGLONG_SUFFIX LL +#endif + +#if !defined( PASTE) +#define PASTE2( x, y) x##y +#define PASTE( x, y) PASTE2( x, y) +#endif /* PASTE */ + + +/* 7.18.1.1 Exact-width integer types */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef short int16_t; +typedef unsigned short uint16_t; +typedef int int32_t; +typedef unsigned uint32_t; +typedef __STDINT_LONGLONG int64_t; +typedef unsigned __STDINT_LONGLONG uint64_t; + +/* 7.18.1.2 Minimum-width integer types */ +typedef signed char int_least8_t; +typedef unsigned char uint_least8_t; +typedef short int_least16_t; +typedef unsigned short uint_least16_t; +typedef int int_least32_t; +typedef unsigned uint_least32_t; +typedef __STDINT_LONGLONG int_least64_t; +typedef unsigned __STDINT_LONGLONG uint_least64_t; + +/* 7.18.1.3 Fastest minimum-width integer types + * Not actually guaranteed to be fastest for all purposes + * Here we use the exact-width types for 8 and 16-bit ints. + */ +typedef char int_fast8_t; +typedef unsigned char uint_fast8_t; +typedef short int_fast16_t; +typedef unsigned short uint_fast16_t; +typedef int int_fast32_t; +typedef unsigned int uint_fast32_t; +typedef __STDINT_LONGLONG int_fast64_t; +typedef unsigned __STDINT_LONGLONG uint_fast64_t; + +/* 7.18.1.4 Integer types capable of holding object pointers */ +#ifndef _INTPTR_T_DEFINED +#define _INTPTR_T_DEFINED +#ifdef _WIN64 +typedef __STDINT_LONGLONG intptr_t +#else +typedef int intptr_t; +#endif /* _WIN64 */ +#endif /* _INTPTR_T_DEFINED */ + +#ifndef _UINTPTR_T_DEFINED +#define _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __STDINT_LONGLONG uintptr_t +#else +typedef unsigned int uintptr_t; +#endif /* _WIN64 */ +#endif /* _UINTPTR_T_DEFINED */ + +/* 7.18.1.5 Greatest-width integer types */ +typedef __STDINT_LONGLONG intmax_t; +typedef unsigned __STDINT_LONGLONG uintmax_t; + +/* 7.18.2 Limits of specified-width integer types */ +#if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS) + +/* 7.18.2.1 Limits of exact-width integer types */ +#define INT8_MIN (-128) +#define INT16_MIN (-32768) +#define INT32_MIN (-2147483647 - 1) +#define INT64_MIN (PASTE( -9223372036854775807, __STDINT_LONGLONG_SUFFIX) - 1) + +#define INT8_MAX 127 +#define INT16_MAX 32767 +#define INT32_MAX 2147483647 +#define INT64_MAX (PASTE( 9223372036854775807, __STDINT_LONGLONG_SUFFIX)) + +#define UINT8_MAX 0xff /* 255U */ +#define UINT16_MAX 0xffff /* 65535U */ +#define UINT32_MAX 0xffffffff /* 4294967295U */ +#define UINT64_MAX (PASTE( 0xffffffffffffffffU, __STDINT_LONGLONG_SUFFIX)) /* 18446744073709551615ULL */ + +/* 7.18.2.2 Limits of minimum-width integer types */ +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST64_MIN INT64_MIN + +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MAX INT64_MAX + +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX + +/* 7.18.2.3 Limits of fastest minimum-width integer types */ +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST64_MIN INT64_MIN + +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MAX INT64_MAX + +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX + +/* 7.18.2.4 Limits of integer types capable of holding + object pointers */ +#ifdef _WIN64 +#define INTPTR_MIN INT64_MIN +#define INTPTR_MAX INT64_MAX +#define UINTPTR_MAX UINT64_MAX +#else +#define INTPTR_MIN INT32_MIN +#define INTPTR_MAX INT32_MAX +#define UINTPTR_MAX UINT32_MAX +#endif /* _WIN64 */ + +/* 7.18.2.5 Limits of greatest-width integer types */ +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX + +/* 7.18.3 Limits of other integer types */ +#define PTRDIFF_MIN INTPTR_MIN +#define PTRDIFF_MAX INTPTR_MAX + +#define SIG_ATOMIC_MIN INTPTR_MIN +#define SIG_ATOMIC_MAX INTPTR_MAX + +/* we need to check for SIZE_MAX already defined because MS defines it in limits.h */ +#ifndef SIZE_MAX +#define SIZE_MAX UINTPTR_MAX +#endif + +#ifndef WCHAR_MIN /* also in wchar.h */ +#define WCHAR_MIN 0 +#define WCHAR_MAX ((wchar_t)-1) /* UINT16_MAX */ +#endif + +/* + * wint_t is unsigned short for compatibility with MS runtime + */ +#define WINT_MIN 0 +#define WINT_MAX ((wint_t)-1) /* UINT16_MAX */ + +#endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */ + + +/* 7.18.4 Macros for integer constants */ +#if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS) + +/* 7.18.4.1 Macros for minimum-width integer constants + + Accoding to Douglas Gwyn <g...@arl.mil>: + "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC + 9899:1999 as initially published, the expansion was required + to be an integer constant of precisely matching type, which + is impossible to accomplish for the shorter types on most + platforms, because C99 provides no standard way to designate + an integer constant with width less than that of type int. + TC1 changed this to require just an integer constant + *expression* with *promoted* type." +*/ + +#define INT8_C(val) ((int8_t) + (val)) +#define UINT8_C(val) ((uint8_t) + (val##U)) +#define INT16_C(val) ((int16_t) + (val)) +#define UINT16_C(val) ((uint16_t) + (val##U)) + +#define INT32_C(val) val##L +#define UINT32_C(val) val##UL +#define INT64_C(val) (PASTE( val, __STDINT_LONGLONG_SUFFIX)) +#define UINT64_C(val)(PASTE( PASTE( val, U), __STDINT_LONGLONG_SUFFIX)) + +/* 7.18.4.2 Macros for greatest-width integer constants */ +#define INTMAX_C(val) INT64_C(val) +#define UINTMAX_C(val) UINT64_C(val) + +#endif /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */ + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr.egg-info/PKG-INFO new/numexpr-2.4.6/numexpr.egg-info/PKG-INFO --- old/numexpr-2.4.3/numexpr.egg-info/PKG-INFO 2015-04-27 17:47:24.000000000 +0200 +++ new/numexpr-2.4.6/numexpr.egg-info/PKG-INFO 2015-11-02 20:09:26.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: numexpr -Version: 2.4.3 +Version: 2.4.6 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.4.3/numexpr.egg-info/SOURCES.txt new/numexpr-2.4.6/numexpr.egg-info/SOURCES.txt --- old/numexpr-2.4.3/numexpr.egg-info/SOURCES.txt 2015-04-27 17:47:24.000000000 +0200 +++ new/numexpr-2.4.6/numexpr.egg-info/SOURCES.txt 2015-11-02 20:09:26.000000000 +0100 @@ -45,9 +45,11 @@ numexpr.egg-info/SOURCES.txt numexpr.egg-info/dependency_links.txt numexpr.egg-info/not-zip-safe +numexpr.egg-info/pbr.json numexpr.egg-info/requires.txt numexpr.egg-info/top_level.txt numexpr/tests/__init__.py numexpr/tests/test_numexpr.py numexpr/win32/pthread.c -numexpr/win32/pthread.h \ No newline at end of file +numexpr/win32/pthread.h +numexpr/win32/stdint.h \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/numexpr.egg-info/pbr.json new/numexpr-2.4.6/numexpr.egg-info/pbr.json --- old/numexpr-2.4.3/numexpr.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100 +++ new/numexpr-2.4.6/numexpr.egg-info/pbr.json 2015-11-02 20:09:26.000000000 +0100 @@ -0,0 +1 @@ +{"is_release": true, "git_version": "da47135"} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.4.3/setup.py new/numexpr-2.4.6/setup.py --- old/numexpr-2.4.3/setup.py 2015-04-21 18:08:28.000000000 +0200 +++ new/numexpr-2.4.6/setup.py 2015-11-02 20:00:15.000000000 +0100 @@ -198,7 +198,7 @@ class build_ext(numpy_build_ext): def build_extension(self, ext): # at this point we know what the C compiler is. - if self.compiler.compiler_type == 'msvc': + if self.compiler.compiler_type == 'msvc' or self.compiler.compiler_type == 'intelemw': ext.extra_compile_args = [] # also remove extra linker arguments msvc doesn't understand ext.extra_link_args = []