[pypy-commit] pypy py3.5: hg merge default
arigo
pypy.commits at gmail.com
Fri Oct 14 10:08:04 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5
Changeset: r87791:f896d075d6bb
Date: 2016-10-14 16:07 +0200
http://bitbucket.org/pypy/pypy/changeset/f896d075d6bb/
Log: hg merge default
diff --git a/lib_pypy/_tkinter/tclobj.py b/lib_pypy/_tkinter/tclobj.py
--- a/lib_pypy/_tkinter/tclobj.py
+++ b/lib_pypy/_tkinter/tclobj.py
@@ -160,7 +160,7 @@
encoded = value.encode('utf-16')[2:]
buf = tkffi.new("char[]", encoded)
inbuf = tkffi.cast("Tcl_UniChar*", buf)
- return tklib.Tcl_NewUnicodeObj(buf, len(encoded)//2)
+ return tklib.Tcl_NewUnicodeObj(inbuf, len(encoded)/2)
if isinstance(value, Tcl_Obj):
tklib.Tcl_IncrRefCount(value._value)
return value._value
diff --git a/lib_pypy/_tkinter/tklib_build.py b/lib_pypy/_tkinter/tklib_build.py
--- a/lib_pypy/_tkinter/tklib_build.py
+++ b/lib_pypy/_tkinter/tklib_build.py
@@ -107,7 +107,7 @@
int Tcl_Init(Tcl_Interp* interp);
int Tk_Init(Tcl_Interp* interp);
-void Tcl_Free(char* ptr);
+void Tcl_Free(void* ptr);
const char *Tcl_SetVar(Tcl_Interp* interp, const char* varName, const char* newValue, int flags);
const char *Tcl_SetVar2(Tcl_Interp* interp, const char* name1, const char* name2, const char* newValue, int flags);
diff --git a/pypy/module/_cffi_backend/ctypeptr.py b/pypy/module/_cffi_backend/ctypeptr.py
--- a/pypy/module/_cffi_backend/ctypeptr.py
+++ b/pypy/module/_cffi_backend/ctypeptr.py
@@ -167,7 +167,7 @@
"will be forbidden in the future (check that the types "
"are as you expect; use an explicit ffi.cast() if they "
"are correct)" % (other.name, self.name))
- space.warn(space.wrap(msg), space.w_UserWarning, stacklevel=1)
+ space.warn(space.wrap(msg), space.w_UserWarning)
else:
raise self._convert_error("compatible pointer", w_ob)
diff --git a/pypy/module/_cffi_backend/test/_backend_test_c.py b/pypy/module/_cffi_backend/test/_backend_test_c.py
--- a/pypy/module/_cffi_backend/test/_backend_test_c.py
+++ b/pypy/module/_cffi_backend/test/_backend_test_c.py
@@ -3689,3 +3689,5 @@
assert len(w) == 2
newp(new_pointer_type(BIntP), z3) # fine
assert len(w) == 2
+ # check that the warnings are associated with lines in this file
+ assert w[1].lineno == w[0].lineno + 4
diff --git a/rpython/rlib/rposix.py b/rpython/rlib/rposix.py
--- a/rpython/rlib/rposix.py
+++ b/rpython/rlib/rposix.py
@@ -2305,3 +2305,47 @@
self.cached_nosys = -1
_pipe2_syscall = ENoSysCache()
+
+# cpu count for linux, windows and mac (+ bsds)
+# note that the code is copied from cpython and split up here
+if sys.platform.startswith('linux'):
+ cpucount_eci = ExternalCompilationInfo(includes=["unistd.h"],
+ separate_module_sources=["""
+ RPY_EXTERN int _cpu_count(void) {
+ return sysconf(_SC_NPROCESSORS_ONLN);
+ }
+ """])
+elif sys.platform == "win32":
+ cpucount_eci = ExternalCompilationInfo(includes=["Windows.h"],
+ separate_module_sources=["""
+ RPY_EXTERN int _cpu_count(void) {
+ int ncpu = 0;
+ SYSTEM_INFO sysinfo;
+ GetSystemInfo(&sysinfo);
+ return sysinfo.dwNumberOfProcessors;
+ }
+ """])
+else:
+ cpucount_eci = ExternalCompilationInfo(includes=["sys/types.h", "sys/sysctl.h"],
+ separate_module_sources=["""
+ RPY_EXTERN int _cpu_count(void) {
+ int ncpu = 0;
+ #if defined(__DragonFly__) || \
+ defined(__OpenBSD__) || \
+ defined(__FreeBSD__) || \
+ defined(__NetBSD__) || \
+ defined(__APPLE__)
+ int mib[2];
+ size_t len = sizeof(ncpu);
+ mib[0] = CTL_HW;
+ mib[1] = HW_NCPU;
+ if (sysctl(mib, 2, &ncpu, &len, NULL, 0) != 0)
+ ncpu = 0;
+ #endif
+ return ncpu;
+ }
+ """])
+
+cpu_count = rffi.llexternal('_cpu_count', [], rffi.INT_real,
+ compilation_info=cpucount_eci)
+
diff --git a/rpython/rlib/test/test_rposix.py b/rpython/rlib/test/test_rposix.py
--- a/rpython/rlib/test/test_rposix.py
+++ b/rpython/rlib/test/test_rposix.py
@@ -608,3 +608,7 @@
def test_sync():
if sys.platform != 'win32':
rposix.sync()
+
+def test_cpu_count():
+ cc = rposix.cpu_count()
+ assert cc >= 1
More information about the pypy-commit
mailing list