https://github.com/ska-sa/spead2

sort by:
Revision Author Date Message Commit Date
953d63f Fix dependency on numpy and spelling of test-numba There was a typo in pyproject.toml that made 4.0.0 not depend on numpy at runtime. Also normalise the 'test-numba' extra (from 'test_numba'). 08 September 2023, 12:52:18 UTC
2ddae17 Merge pull request #263 from ska-sa/pyi-removals Remove .pyi file entries for removed functionality 03 September 2023, 11:17:28 UTC
0307a94 Remove .pyi file entries for removed functionality This was missed in #247. 01 September 2023, 14:46:59 UTC
0d1cfe7 Fix changelog entry made in wrong place 01 September 2023, 14:44:23 UTC
d8b23f3 Merge pull request #262 from ska-sa/wheel-fixed-builddir Build wheels in fixed build directory on Linux 01 September 2023, 14:42:48 UTC
247be83 Build wheels in fixed build directory on Linux This makes the debug info more usable, since it doesn't reference ephemeral build directories. See https://github.com/mesonbuild/meson-python/issues/440#issuecomment-1702668770 for more info. 01 September 2023, 12:37:55 UTC
e505fb4 Merge pull request #260 from ska-sa/release-notes-4.0 Add release notes for 4.0.0 final release 01 September 2023, 11:07:21 UTC
764e9f6 Add release notes for 4.0.0 final release Also bump the version number and update docs to reference the MacOS wheels. 31 August 2023, 11:46:08 UTC
1946a68 Merge pull request #259 from ska-sa/fix-test-fh-leak Clear some objects at the end of tests 31 August 2023, 11:20:10 UTC
c450550 Merge pull request #258 from ska-sa/cibuildwheel-macos-squash Create wheels for MacOS 31 August 2023, 10:58:55 UTC
adf8423 Reference pytest-dev/pytest#11374 in comments 31 August 2023, 10:52:43 UTC
c852e21 Merge pull request #256 from ska-sa/no-cuda-dep meson: simplify cuda_dep 31 August 2023, 09:03:24 UTC
dedfa92 Merge pull request #257 from ska-sa/doc-min-meson Document that Meson 1.2+ is required 31 August 2023, 09:01:16 UTC
8ccf75a Create wheels for MacOS 31 August 2023, 08:45:33 UTC
fa8127e Document that Meson 1.2+ is required The meson_version in meson.build doesn't really work, because old versions error out when seeing the unknown license_files kwarg. 31 August 2023, 08:35:14 UTC
2c93274 meson: simplify cuda_dep Using `dependency('cuda')` is only necessary if linking CUDA into a project that isn't using nvcc, or if using extra libs like cublas. Neither applies here, so I've replaced cuda_dep with an empty dependency. Dependencies are still helpful because one can use a disabler if CUDA is not found or is disabled by user options. 31 August 2023, 08:30:21 UTC
0338834 Clear some objects at the end of tests This is something of a hack to avoid running out of file descriptors. Probably deeper changes (and maybe even API changes) are needed to ensure that stopping a stream/queue is sufficient to release file descriptors held by semaphores. 30 August 2023, 13:12:19 UTC
dca65e2 Remove ccache-path.sh It's no longer used. 30 August 2023, 12:47:49 UTC
a4cb226 Merge pull request #250 from ska-sa/meson-improvements Meson improvements 30 August 2023, 09:05:29 UTC
7b70151 Add a comment explaining why not dependency('pybind11') 29 August 2023, 09:32:38 UTC
904a9bd Move the version number into VERSION.txt This avoid needing to mess with sed to extract it from meson.build. 29 August 2023, 09:32:38 UTC
18f2c35 Change gen_loader.py to write to file This is the recommended custom_target approach for meson. 29 August 2023, 09:32:38 UTC
7b2bfe7 meson: use py instead of py.full_path() It's not necessary to get the path to run the Python installation as an executable. Also use the detected Python to run get_version.py, so that it will work even if there isn't a 'python3' in $PATH (particularly useful when running pip install with a Python that isn't on $PATH). 29 August 2023, 09:32:38 UTC
231c3b5 Remove ninja from build-system.requires meson-python automatically installs it if needed. 29 August 2023, 09:32:38 UTC
86d510c Merge pull request #249 from ska-sa/fix-gdrapi-detection Fix detection of gdrapi 29 August 2023, 07:11:32 UTC
79c9b0f Work around meson bug in detecting gdrapi See https://github.com/mesonbuild/meson/issues/12169. This is only an issue if the user has configured extra arguments in the meson configuration. 28 August 2023, 14:13:04 UTC
8f2383b Fix detection of gdrapi It was using the C++ compiler for detection, but the CUDA compiler when building. They have different options to configure them (cxx_flags versus cuda_flags). The implementation is more complex than I would have liked, because the cuda compiler support in meson doesn't implement has_function. 28 August 2023, 13:08:13 UTC
e8e7850 Merge pull request #248 from ska-sa/prepare-release-4.x-2 A few more fixes before 4.x release 28 August 2023, 11:27:29 UTC
2d2279c Increase the TTL of gpudirect_example.cu It wasn't working in our lab without this. 28 August 2023, 11:22:23 UTC
5429487 Fix another lingering reference to nv_peer_mem 28 August 2023, 11:21:10 UTC
3ef5f07 Add cuda_std=c++17 to meson.build meson doesn't pass cpp_std to nvcc when compiling C++. 28 August 2023, 11:16:50 UTC
d9f73f1 Update some comments in gpudirect_example 28 August 2023, 11:01:24 UTC
6cfe2a8 Bump shared-lib-version in preparation for release 28 August 2023, 10:58:49 UTC
16d9f51 Merge pull request #247 from ska-sa/prepare-release-4.x Prepare for 4.x release 28 August 2023, 09:51:44 UTC
e24e329 Merge pull request #246 from ska-sa/meson Switch to Meson build system 28 August 2023, 09:34:17 UTC
6daf52c Merge pull request #239 from ska-sa/cxx17 Update to require at least C++17 28 August 2023, 09:19:22 UTC
2fce3da Disable b_staticpic by default Meson defaults it to enabled, but it causes a performance regression compared to spead2 3.x. 28 August 2023, 08:27:55 UTC
a421cc6 CI improvements - Split linting into a separate step, that installs both Python 3.8 and 3.12 and hence should be able to run pip-compile (might need some tweaking to get paths right). - Use allow-prereleases on setup-python instead of specifying Python 3.12rc1 (so it will automatically switch to 3.12.0 on release). - Add a job that runs a matrix of build options to check for compilation failures. 27 August 2023, 17:35:54 UTC
1b7689d Remove all deprecated functionality 27 August 2023, 17:35:54 UTC
e50e75c Bump manylinux wheel versions of boost and rdma-core 27 August 2023, 17:35:54 UTC
77d99d8 Fix spead2_bench.py when ibverbs support is not compiled in 27 August 2023, 17:35:54 UTC
50b7b8f Fix pre-commit (black) errors on some files No idea how this has been passing CI up until now... 27 August 2023, 17:33:56 UTC
b5dc805 Remove target-version from tool.ruff No longer needed: ruff gets it from pyproject.python-requires. 27 August 2023, 17:33:56 UTC
2e49137 Fix more issues with combinations of options If CUDA is detected but ibv is not, it would try to build the gpudirect example; but it depends on ibv. 27 August 2023, 17:33:56 UTC
6736eaf Fix some bugs in detecting gdrapi If it wasn't detected, but CUDA was, it would try to build the gdrapi example anyway. Similarly if ibv wasn't detected but gdrapi was. Now make the gdrapi detection first check for ibv and cuda, and if it's not found, use a disabler. 27 August 2023, 17:33:56 UTC
2d16caf Don't try to detect ibv_hw_rate_limit without use_ibv Shouldn't really affect anything, but it give a smaller possible parameter space. 27 August 2023, 17:33:56 UTC
2162a75 Fix combination ibv=disabled mlx5dv=enabled Only try to detect mlx5dv if ibv libraries are found first. 27 August 2023, 17:33:56 UTC
03a90ca Write a draft changelog for 4.0.0b1 27 August 2023, 17:33:56 UTC
32306bf Bump some copyright notices that got missed 27 August 2023, 17:33:56 UTC
7a73a85 Note change in pcap detection on migration page 27 August 2023, 17:33:56 UTC
c267a3b Python: switch visibility to inlineshidden This makes the module fractionally smaller. It's the default for meson for Python 3.9 and later. Since pybind11 takes care of exporting symbols I assume it ought to be safe on 3.8 as well. 27 August 2023, 17:33:56 UTC
acd4192 Note limitations on editable installs. 27 August 2023, 17:33:56 UTC
dcc175e Remove build-time deps from requirements.in There is a separate CI script that extracts build requirements from pyproject.toml, so we don't need to duplicate the information. 27 August 2023, 17:33:56 UTC
df886ae Use sccache in Github Actions There are a few advantages over ccache: - It uses Github Action's cache directly, instead of an on-disk cache. That makes it viable for cibuildwheel since there are no issues with persisting the cache between runs. - It has an official Action to set it up. Also use the 'cache' key on the setup-python action instead of trying to do it by hand. 27 August 2023, 17:33:56 UTC
bb56fcc Remove installation of ccache from cibuildwheel It was ineffectual, because there were no hits even between wheels for different Python versions, and it is not persisted between runs in an way. Something like the workaround described in https://github.com/pypa/cibuildwheel/issues/1030 would be needed. 27 August 2023, 17:33:56 UTC
6d7e144 Install libpcap from source in cibuildwheel This allows deploying a more recent version of it in the wheels. 27 August 2023, 17:33:56 UTC
340c9da Make readthedocs work again Now that Meson is the build system, it needed revisiting. The good news is that readthedocs can install apt packages now, so install the package "properly" instead of doing hacky stuff with mocks. 27 August 2023, 17:33:56 UTC
4822e0a Add back support for building a shared library 27 August 2023, 17:33:56 UTC
676a5dc Add max_log_level config option Replaces --enable-debug-log 27 August 2023, 17:33:56 UTC
89e4958 Strip down .gitignore - meson does only out-of-tree builds, so it's not necessary to ignore most of the build artifacts - mypy now writes a .gitignore into its cache directory 27 August 2023, 17:33:56 UTC
af0fd5a Start updating documentation for migration to 4.x 27 August 2023, 17:33:56 UTC
36c5bae Fix debug symbol extraction at end of cibuildwheel 27 August 2023, 17:33:56 UTC
1aa87b1 Avoid compiling spead2_cmdline.o multiple times 27 August 2023, 15:46:13 UTC
dc0ca29 Implement split debug for Python wheels 27 August 2023, 15:46:13 UTC
7e17be0 CI: no longer install libboost-system-dev It's a placeholder package now that boost-system is header-only. 27 August 2023, 15:46:13 UTC
46fa485 Add TODO about PEP 639 27 August 2023, 15:46:13 UTC
43f134f Initial messing around with CI and Meson It will almost certainly fail (at least when it gets to cibuildwheel), but it'll be useful to see how far it gets. 27 August 2023, 15:46:13 UTC
353be0c Remove the old autotools/setuptools files. 27 August 2023, 15:46:13 UTC
4990931 Add meson.build for example directory Also add the detection for gdrapi. 27 August 2023, 15:46:13 UTC
58f7101 Skip building non-Python stuff in Python build 27 August 2023, 15:46:13 UTC
1eafaca Make meson.build the source of the version number spead2/_version.py is now generated rather than being the source of truth. 27 August 2023, 15:46:13 UTC
315f2b1 Handle libraries without pkgconfig setup - For rdma-core libraries, fall back to testing function presence in headers. - For pcap, use dependency('pcap', ...) when triggers special handling in meson. 27 August 2023, 15:46:13 UTC
3fded0b First attempt at generating Python build with meson 27 August 2023, 15:46:13 UTC
199596d Specify a minimum meson version Probably only 1.1 is required, but that's newer than most OSes will provide, so it might as well require 1.2 (the latest). 27 August 2023, 15:46:03 UTC
509b2be Generate common_loader_* as part of the build 27 August 2023, 15:46:03 UTC
25c2813 Initial work on meson build system 27 August 2023, 15:46:03 UTC
bafe539 Remove an unneeded lambda capture It was giving a warning on Clang and hence failing CI. 27 August 2023, 14:11:57 UTC
b25c65f Work around for GCC 9 It doesn't seem to properly handle [[maybe_unused]] on function parameters. 27 August 2023, 14:11:57 UTC
f8cfc72 Fix a number of compiler warnings I have no idea why these only started showing up after switching to Meson. They're all either unused variables (mostly function parameters that need to match a signature, but some dead code) and signed/unsigned comparisons. Some of them only showed up when using particular combinations of build options that weren't previously exercised. 27 August 2023, 14:11:57 UTC
0b56675 Make use of C++17 std::clamp 27 August 2023, 14:11:57 UTC
554d1df Make use of C++17 as_const 27 August 2023, 14:11:57 UTC
a9aa2a3 Get rid of definitions of constexpr members C++17 changes static constexpr class members to be implicitly inline, so it's no longer necessary to including a definition in a .cpp file. 27 August 2023, 14:11:57 UTC
461b251 Run CI with a wider range of compiler versions 27 August 2023, 14:11:57 UTC
9d8515e Use C++17 structured bindings to make code more readable 27 August 2023, 14:11:57 UTC
6c97fdf Use std::literals for chrono durations 27 August 2023, 14:11:57 UTC
c080716 Eliminate make_pair and make_tuple No longer needed in C++17 thanks to class template parameter deduction. 27 August 2023, 14:11:57 UTC
590d367 Update comment around cache_line_size 27 August 2023, 14:11:57 UTC
e9160d1 Introduce 'storage' class This replaces std::aligned_storage. It's a safer API, and aligned_storage is deprecated in C++23. Also make some use of std::launder where it seemed appropriate. Since I don't fully understand the rules around std::launder, I can't be sure I've put it in all the right places, but this should at least reduce the amount of undefined behaviour. 27 August 2023, 14:11:57 UTC
c39585b Use C++14 "..."s string syntax It's a bit more compact than std::string("...") 27 August 2023, 14:11:57 UTC
0eb5cc0 Simplify allocation of an aligned ringbuffer It seems like C++ (even C++11?) supports over-aligned types in automatic storage (it's just dynamic allocation that requires C++17), so the problem can be solved with `alignas` rather than doing alignment manually. 27 August 2023, 14:11:57 UTC
9436125 Make use of _t and _v helper types/values. 27 August 2023, 14:11:57 UTC
4e4e9c5 Make use of C++17 [[maybe_unused]] attribute This is more self-documenting and standardised than casting to void. 27 August 2023, 14:11:57 UTC
afbcf81 Use std::make_unique where appropriate This simplifies the pattern of creating a unique_ptr holding newly allocated memory. Since C++17 doesn't provide std::make_unique_for_overwrite (important for performance when allocating large arrays of raw storage space), add a home-brew implementation in common_unique.h. This file isn't intended to be part of the public API, so it is in the src directory rather than include (and fortunately it happens not to be needed by any of the header files). 27 August 2023, 14:11:57 UTC
e755e88 Avoid possible UB in test_ringbuffer.cpp When using placement new inside a char array on the stack, it wasn't laundering the pointer properly. I'm not 100% sure that's undefined behaviour, but it looks like the sort of thing std::launder is designed to protect against. 27 August 2023, 14:11:57 UTC
8c11ccc Reduce some copies in lambda expressions Use C++14 lambda capture initialisers to move instead of copy. 27 August 2023, 14:11:57 UTC
841bfc7 Update some comments around std::launder 27 August 2023, 14:11:57 UTC
6e612fc Use 'namespace A::B' C++17 syntax This reduces the code size a bit and makes it fractionally more readable. 27 August 2023, 14:11:57 UTC
4dc6f65 Simplify SPEAD2_PTMF macro Use C++17 features (auto template parameters and deduced return types) to significantly simplify the whole thing. It's also no longer necessary to fiddle with spurious GCC warnings, due to explicitly downcasting the this pointer. 27 August 2023, 14:11:57 UTC
93fb4b5 Simplify some return types using decltype(auto) 27 August 2023, 14:11:57 UTC
3385f73 Update an outdated comment referring to C++11 27 August 2023, 14:11:57 UTC
back to top