rdb
3d55945535
interrogatedb: Add new functions to interrogate_interface.h:
...
- `interrogate_function_is_constructor()`
- `interrogate_function_is_destructor()`
- `interrogate_wrapper_parameter_is_optional()`
- `interrogate_wrapper_parameter_is_scoped_enum()`
- `interrogate_wrapper_parameter_is_final()`
Only `interrogate_wrapper_parameter_is_optional()` requires a rebuild of the database with the new changes.
2022-05-10 15:58:34 +02:00
rdb
6ab6acfbaf
interrogate: Do not write wrappers taking rvalue reference to interrogatedb
...
These are not actually exported by the Python binding generator anyway
2022-05-10 15:58:34 +02:00
rdb
42a19860d5
Fix errors when compiling headers with MinGW
2022-05-10 15:58:33 +02:00
rdb
fbea0056f5
general: Allow compiling Panda headers on Windows without NOMINMAX
2022-05-10 15:58:33 +02:00
rdb
70415af210
dtoolutil: Set system malloc tag to mimalloc when enabled
2022-03-01 15:12:38 +01:00
rdb
a37dfa727e
makepanda: Support building with mimalloc on Windows, experimentally
...
Partial backport of 07545bc9e3 for Windows, requires building with `--override USE_MEMORY_MIMALLOC=1 --override USE_DELETED_CHAIN=UNDEF` for optimum effect
2022-02-06 15:29:25 +01:00
rdb
14bdcf40fb
Bump version number on release/1.10.x branch to 1.10.12
2022-01-12 10:22:52 +01:00
Stephen A. Imhoff
64345c71b6
Update version number on release/1.10.x branch to 1.10.11
2021-10-14 20:15:51 +02:00
rdb
1fe5632ce2
interrogatedb: Fix compilation error on Windows due to typo
2021-08-30 21:37:54 +02:00
rdb
4a33e8866e
dtoolbase: Add missing overloads for std::round on macOS 10.6
2021-08-04 13:35:27 +02:00
rdb
2a5b5030ba
dtoolbase: Fix ability to use std::round() compiling for macOS 10.6
2021-08-04 13:18:43 +02:00
rdb
addbc8a2e8
dtoolutil: Work around odd Linux bug with lseek on a directory fd
...
Fixes #1140
2021-04-08 12:07:00 +02:00
rdb
f3181bf684
Update version number on release/1.10.x branch to 1.10.10
2021-03-31 17:26:06 +02:00
rdb
bdb2ef1631
pipeline: Fix crash upon exception in custom thread
...
We can't call PyErr_Restore() without a valid thread state, which won't exist in a custom thread if we just called PyGILState_Release(). Not sure how this has ever worked.
2021-03-01 16:19:53 +01:00
rdb
eab1308438
interrogate: Fix bug sorting overloads of AsyncFuture::set_result()
2021-03-01 10:59:02 +01:00
rdb
4b24ac86a5
dtoolbase: Fix issues building with C++20
2021-03-01 10:16:03 +01:00
rdb
9d9337dc4d
dtoolutil: Fix Filename division operator in Python 3
2021-02-22 18:14:12 +01:00
rdb
601ca323f5
interrogate: Support __truediv__, __floordiv__, etc. special methods
2021-02-22 18:13:34 +01:00
rdb
08f344b00c
dtool: Fix memory leak in OEncryptStream/IDecryptStream
...
Fixes #1114
2021-02-16 11:33:39 +01:00
rdb
4dfe651133
prc: Fix istream/ostream/iostream properties of StreamWrapper
2021-02-15 11:13:33 +01:00
rdb
c89631488b
prc: Add properties to ConfigPageManager
2021-02-05 23:51:25 +01:00
rdb
54638bfc10
dtoolutil: Allow overriding PandaSystem::get_build_date()
...
This is useful to create bit-for-bit reproducible builds. In the buildbots, we set it to the timestamp of the latest commit.
2021-01-18 16:41:22 +01:00
rdb
0b53355347
interrogate: respect SOURCE_DATE_EPOCH setting for file identifiers
...
This can be used to ensure that the build is bit-for-bit reproducible.
See https://reproducible-builds.org/docs/source-date-epoch/
2021-01-18 02:34:16 +01:00
rdb
a7042091be
py_panda: backport some py_compat.h definitions
2021-01-01 16:37:21 +01:00
rdb
99f9352e76
interrogate: improvements to __setstate__ handling:
...
* Force single arg variant, easing argument parsing
* Allow defining __setstate__ taking multiple args, leading to tuple unpack
* Allow __setstate__ to be called on already initialized object (useful with __reduce__)
2021-01-01 15:57:41 +01:00
rdb
3e1d4aa6b5
interrogate: Fix memory leak in __setstate__
2020-12-31 18:12:52 +01:00
rdb
1793c9a938
interrogate: Fix __setstate__ not working for subclasses
2020-12-31 18:11:50 +01:00
rdb
7d5fee3066
Update version number on release/1.10.x branch to 1.10.9
2020-12-29 12:50:02 +01:00
rdb
1b8c4e0029
dtoolutil: Fix compile warning in ExecutionEnvironment
2020-12-22 23:14:59 +01:00
rdb
30bca7a119
dtoolutil: fix ExecutionEnvironment::has_environment_variable() for shadowed var
...
Fixes MAIN_DIR being set more than once (which seems to avoid a compiler bug in an opt4 build).
2020-12-22 16:22:45 +01:00
rdb
74983d19a4
dtoolbase: Fix small memory leak in NeverFreeMemory
...
It's using a set purely keyed by number of remaining bytes, so if there are two pages with the exact same number of remaining bytes, one of them gets lost.
See #1077
2020-12-20 00:19:37 +01:00
rdb
951c182c0e
makepanda: Preparatory changes for Big Sur / arm64 builds
2020-11-30 19:46:20 +01:00
rdb
93900a203e
putil: Backport part of 9d8c523dfa
...
Fixes #886
2020-11-17 23:36:06 +01:00
rdb
a6e6826939
interrogate: support __getstate__ and __setstate__
...
The latter in particular will be called instead of __init__, so must construct the object.
2020-11-17 22:35:25 +01:00
rdb
0e70fcf1ef
Bump version number on release/1.10.x branch to 1.10.8
2020-10-02 12:15:31 +02:00
rdb
5655e97ec1
interrogate: fix misbehaving == and != operator if only < is defined
...
Fixes comparison of two empty RenderEffects objects
2020-09-16 23:21:16 +02:00
rdb
2b3a1d9d73
prc: StreamReader should hold GIL for PyBytes_FromStringAndSize
...
This is due to python/cpython#21074 , which causes a segfault in the latest Python master when creating a bytes object of size 0.
readlines() has been reimplemented to use a C++ vector in order to prevent constantly re-locking and unlocking the GIL for every line.
2020-09-12 22:53:37 +02:00
rdb
2402594808
interrogatedb: Fix faulty version comparison in Python 3.10
2020-09-12 22:50:29 +02:00
rdb
dabab90415
interrogate: Fix compilation error of bindings with Python 3.9+
2020-09-12 22:50:03 +02:00
rdb
3daf1ae1b1
general: Assorted API reference fixes
2020-09-09 18:03:49 +02:00
rdb
ab6bf5f4f7
general: Add workaround for Windows bug in various uses of isprint()
...
See #994 ; there is a regression in certain versions of the Windows CRT that gives the wrong result for isprint(). This adds workarounds to various potentially affected locations where isprint() is being used.
2020-08-21 14:51:42 +02:00
LD
9f0fc0a594
dtoolbase: Fix bad double-prec NaN/inf detection in release build
...
Fixes #987
Closes #988
2020-08-17 12:16:33 +02:00
rdb
0b19afa1a3
parser-inc: fix invalid template args for std::map<>
...
This fixes an interrogate warning.
2020-06-15 15:20:38 +02:00
rdb
f295b28369
cppparser: update prebuilt cppBison files
2020-06-14 12:20:40 +02:00
rdb
16f2958adb
cppparser: support sizeof operator with constexpr
2020-06-14 12:12:27 +02:00
rdb
43961718fa
parser-inc: add missing template args to std containers
2020-06-14 12:11:42 +02:00
rdb
97e6a314b1
cppparser: support arbitrary constant expression in bitfields
2020-06-14 11:31:58 +02:00
rdb
9159fc1029
operator delete should check for null pointer before deallocating
...
It is a pervasive belief that using "delete" with a null pointer is safe, so our custom delete operators should also handle this case correctly.
This may fix regressions introduced by #934
2020-05-05 18:13:13 +02:00
rdb
68d094dba4
dtoolutil: fix buffer overrun on FreeBSD extracting long cmdline args
...
This happens when compiling with CMake, which passes very long command-lines.
2020-05-05 13:20:20 +02:00
rdb
5489f66a62
Bump version number on release/1.10.x branch to 1.10.7
2020-03-30 13:52:11 +02:00
rdb
0b87673747
dtoolbase: fix compilation error with musl
...
Fixes #875
2020-03-01 15:14:15 +01:00
kamgha
c2866ea4ed
Fix includes for Windows on case-sensitive filesystems
...
Closes #866
2020-02-22 12:55:45 +01:00
rdb
4ef8e5228e
interrogate: fix ability to return ReferenceCount-like classes
...
Classes with virtual ref(), unref() and get_ref_count() methods, like RecorderBase, could not be returned by PT() from methods because they didn't inherit from ReferenceCount. However, classes do not need to inherit ReferenceCount to be able to be tracked by a PointerTo, and defining an abstract base class with pure virtual ref()/unref()/get_ref_count() is a way to avoid dual inheritance of ReferenceCount.
2020-02-22 12:10:55 +01:00
rdb
2960ae60e2
Bump version number on release/1.10.x branch to 1.10.6
...
[skip ci]
2020-01-13 15:05:39 +01:00
rdb
ac85b05400
py_compat: fix _PyObject_CallNoArg in Python 3.5
2019-12-25 16:32:19 +01:00
rdb
97a19c278b
parser-inc: define __SIZE_TYPE__ and __PTRDIFF_TYPE__
...
This fixes an Interrogate parse error in termux when /usr/include gets added as -S argument
2019-12-08 10:28:50 +01:00
rdb
1b863ead55
cppparser: fix finding types in explicitly specialized template class
2019-11-09 20:26:33 +01:00
rdb
4098f55d70
dtoolutil: record stdlib (libc++ vs libstdc++) in PandaSystem
...
This is particularly relevant on macOS, for finding out which stdlib Panda was compiled with.
2019-10-25 10:21:30 +02:00
rdb
c6990b9f9b
prc: fix possible stack overflow in StreamReader
...
Fixes #754
2019-10-08 19:44:23 +02:00
rdb
3c9591cfbf
interrogate: envelop function calls in parentheses
...
This reduces the risk of calling a preprocessor macro instead of a method.
2019-10-08 19:43:34 +02:00
rdb
fb5440bd07
cppparser: hack fix for method defs in parentheses
2019-10-08 19:43:34 +02:00
rdb
657af0edb5
cppparser: don't expand function-style macro if not followed by (
2019-10-07 18:38:21 +02:00
rdb
343c808fc4
dtoolbase: fix repeated calls to TypeRegistry::ptr() in register_type
2019-09-16 21:09:15 +02:00
rdb
f4926bff20
Fix a variety of ABI compatibility issues
...
We need third-party extensions that link with the Panda3D libraries to continue to work when shipping them with the optimized libraries that deploy-ng uses. To do this, we need the optimized build not to omit symbols that these extensions might depend on.
2019-09-16 03:33:09 +02:00
rdb
5a23821ac1
notify: work around GCC 4.7 compilation issue with constexpr
...
This can be reverted on master if we can verify that it does work with GCC 4.8.
2019-09-16 03:27:22 +02:00
rdb
d7681b23d3
notify: fix ABI incompatibility with NDEBUG on Windows
...
On MSVC (not with GCC/clang), adding `static` changes the mangled symbol name, so we shouldn't add that when building with NDEBUG. On GCC/clang, it doesn't, but adding `const` does, and C++11 rules make `constexpr` methods implicitly `const`, so I've removed the `constexpr` variants from NotifyCategoryProxy for now. Hopefully the compiler is still smart enough to compile out any references when compiling with NDEBUG.
2019-09-15 20:24:58 +02:00
rdb
72b1814331
interrogate: fix comment in C bindings for default arguments
...
Fixes #732
2019-09-10 09:37:25 +02:00
rdb
b3f3f53e01
interrogate: fix missing std:: prefix for string_holder
2019-09-10 09:37:25 +02:00
Paul m. p. P
35b80d0751
interrogate: add missing async/await keywords
...
Closes #735
2019-09-10 09:37:24 +02:00
rdb
57ff1a5441
interrogate: remove vestigial code causing assert for C bindings
...
Fixes #722
2019-09-03 12:15:02 +02:00
rdb
d5a576f3cb
Bump version number on release/1.10.x branch to 1.10.5
2019-08-20 13:23:11 +02:00
rdb
df8ccdb7ab
Add support for Python 3.8
2019-08-13 17:48:32 +02:00
rdb
b141483b22
notify: fix macOS build, don't include <atomic> if we don't have it
2019-08-13 13:48:17 +02:00
rdb
a86bdcfe3f
notify: support setting notify-output after static init time
...
Previously it was only possible to set this in the default-loaded Config.prc file; now it is possible to set this at any time, though it can only be set once from its default value and not changed after it has already been set to something other than the default value.
2019-08-03 10:36:00 +02:00
rdb
e080d33e31
interrogate: temp hack to make encrypt_string return bytes
...
Fixes #684
2019-07-10 09:54:57 +02:00
rdb
ff12deeba4
Raise version number to 1.10.4 on release/1.10.x branch
...
[skip ci]
2019-06-07 22:16:41 +02:00
Sam Edwards
f21830d2a8
dtoolutil: Fix UB when musl's dlinfo(RTLD_DI_LINKMAP) fails
2019-05-29 17:27:55 -06:00
rdb
204cbe4464
interrogate: support unicode characters in Python 3 for 'char' arg
...
Fixes #626
2019-05-01 17:05:12 +02:00
rdb
3ca3dfd13a
interrogate: fix in-place or (|=) operators (see #588 )
2019-04-14 17:10:52 +02:00
rdb
a8ceac919a
Raise version number to 1.10.3 on release/1.10.x branch
2019-03-12 18:08:19 +01:00
rdb
a634e729c8
interrogate: fix uninitialized var, fixes sporadic nb_true_divide
...
This was a regression introduced by fa6c066b2f (which in turn fixed #529 )
2019-03-08 11:53:45 +01:00
rdb
12eeff0dec
py_panda: fix memory leak accessing map/seq properties
2019-03-07 17:33:21 +01:00
rdb
8e4add0326
interrogate: fix refcount trouble assigning PyObject* properties
...
In particular, this fixes accessing PythonTask.__dict__
2019-03-04 16:46:28 +01:00
rdb
fa6c066b2f
interrogate: enable true division in Python 2 as well
...
This allows using "from __future__ import division" and get the expected result for divisions in Python 2.
Fixes #529
2019-03-03 10:29:39 +01:00
rdb
5e9c478b1a
Raise version number to 1.10.2 on release/1.10.x branch
...
[skip ci]
2019-02-18 12:50:28 +01:00
rdb
5310945f4c
py_panda: fix use of macro that was removed in Python 3.8
2019-02-11 23:36:30 +01:00
rdb
666568a513
prc: fix recursive use of non-recursive mutex
2019-02-06 22:10:39 +01:00
rdb
3a6f7fcde1
dtoolbase: docstring clarification for record_python_type
...
[skip ci]
2019-01-31 00:11:21 +01:00
rdb
1d9334f578
parser-inc: add atomic_int, etc. typedefs
2019-01-30 23:59:34 +01:00
rdb
376cef51c4
interrogate: fix Python 3 crash with optional std::wstring args
...
This would cause PyMem_Free to be called on an uninitialized pointer if a default argument was not specified.
Fixes #542
2019-01-26 19:27:50 +01:00
rdb
403e56817a
dtoolbase: fix x86 compilation error on Android
2019-01-26 19:22:44 +01:00
rdb
ba4036e290
prc: clear error flag if loading deploy-ng blobinfo fails
2019-01-19 23:12:46 +01:00
rdb
6eca44464e
load_dso: prevent load_dso_error() from returning old error
...
This happens if load_dso fails due to being unable to find the file, but not setting the dlerror flag and therefore causing a misleading error message to be shown.
2019-01-19 23:10:46 +01:00
rdb
84a1315104
More fixes to work around broken libc++ eof() in Mac OS X 10.7
2019-01-10 21:53:02 +01:00
rdb
7132d09e7e
Bump version to 1.10.1
...
[skip ci]
2019-01-06 09:34:55 +01:00
Sam Edwards
0c890f059d
interrogate: Export Python entry points with EXPORT_CLASS
...
Closes #505
2019-01-03 12:39:22 +01:00
Sam Edwards
ce4985a333
interrogatedb: Fix missing 'static' keyword
2019-01-02 10:18:59 -07:00
rdb
ac8be1a2e6
py_panda: fix int-to-enum conversion in Python 2
...
Fixes #498
2019-01-01 16:32:04 +01:00
rdb
0a43008313
py_panda: avoid duplicate symbol issues with LINK_ALL_STATIC
...
Fixes #478
2018-12-30 16:42:50 +01:00
Sam Edwards
818fdbd232
interrogate: Tidy up hash_string function
...
The main motivation behind this change is to get rid of a
signed integer overflow that sometimes happens in the prime
multiplication step, which is (per the C++ spec) undefined
behavior. However, it's probably for the best to use only
unsigned int when the function is clearly trying to avoid
negative values.
Not that I suspect it matters much, but I have also heavily
tested that the behavior of the function is unchanged (at
least on PC hardware - signed integer overflow doesn't
behave portably) although it may now be slightly faster due
to the fact that I have removed the floating-point math.
2018-12-30 04:21:34 -07:00