Nanobind to dev#71
Open
DasVinch wants to merge 29 commits into
Open
Conversation
…rocessInfo/FPS as packaged in pyMilk
…/writetime/acqtime mixups.
…e of opened IPC handles with refcount (otherwise cannot open the same GPU SHM twice in the same process)
Member
Author
|
No ABI changes. @a-sevin @floferreira you may be interested. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Complex PR with a number of things developed in the nanobind branch (a few of which reverted for dev) in synergy with the nanobind branch of pyMilk (https://github.com/milk-org/pyMilk/tree/nanobind) (which is to become pyMilk's dev branch soon).
The pyMilk nanobind branch wraps all of that in gcovr and provides testing and decent coverage (ImageStreamIO.c 43%; ImageStreamIOWrap.cpp 74%) of this merge.
Included:
migrate python_module to nanobind away from pybind11
Increase package version to 2.1 (not ImageStruct, still 1.0.3) [NO: that's the milk version, I got mixed up.]
A couple missing
constin some ISIO function signatures for stringsAtomic creation of SHM files (creating under tmp filename, then atomic mv)
refactor of destroyIm / closeIm so that destroyIm actually equals closeIm + extra work.
Bug where
image->used = 1;was never set inImageStreamIO_read_sharedmem_image_toIMAGE(e.g.ImageStreamIO_openIm)GPU SHM: registry with refcount to manage multiple handles to the same GPU IPC segment within one process.
GPU compilation: int IMAGESTRUCT_COMPILED_HAVE_CUDA = 0/1 for runtime checking of compilation if needed.
Fix checkCudaError error print function
Coverage build triggered with -DCMAKE_BUILD_TYPE=Coverage. For integration with the nox session "tests_run_coverage" of pyMilk which performs coverage over python and C/C++ files
Reverted - FYI (but present on nanobind brach):
CLIcore_signals.h, 'milkDebugTools.h',timeutils.{c,h}--> helpful for restructuring milk v1 into a standalone package with processinfo and fps (see pyMilk under milkengine/ path).target_include_directoriesfrom PUBLIC to PRIVATE. This means that#include "ImageStreamIO.h"is generally disallowed in the nanobind branch used by pyMilk, with#include "../ImageStreamIO/ImageStreamIO.h"required from sibling folders, or "ImageStreamIO/ImageStreamIO.h"` since the overall project root is on the include path.The current is:
But I'd prefer to use: