Skip to content

Various fixes to integrate with IMP - #13

Open
benmwebb wants to merge 57 commits into
Fluorescence-Tools:mainfrom
salilab:salilab
Open

Various fixes to integrate with IMP#13
benmwebb wants to merge 57 commits into
Fluorescence-Tools:mainfrom
salilab:salilab

Conversation

@benmwebb

Copy link
Copy Markdown

This PR encompasses a bunch of minor fixes needed to make IMP.bff interoperate nicely with IMP itself, and to build and test correctly on the wider range of platforms and configurations we use in the Sali Lab. With these fixes I should be able to incorporate IMP.bff into the next stable IMP release:

  • some missing C++ headers and circular dependencies between headers that broke per-cpp builds
  • removal of some broken tests
  • some Python scripts now fail gracefully if additional Python modules (numba, tqdm) are missing
  • various fixes to the doxygen docs
  • fix build failures with SWIG 4.3
  • fix a few memory leaks and buffer overruns that showed up in examples and tests run in debug builds

Header A cannot include header B which in
turn includes header A. This will cause a
compile failure when building with per-cpp
compliation.
We need to inline this function otherwise linkage
will fail with multiple definitions.
This feature doesn't work in Python 3.6 and we
don't appear to use it in this example anyway.
This file was empty, and trips up the build of
IMP's documentation.
Use a raw string to hold math, otherwise
we have to double-escape, e.g. \\hat, since
\hat includes \h which is an invalid escape.
We can't build the SWIG wrappers for IMP.bff
if NumPy support is unavailable, so detect this
at cmake time. Remove spurious dependency on
IMP.em, which is already covered under
required_modules.
IMP requires Python 3, so the 'future'
features division and print_function are
always available.
Replace each `SWIG_Python_AppendOutput` with `SWIG_AppendOutput`.
benmwebb and others added 27 commits November 18, 2024 16:19
Arguably DecayCurve should be an Object, but that
would break a lot of the existing API (e.g. methods
like operator+ that return a new object). As written
the class leaks memory.
Don't try to show plots interactively by default.
This causes automated testing of the examples to hang.
Multiple test methods with the same name will not
be run by Python.
Use IMP's existing cmake code to enable AVX
if requested. This has the advantage that we
can detect at runtime if the support is present,
in both C++ and Python.
Have AVX-specific functions throw a "not
implemented" exception if they are called
when AVX is disabled, rather than just doing
nothing.
This example uses several quite large density
maps, which can use more memory than can be
addressed on a 32-bit operating system, such
as our 32-bit Windows builds. Skip trying to
run the example on these systems.
This was incorrectly making the edge_computed
vector zero size.
SWIG 4.5 no longer adds #defines to map some
Python 2 API functions to Python 3 equivalents.
In order to build with this SWIG version, use
the correct Python 3 API instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant