rdb
ba51b2cdca
cppparser: Fix wide character literals in `#if`
2024-03-28 21:55:36 +01:00
rdb
e29b326dd8
cppparser: Parse macro directly following string literal
...
This allows the following C code to parse:
#define SUFFIX "bar"
const char *str = "foo"SUFFIX;
This is technically not valid C++ since C++ uses this syntax for custom string literals, but we might as well check if there is a macro defined with this name if we can't find a matching string literal and are about to throw an error
2024-03-28 21:09:40 +01:00
rdb
ae8d643907
cppparser: Prefer function over type when searching symbol
...
This is meant to fix the "stat problem", which means you can define a function with the same name as a struct, which is allowed, since you can still refer to the struct with an explicit `struct stat`.
It can be reproduced with the following code:
struct stat;
void stat();
void *ptr = (void *)stat;
2024-03-28 21:02:32 +01:00
rdb
50538203ce
cppparser: Fix regression parsing `defined MACRO` without parens
2024-03-28 20:00:47 +01:00
rdb
87d3a1d553
cppparser: Add missing include to fix non-unity build
2024-03-28 17:19:04 +01:00
rdb
fb68f82c5b
cppparser: Add preprocessor option (-E) to parse_file
...
This makes it easier to test the behaviour of the preprocessor
2024-03-28 17:15:24 +01:00
rdb
a769808af0
cppparser: Add missing keywords to CPPToken::output()
2024-03-28 17:01:47 +01:00
rdb
360216656e
cppparser: assorted preprocessor improvements:
...
* Fix function-like macro arguments being expanded even when they were participating in token expansion or stringification
* Fix __has_include with comma or closing parenthesis in angle-quoted filename
* Don't issue warning if macro is redefined with identical definition
* Fixes for extraneous spaces being added to expansions
* Assorted refactoring
This should resolve #1638 .
2024-03-28 17:01:24 +01:00
rdb
78f1a5b15a
cppparser: Fix crash redefining struct as typedef
...
This would crash on the following code:
struct aaa;
typedef struct {} aaa;
2024-03-28 11:18:41 +01:00
rdb
014fd97fef
cppparser: Fix string handling in expansion of macro arguments
...
See #1638
2024-03-28 10:07:12 +01:00
rdb
e63ba11af2
cppparser: Fix expansion of function macro used without parentheses
2024-03-28 01:18:19 +01:00
rdb
38a3048479
cppparser: Fix recursion in expanding function macro arguments
...
See #1635
2024-03-27 10:43:58 +01:00
rdb
c923cf6ee5
cppparser: Perform macro expansion on macro arguments
...
Fixes #1638
2024-03-27 02:26:14 +01:00
rdb
674c037c50
cppparser: Trim whitespace around macro arguments
2024-03-27 02:25:56 +01:00
rdb
c5ab6573b0
cppparser: Improve error messages involving macro expansion
...
Now shows the expansion of the macro if a parse error occurs in one.
2024-03-27 02:23:58 +01:00
rdb
6f6cbf318e
Merge branch 'release/1.10.x'
2024-03-26 17:08:52 +01:00
rdb
80147990cc
cppparser: Fix problems with recursive expansion in preprocessor
...
Other half of #1635
2024-03-26 15:55:50 +01:00
mingodad
685b98021c
cppparser: Skip comments after preprocessor directive
...
See #1635
2024-03-26 15:54:33 +01:00
rdb
af27a9523c
Merge branch 'release/1.10.x'
2024-03-12 15:39:16 +01:00
rdb
0ce7215ee9
interrogate: Fix typo in code
...
Fixes #1627
[skip ci]
2024-03-12 15:10:14 +01:00
darktohka
b049c891d1
ext: Use different names for each gen_next method
2024-02-10 23:49:28 +01:00
rdb
73360393df
Switch use of Py_INCREF to new Py_NewRef function
...
This is more idiomatic, simplifies the code, makes it easier to port to eg. HPy later on, and makes it easier to use the limited ABI (where it can be optimized to a tail call) later on
A polyfill is provided for compatibility with Python versions 3.8 and 3.9
2024-01-29 17:57:53 +01:00
rdb
4b748d1aba
dtoolutil: Fix issue compiling interrogate without HAVE_PYTHON
...
Closes #1608
Co-authored-by: pmp-p <mail.peny@free.fr>
2024-01-28 15:15:27 +01:00
rdb
128000b03a
dtoolutil: writelines() should accept any iterable
2024-01-28 15:15:27 +01:00
rdb
84ed141b2a
Squash merge webgl-port branch into master
...
Adds support for emscripten as a build target / platform, and adds a WebGL renderer back-end
2024-01-25 15:37:38 +01:00
rdb
b49dbaca2b
Report errors if calls to `close()` fail
2024-01-25 12:33:20 +01:00
rdb
26ce3eab29
Update version number to 1.10.15
2024-01-23 14:24:23 +01:00
rdb
c6c75092e1
interrogate: Reduce generated code, refactor bad args error code
2024-01-05 17:15:02 +01:00
rdb
e04daec2fe
Merge branch 'release/1.10.x'
2024-01-05 16:08:53 +01:00
rdb
7926a3a929
interrogate: Fix some pointless code generation case
...
Some cases of eg. inplace ternary operator would needlessly construct and then immediately destruct a tuple
2024-01-05 14:52:52 +01:00
rdb
37c9e58ea0
interrogate: Fix handling of RF_self / inplace binary operator
2024-01-05 14:32:26 +01:00
rdb
46e662bd8e
interrogate: Add cleverness to avoid writing out dead code
...
Hopefully fixes GCC 13 compile regression, see #1580
2024-01-05 13:56:02 +01:00
rdb
034f1ea358
patomic: Implement futexes on macOS using ulock API
...
This is what is also used by the libc++ futex implementation on macOS, and should be more efficient than the fallback hash table approach
2023-10-21 14:46:51 +02:00
rdb
39e4e4167c
CMake: Switch use of distutils.sysconfig to sysconfig in Python 3.12
...
Part of #1395
2023-10-15 11:43:42 +02:00
rdb
c48fcba3d8
CMake: build tinydisplay using CMake
...
Based on work by @toadkarter (#1487 ) and @pmp-p (#1547 )
Fixes #1481
2023-10-15 11:34:47 +02:00
rdb
e01cb590de
Merge branch 'release/1.10.x'
2023-10-13 23:24:48 +02:00
rdb
c45e14a563
interrogatedb: Switch T_OBJECT to T_OBJECT_EX for this_metatype
...
T_OBJECT has been deprecated.
2023-10-13 21:21:29 +02:00
Mitchell Stokes
893f5ce492
Fix assert on Py_SIZE(long) when using Python 3.12
...
Starting with Python 3.12, passing a PyLong into Py_SIZE() triggers an
assertion. PyLong (and the whole C API) is transitioning to be more
opaque and expose fewer implementation details.
2023-10-13 10:54:33 +02:00
rdb
86aa437804
dtoolbase: Fix static init ordering regression
...
This was a regression in bf65624298 that caused crashes on startup in static builds due to the "small" DeletedBufferChain array not being initialized early enough
For some reason it wasn't being constant-initialized, it is now by setting the _buffer_size field to 0 initially and changing it later in get_deleted_chain
2023-10-09 12:49:04 +02:00
rdb
3160d7f3e9
py_panda: Don't use _PyUnicode_EqualToASCIIString in Python 3.13+
...
See #1523
2023-08-03 22:22:45 +02:00
Disyer
596ff9ddb8
python: Remove usage of private _PyUnicode C API calls
2023-08-03 21:35:33 +03:00
rdb
8cbf93162a
cppparser: Backport enum scope fix to 1.10
...
From bc039a0476
2023-08-02 12:40:37 +02:00
rdb
bc039a0476
cppparser: Allow referencing enumerant within enum scope
2023-08-02 11:06:32 +02:00
WMOkiishi
ea84547805
general: Mark many constructors as `explicit`
...
Closes #1514
Fixes #1431
2023-08-02 08:18:43 +02:00
rdb
115a716a7d
Implement support for custom TypedWritable subclasses in Python
...
Fixes #1495
2023-07-26 19:55:40 +02:00
rdb
cdc95acf81
Merge branch 'release/1.10.x'
2023-05-08 20:08:48 +02:00
rdb
96b2f3a4d5
CMake: Split out Objective-C++ flags on macOS to fix crash
...
This now requires CMake 3.16
This is a similar fix as 987f2f036b but for CMake
2023-05-08 20:00:39 +02:00
rdb
75abee73e2
CMake: Disable FMOD Ex on macOS
...
There's no version of FMOD Ex that isn't linked against libstdc++.6.dylib, which is no longer available in the SDKs
2023-05-08 19:59:50 +02:00
rdb
600fa45d6e
CMake: Fix typo in CMAKE_CXX_FLAGS variable on MSVC
2023-05-08 19:59:15 +02:00
rdb
c958919037
Make API documentation for Filename and VirtualFileSystem clearer
...
Mention specifically that Filename methods act on the physical disk whereas VirtualFileSystem methods act on the VFS
Fixes #1493
[skip ci]
2023-05-08 11:19:03 +02:00