bpo-40280: Optimize ints and and startup on wasm (GH-29887)

This commit is contained in:
Christian Heimes 2021-12-02 13:19:30 +02:00 committed by GitHub
parent a6c3b0faa1
commit cb8f491f46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 5 deletions

View File

@ -87,13 +87,17 @@ Used in: Py_SAFE_DOWNCAST
/* If PYLONG_BITS_IN_DIGIT is not defined then we'll use 30-bit digits if all
the necessary integer types are available, and we're on a 64-bit platform
(as determined by SIZEOF_VOID_P); otherwise we use 15-bit digits. */
(as determined by SIZEOF_VOID_P); otherwise we use 15-bit digits.
From pyodide: WASM has 32 bit pointers but has native 64 bit arithmetic
so it is more efficient to use 30 bit digits.
*/
#ifndef PYLONG_BITS_IN_DIGIT
#if SIZEOF_VOID_P >= 8
#define PYLONG_BITS_IN_DIGIT 30
#if SIZEOF_VOID_P >= 8 || defined(__wasm__)
# define PYLONG_BITS_IN_DIGIT 30
#else
#define PYLONG_BITS_IN_DIGIT 15
# define PYLONG_BITS_IN_DIGIT 15
#endif
#endif

View File

@ -2145,7 +2145,11 @@ is_valid_fd(int fd)
if (fd < 0) {
return 0;
}
#if defined(F_GETFD) && (defined(__linux__) || defined(__APPLE__) || defined(MS_WINDOWS))
#if defined(F_GETFD) && ( \
defined(__linux__) || \
defined(__APPLE__) || \
defined(MS_WINDOWS) || \
defined(__wasm__))
int res;
_Py_BEGIN_SUPPRESS_IPH
res = fcntl(fd, F_GETFD);