Author: Armin Rigo <[email protected]>
Branch:
Changeset: r88692:52e737c73e60
Date: 2016-11-28 11:20 +0100
http://bitbucket.org/pypy/pypy/changeset/52e737c73e60/
Log: Change the default again: if _nowrapper=True, then we assume the
default calling convention of 'c'. Looks reasonable because
_nowrapper should be used mostly for internal RPython helpers
written in C. A review of all usages seems to confirm this.
diff --git a/rpython/rlib/longlong2float.py b/rpython/rlib/longlong2float.py
--- a/rpython/rlib/longlong2float.py
+++ b/rpython/rlib/longlong2float.py
@@ -69,14 +69,12 @@
uint2singlefloat = rffi.llexternal(
"pypy__uint2singlefloat", [rffi.UINT], rffi.FLOAT,
_callable=uint2singlefloat_emulator, compilation_info=eci,
- _nowrapper=True, elidable_function=True, sandboxsafe=True,
- calling_conv='c')
+ _nowrapper=True, elidable_function=True, sandboxsafe=True)
singlefloat2uint = rffi.llexternal(
"pypy__singlefloat2uint", [rffi.FLOAT], rffi.UINT,
_callable=singlefloat2uint_emulator, compilation_info=eci,
- _nowrapper=True, elidable_function=True, sandboxsafe=True,
- calling_conv='c')
+ _nowrapper=True, elidable_function=True, sandboxsafe=True)
class Float2LongLongEntry(ExtRegistryEntry):
diff --git a/rpython/rtyper/lltypesystem/rffi.py
b/rpython/rtyper/lltypesystem/rffi.py
--- a/rpython/rtyper/lltypesystem/rffi.py
+++ b/rpython/rtyper/lltypesystem/rffi.py
@@ -74,8 +74,7 @@
def llexternal(name, args, result, _callable=None,
compilation_info=ExternalCompilationInfo(),
sandboxsafe=False, releasegil='auto',
- _nowrapper=False,
- calling_conv='unknown' if sys.platform == 'win32' else 'c',
+ _nowrapper=False, calling_conv=None,
elidable_function=False, macro=None,
random_effects_on_gcobjs='auto',
save_err=RFFI_ERR_NONE):
@@ -100,8 +99,14 @@
calling_conv: if 'unknown' or 'win', the C function is not directly seen
by the JIT. If 'c', it can be seen (depending on
- releasegil=False). For tests only, it defaults to 'c'.
+ releasegil=False). For tests only, or if _nowrapper,
+ it defaults to 'c'.
"""
+ if calling_conv is None:
+ if sys.platform == 'win32' and not _nowrapper:
+ calling_conv = 'unknown'
+ else:
+ calling_conv = 'c'
if _callable is not None:
assert callable(_callable)
ext_type = lltype.FuncType(args, result)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit