Commit Graph

2633 Commits

Author SHA1 Message Date
rdb c352e92dbc dtoolbase: Fix out-of-bounds access in pdtoa.cxx 2025-10-15 21:22:34 +02:00
rdb 86ba156a7b py_compat: Update for Python 3.13 and 3.14 2025-08-28 11:33:12 +02:00
rdb 7d7a08e66f cppparser: Consider reference types destructible
Fixes #1743
2025-07-28 11:11:32 +02:00
rdb fcf619d606 Update version numbers to 1.10.16 2025-02-25 17:33:34 +01:00
rdb 50b984cffd dtoolbase: Fix test failure on 32-bit Windows with pftoa 2024-10-31 23:50:27 +01:00
rdb ff91f127bf py_compat: Fix Python 2.7 compilation error
This code never actually gets compiled in Python 3

[skip ci]
2024-10-30 21:52:23 +01:00
rdb f47b34d2a1 Fix remaining uses of ._PyType member in extension code
This should be replaced with Dtool_GetPyTypeObject, hiding the implementation details a bit so that we can more easily change the underlying structure if we need later

Also adds Py_NewRef to py_compat.h, backporting from master
2024-10-30 13:26:34 +01:00
rdb 0ba2aadcd6 Introduce Py_IS_TYPE, use for Py_TYPE comparisons 2024-10-30 13:17:11 +01:00
rdb 64454b1c9f Replace direct uses of ob_type, which gives problems in nogil build 2024-10-30 13:17:11 +01:00
rdb cdafd81764 Fix compilation issues with Python 3.13 2024-09-19 15:47:50 +02:00
rdb 78ace53dbe dtoolutil: Fix typo in pfstream causing compiler warning 2024-08-14 19:08:49 +02:00
rdb ddaeb05367 Fix compilation when building without bison 2024-08-14 19:08:16 +02:00
rdb 8c8cbeea98 linmath: For repr, use as much precision as needed for roundtrip
Will use as few digits as is necessary to ensure that round-tripping the same number with pstrtod will result in the same vector.  This prevents eg. 3.3 formatting as 3.29999995 while still ensuring that two floats that are not equal (other than nan) are guaranteed to have a different string representation.

Uses a hacky pftoa function that can be abandoned as soon as we adopt C++17, which has to_chars that does what we need

Fixes #1671
2024-08-07 17:24:11 +02:00
rdb ca7ba4eab3 py_panda: Add Dtool_GetPyTypeObject macro
This is a cleaner, future-proof way of accessing a Panda type as PyTypeObject pointer
2024-08-07 15:53:27 +02:00
rdb 105f938d68 interrogate: Fix non-deterministic order of external import types
Fixes #1651
2024-05-28 11:11:21 +02: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 0ce7215ee9 interrogate: Fix typo in code
Fixes #1627

[skip ci]
2024-03-12 15:10:14 +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 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
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 3160d7f3e9 py_panda: Don't use _PyUnicode_EqualToASCIIString in Python 3.13+
See #1523
2023-08-03 22:22:45 +02:00
rdb 8cbf93162a cppparser: Backport enum scope fix to 1.10
From bc039a0476
2023-08-02 12:40:37 +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
rdb 5d833c988a interrogate: Support explicit `cls` parameter for static methods 2023-05-05 10:55:06 +02:00
rdb 68927cad0b interrogate: Code size reduction for generated wrappers
No need to have a separate entry in the string table for every possible class for this uncommon error message
2023-03-09 11:00:36 +01:00
rdb aaabb6a652 Fix assorted issues uncovered by clang-tidy 2023-02-12 13:55:59 +01:00
rdb a9e9cfae1c py_panda: Fix definition of _PyErr_OCCURRED for Python >3.12.0a5
It should not be redefined for Python versions after 3.3.3, and if it's not defined by Python, it should just map to PyErr_Occurred()

See also #1457
2023-02-12 13:22:16 +01:00
rdb 1867094afe Bump version number on release/1.10.x branch to 1.10.14 2023-01-09 13:25:26 +01:00
rdb a9e5d84d27 notify: Fix crash when using set_ostream_ptr from Python
Also allow passing in None

Fixes #1371 (and maybe also #319)
2022-12-09 17:34:27 +01:00
rdb 32f9054067 prc: Add `ConfigVariableFilename.__fspath__()`
Fixes #1406
2022-12-06 12:52:44 +01:00
rdb d621df47ac prc: Fix bf-cbc encryption/decryption regression with OpenSSL 3.0
Loads the legacy provider to continue supporting this algorithm
2022-12-04 19:22:26 +01:00
rdb 20459118e2 dtoolutil: Add XDG_STATE_HOME on Linux 2022-12-01 12:56:45 +01:00
rdb 5aad1d8404 interrogate: Change error message to mention interrogate
This makes it more obvious that the error is coming from interrogate when encountering a parse error in a build log
2022-11-29 20:14:33 +01:00
rdb 50cfdebd9c pstats: Integrate Python profiler with PStats
Enabled with `pstats-python-profiler 1`, requires recent version of PStats server.

Currently, it is limited to the main thread only.  Support for other threads may be added at a later date.
2022-11-29 16:00:09 +01:00
rdb 11746457ff interrogate: Fix invalid syntax for `make()` coerce ctor with kwargs
[skip ci]
2022-11-07 18:03:41 +01:00
rdb d8a537b59b dtoolbase: Add comment clarifying assertion in DeletedBufferChain
[skip ci]
2022-10-31 19:26:59 +01:00
rdb 9a53a3bf31 cppparser: Fix an instance of pvector being used instead of `std::vector`
Also see #539 (but doesn't fully resolve this case because DSearchPath also uses pvector)

[skip ci]
2022-10-24 13:43:29 +02:00
rdb dd662a6eaa cppparser: Fix syntax error with C++11 attributes in declarators 2022-10-23 17:01:02 +02:00
rdb bb8b08a690 interrogatedb: Add `interrogate_wrapper_is_extension()` function 2022-10-20 10:09:45 +02:00
rdb 25d11b3b17 interrogatedb: Add more query functions for seq/map elements 2022-10-19 16:04:37 +02:00
rdb 834be5c7a0 interrogate: Fix some badly formatted code 2022-10-10 15:10:53 +02:00
rdb e6036b5209 interrogatedb: More queries for function wrappers:
- `interrogate_wrapper_function(wrapper)`
- `interrogate_wrapper_is_copy_constructor(wrapper)`
- `interrogate_wrapper_is_coerce_constructor(wrapper)`
2022-10-10 15:09:28 +02:00
DJs3000 f6fac95a78 Added e2k support (MCST Elbrus 2000) (#1367)
Closes #1367
2022-10-03 18:29:41 +02:00
Paul m. p. P 590531a0b2 py_panda: Fix compilation issue with Python 3.11
(Cherry-picked from 833ad89eba)
2022-09-01 19:18:46 +02:00
WMOkiishi 813490b2c7 interrogatedb: Add functions to interrogate_interface.h:
- `interrogate_function_is_unary_op`
- `interrogate_function_is_operator_typecast`
- `interrogate_type_is_array`
- `interrogate_type_array_size`

Closes #1362
2022-08-31 11:56:10 +02:00
rdb cb400b5e17 interrogatedb: Add functions to obtain getters of make-seqs 2022-07-24 21:37:44 +02:00