Commit Graph

1004 Commits

Author SHA1 Message Date
rdb da4e2cad9f express: Use monotonic clock on POSIX (has nanosecond precision) 2025-01-22 22:16:36 +01:00
rdb b51dd4d7bc Merge branch 'release/1.10.x' 2024-11-06 22:52:54 +01:00
rdb 0a4d22ad9f express: Fix VFS mount points not being listed as directories
Fixes #1244
2024-11-06 13:20:03 +01:00
rdb 6d54aee0c7 Remove runtime dependency on interrogatedb 2024-10-30 17:46:26 +01:00
rdb 7560a1edd1 Merge branch 'release/1.10.x' 2024-10-30 13:42:21 +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 beff684af3 Further thread safety changes for Python 3.13 free threading
See #1683
2024-09-19 20:43:06 +02: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 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 9517ffb320 Merge branch 'release/1.10.x' 2024-01-08 21:10:17 +01:00
kamgha fe63dee524 Assorted docstring fixes
Closes #1588
2024-01-08 19:53:46 +01:00
Disyer e8179e489f panda: Correct header guard names (#1525) 2023-08-05 14:50:28 +02:00
rdb c3e9f1738e Merge branch 'release/1.10.x' 2023-06-13 13:45:51 +02:00
rdb b79d8efce6 Don't use RTTI features when building with `-fno-rtti`
This should make it possible to use `-fno-rtti` in a C++ application even when Panda has been compiled with RTTI enabled.
2023-05-25 14:11:51 +02:00
rdb cdc95acf81 Merge branch 'release/1.10.x' 2023-05-08 20:08:48 +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 eefb51f510 dtoolutil: Add small_vector implementation and use it
This vector implementation does is optimized for the case of having only a small number of elements, which are stored directly on the vector object rather than being allocated from the heap.  If the capacity exceeds this small number, then a heap allocation is done.

This should improve performance in a couple of cases where vectors typically store 1 element and rarely more than that.
2023-02-22 16:48:11 +01:00
rdb 35348fd74a express: Do not rely on OpenSSL for MD5 hash support
These hashes are used in various places in the Panda codebase (for integrity checks, not for crypto), so using an internal implementation allows retaining this functionality when building Panda without OpenSSL.

Based on the following public domain implementation:
https://github.com/B-Con/crypto-algorithms
2023-02-22 16:47:14 +01:00
rdb 5e26aae1ff cleanup: Fix assorted issues uncovered by clang-tidy 2023-02-12 18:17:03 +01:00
rdb 1c37522026 Merge branch 'release/1.10.x' into master 2023-02-12 14:07:49 +01:00
rdb aaabb6a652 Fix assorted issues uncovered by clang-tidy 2023-02-12 13:55:59 +01:00
Frang 275fe32079
create PY_EXTENSION and friends (#1415) 2023-01-04 20:54:53 +01:00
Cary Sandvig 3247903d7b add more HAVE_PYTHON
Also add some more #endif comments.
2022-12-23 13:38:46 -05:00
rdb 92185bcb28 Merge branch 'release/1.10.x' 2022-12-19 16:42:29 +01:00
rdb 0911040999 express: Fix compile error with GCC 2022-12-19 16:38:19 +01:00
rdb e67cd74725 express: Implement `copy.deepcopy()` for PointerToArray
It actually makes a unique copy of the underlying array.
2022-12-19 16:22:00 +01:00
rdb e1b4083d6d Merge branch 'release/1.10.x' 2022-12-12 17:19:10 +01:00
rdb 75b12fe6e2 express: Fix a comment in datagram.cxx
[skip ci]
2022-12-10 19:06:39 +01:00
rdb 05b3fe2170 dtoolbase: Use `patomic<size_t>` for memory usage counters 2022-12-03 22:42:03 +01:00
rdb bf65624298 dtoolbase: Make MemoryHook constant-initialized
init_memory_hook() is no longer required, eliminating static initialization order issues

This required moving the DeletedBufferChain map elsewhere, which now also has a const-initialized array for relatively small allocations.

Also, deletedChain.T has been renamed to deletedChain.I

Fixes #539
2022-10-24 13:26:03 +02:00
rdb cee1de7338 general: Get rid of some coerce constructors where they make no sense 2022-10-20 21:00:05 +02:00
rdb d6ebd62034 express: Add peek_int16 and peek_uint16 to DatagramIterator 2022-10-04 15:46:53 +02:00
Derzsi Dániel d79709f004
express: Add support for bytes multifile encryption passwords (#1334) 2022-07-20 22:50:06 +02:00
rdb 671b16eb41 express: Fix vestigial reference to WIN32_VC macro 2022-05-10 16:21:40 +02:00
rdb ecf4d19e83 Merge branch 'release/1.10.x' 2022-05-10 16:12:36 +02:00
rdb fbea0056f5 general: Allow compiling Panda headers on Windows without NOMINMAX 2022-05-10 15:58:33 +02:00
rdb 3d31f117e0 express: Fix compilation error with GCC 2022-03-09 16:23:37 +01:00
rdb dae147ec0c Merge branch 'release/1.10.x' 2022-03-02 10:51:23 +01:00
rdb a0be50c769 general: Fix assorted compiler warnings 2022-03-01 16:09:07 +01:00
rdb 21377c8de5 Use secure versions of CRT getenv etc. when compiling with MSVC 2022-03-01 16:09:07 +01:00
rdb ac3aa64d33 express: Add docstring to DatagramIterator about Datagram lifetime
Related to #1262

[skip ci]
2022-03-01 15:14:01 +01:00
rdb 8034cb5a92 dtoolbase: Introduce patomic<> as replacement for AtomicAdjust
This typedefs to std::atomic<> when building with true threading, and uses a dummy implementation without.

This lets us use the full range of atomic operations offered by C++11, including explicit specification of memory fences.  Using barriers lets the compiler generate more optimal code since currently we are using the quite strict sequential-consistent memory ordering for all operations.  ReferenceCount has been changed to use the correct barriers (I hope).  This may especially make a difference on weak ordering systems such as ARM.

Over time we should gradually replace the use of AtomicAdjust with the new patomic file.
2022-01-30 01:53:36 +01:00
rdb e4013226e1 general: Remove vestigial typedef.h file 2021-12-12 18:37:49 +01:00
rdb eaf8cb79d5 Add pickle support to a variety of classes 2021-12-12 18:35:44 +01:00
rdb 429acd6e0d general: Remove use of proprietary unsigned integer typedefs 2021-12-08 14:51:52 +01:00
rdb 6a50a657be express: Add support for adding JAR-style signatures to .zip files
This is useful for writing apk/aab files in bdist_apps
2021-12-08 14:48:14 +01:00
rdb c977df33a3 express: Fix issue on platforms without signed cha 2021-12-05 00:01:24 +01:00
rdb 1739cef318 Merge branch 'release/1.10.x' into incoming 2021-08-31 14:03:57 +02:00
rdb 32b78a382a express: Protect clock debug print with is_debug() check 2021-08-30 14:00:59 +02:00
rdb e9e1bb1bc6 dtoolutil/express: Resolving empty filename should yield no result
See #1140 - I may revert this if someone can demonstrate a compelling use case (for current directory, you can use "." instead), but it seems to have the potential to cause unintuitive behavior.
2021-04-09 18:26:00 +02:00