Neil Schemenauer
80731af9ee
Add "nogil" option for BOOST_PYTHON_MODULE_INIT.
...
Implement optional arguments for BOOST_PYTHON_MODULE_INIT and allow the
boost::python::mod_gil_not_used() option. This sets the
Py_MOD_GIL_NOT_USED flag for the extension module.
To define a module that supports free-threaded Python, define it
like this:
BOOST_PYTHON_MODULE(my_module, boost::python::mod_gil_not_used())
{
...
}
2025-11-06 19:48:14 -08:00
Neil Schemenauer
fc68878e02
Set the Py_MOD_GIL_NOT_USED flag on modules.
...
This indicates that the free-threaded build of Python can keep the
GIL disabled when the module is loaded. Without this module flag,
importing the module will cause the GIL to be re-enabled. A warning
is emitted if this happens.
2025-11-06 19:46:37 -08:00
Neil Schemenauer
cfbefe893c
Use re-entrant mutex to protect global state.
...
Add pymutex.hpp which implements a re-entrant mutex on top of Python's
PyMutex. Add BOOST_PYTHON_LOCK_STATE() macro that uses RAII to lock
mutable global state as required.
2025-11-06 19:43:33 -08:00
Neil Schemenauer
6f5f3b6607
Add work-around to crash in ~object_base().
...
For the free-threaded build (and possibly the debug build), it is not
safe to call Py_DECREF() if there is no valid Python thread-state.
2025-11-06 19:42:41 -08:00
Neil Schemenauer
cabb466057
Use strong reference APIs.
...
For the free-threaded build, it is not safe use borrowed references.
Another thread could deallocate the object and cause the reference to
become invalid. Replace API calls that borrow references with strong
reference APIs.
2025-11-06 19:41:00 -08:00
Abhay Kumar
97402f7925
🐛 Fix broken link to Jamroot in example docs
boost-1.90.0.beta1
boost-1.90.0
2025-11-03 10:14:34 -05:00
Anton Gladky
668bc7c106
Include missing header boost/type_traits/is_unsigned.hpp
...
During the Debian Packaging of new version it was found that
this header is missing during the rebuild with GCC-15.
2025-11-03 10:13:40 -05:00
Eisuke Kawashima
5f5f38fa8a
fix: fix quotation
2025-11-03 09:30:32 -05:00
Stefan Seefeld
cc873d9682
Fix documentation build error.
2025-11-03 08:40:38 -05:00
Stefan Seefeld
20de46cd0c
Update faber
2025-11-03 08:40:38 -05:00
Stefan Seefeld
5d7b9a0648
Stop testing c++98 support
2025-11-03 08:40:38 -05:00
Tom Kent
608ec27c4d
Updated to recent compilers/boost
2025-11-03 08:40:38 -05:00
Stefan Seefeld
7fd39323ac
Don't rely on Py_REFCNT to test upcast.
2025-11-03 08:40:38 -05:00
Eisuke Kawashima
2b6f667e98
chore: remove meaningless comparison
2025-10-25 15:23:44 -04:00
Eisuke Kawashima
aa458d2ca9
fix(test.properties): use doctest.ELLIPSIS for traceback
...
Since python 3.11 (PEP 657) traceback info is changed
fix #460
2025-10-25 15:22:21 -04:00
Eisuke Kawashima
16627261f1
fix(test.pickle): fix for change in the return value of object.__reduce__()
...
https://docs.python.org/3.11/library/pickle.html#object.__reduce__
fix #461
2025-10-25 14:14:07 -04:00
Stefan Seefeld
303299e677
log commands
2025-10-25 13:25:52 -04:00
Stefan Seefeld
cb95b611bb
Downgrade run-vcpkg dependency to avoid regression.
2025-10-25 13:25:52 -04:00
Eisuke Kawashima
b4fb28e99a
ci: update GitHub Actions
2025-10-23 22:14:55 -04:00
Stefan Seefeld
867f0dddfe
Fix windows header path.
2025-10-23 22:08:00 -04:00
Aditya Pillai
a40bb656ee
Use Py_REFCNT instead of ob_refcnt on Python 3.9 and above
2025-10-23 19:38:05 -04:00
Eisuke Kawashima
f604eb8d0f
fix(test.numpy/ufunc): fix import error and value comparison
2025-04-02 08:21:09 -04:00
Eisuke Kawashima
d30c1bb7a8
refactor: switch to python 3
2025-03-31 21:58:42 -04:00
Aditya Pillai
3e7be69e1e
Conditionally use Py_REFCNT
boost-1.89.0
boost-1.88.0
2025-03-10 15:10:12 -04:00
Aditya Pillai
cbdf1ce2a1
Use Py_REFCNT instead of ->ob_refcnt
...
Py_REFCNT was stabilized in 3.9, uses this official API instead of the
`ob_refcnt` field that doesn't exist in the free-threaded build of 3.13.
2025-03-10 15:10:12 -04:00
Stefan Seefeld
4fe3403584
Make sure to pass C++ version to preprocessor as well.
boost-1.88.0.beta1
2025-02-01 22:55:02 -05:00
Stefan Seefeld
b1b43f1e1a
Fix homebrew include path.
2025-02-01 22:55:02 -05:00
Peter Dimov
7b1960446b
Merge pull request #470 from boostorg/pr/fix-iterator-detail
...
Replace use of boost/iterator/detail/enable_if.hpp
2025-02-01 19:35:16 +02:00
Peter Dimov
2dc5a92727
Replace use of boost/iterator/detail/enable_if.hpp
2025-01-28 02:27:49 +02:00
sdarwin
4fc3afa3ac
Support newer version of Sphinx
2024-10-10 09:28:59 -04:00
Vitaly Buka
ff0ae9b29d
dynamic_cast before destructor
...
Call to the destructor ends lifetime of the object, including vptr
used by dynamic_cast.
boost-1.87.0
boost-1.87.0.beta1
2024-09-22 12:30:12 -04:00
Daniel Laügt
b988d70207
Alignment fixes
2024-09-21 21:56:41 -04:00
Stefan Seefeld
b3a28d7033
Use the expected return type.
2024-09-18 21:09:05 -04:00
Stefan Seefeld
3ea0cb8501
Upgrade CI platforms.
2024-09-18 21:09:05 -04:00
Jakob van Santen
95e53011d8
Conditionalize nested test for py2
...
__qualname__ didn't exist before python 3.3. Skip checks that depend on it if running in earlier Python versions
2024-09-18 10:36:45 -04:00
Jakob van Santen
301256cf1e
Avoid setting __doc__ on instance methods
2024-09-18 10:36:45 -04:00
Jakob van Santen
c76d67ef3f
Ensure that virtual default implementation has the same kwargs as dispatcher
2024-09-17 17:07:44 -04:00
Jakob van Santen
0102b31945
Unwrap back_reference in get_pytype()
...
This prevents back_reference parameters from decaying to "object" in py signatures
2024-09-17 17:07:44 -04:00
Jakob van Santen
4c6f40fb82
Add generated docstrings to property fget/fset
2024-09-17 17:07:44 -04:00
Jakob van Santen
d1910f3d65
Avoid degrading slice to object in generated sig
2024-09-17 17:07:44 -04:00
Jakob van Santen
c4e3b13dc2
Use qualname for enum repr
2024-09-17 17:07:44 -04:00
Jakob van Santen
a498e2458c
Qualify types defined in other modules
2024-09-17 17:07:44 -04:00
Jakob van Santen
7a3cc07042
Emit qualfied names in docstrings
2024-09-17 17:07:44 -04:00
Jakob van Santen
58b1a010bb
Set __qualname__ for Python >= 3.3
2024-09-17 17:07:44 -04:00
Rene Rivera
8ca8724ad9
Update build deps.
2024-08-18 13:16:00 -04:00
Rene Rivera
5a8d096135
Split b2 dependencies into public and private.
2024-08-18 13:16:00 -04:00
Rene Rivera
30bdbf3ae2
Move inter-lib dependencies to a project variable and into the build targets.
2024-08-18 13:16:00 -04:00
Rene Rivera
5a07cdb96b
Bump B2 require to 5.2
2024-08-18 13:16:00 -04:00
Rene Rivera
06fa956fe8
Add requires-b2 check to top-level build file.
2024-08-18 13:16:00 -04:00
Rene Rivera
9ab1742c46
Add missing NO_LIB usage requirements.
2024-08-18 13:16:00 -04:00