esys-escript 6.1.1 is a maintenance release on top of 6.1.0, focused on build and packaging robustness across Windows (MSVC), macOS, conda-forge and pip. There are no API or numerical changes — scripts that run on 6.1.0 run unchanged.
Highlights
- Windows (MSVC): esys-escript now compiles cleanly with the MSVC toolchain.
- macOS: shared libraries and Python extensions carry an RPATH, so
import esys.escriptworks from a plain interpreter withoutrun-escript; fixed an OpenMP duplicate-runtime abort in Homebrew builds. - Packaging: conda-forge and pip fixes so bare
import esysworks for conda/system installs. - Docs: the
run-escriptman page is now consistent with the launcher's options.
Windows / MSVC build
- Use
&&instead of theandkeyword,unsigned intinstead of the POSIXuint, signed loop counters for OpenMPforloops, and an explicitstd::complex<double>where MSVC requires it. - Guard POSIX-only calls in
Utils.cppbehind_WIN32. - Don't propagate
ESCRIPT_EXPORTSto the Python wrapper on Windows; skippythonMPIcpp.pydwhen mpi4py is disabled. - Probe for the MUMPS MPI shim header on Windows and
#undef MPI_COMM_WORLDbefore including it. - Fix MSVC narrowing warnings — which also uncovered a latent Paso bug where
Options::reorderingwasboolbut must beindex_t.
macOS
- Bake
<prefix>/lib/esys(and<prefix>/lib) as an RPATH into every shared library and extension, so bare imports and the SCons configure probes resolvelibomp/libgompwithoutLD_LIBRARY_PATH. - Fix an OpenMP duplicate-runtime abort in Homebrew builds.
- Drop the deprecated
boost::math::complex::acosfallback.
Packaging
- pip: only run the lib-path bootstrap when the
esys_escript_lib/directory is present, so bareimport esysworks for conda and system installs. - conda-forge recipe updated for the 6.1 series.
Build system
- More robust Boost.NumPy detection: find NumPy's include directory early, normalise
boost_libsbefore concatenation, and surface the probe exception text on failure. - Use raw strings for the gmsh GEO templates; split
ld_extrainto separate link arguments; generaterun_escript.pybefore the escript SConscript runs.
Other fixes
- Fix self-initialisation of
X/Y/Din the SpeckleyDefaultAssembler2D.
Documentation
- The
run-escriptman page now documents all launcher options (adds-aand-x), corrects the-p/-f/-i/-odescriptions, and drops the untested-m(valgrind) option.
Availability
- conda-forge (
conda install -c conda-forge esys-escript): Linux and Windows. macOS is temporarily unavailable pending an upstream Boost.Python bug — see conda-forge/boost-feedstock#266. - Debian (
python3-escript,python3-escript-mpi): 6.1 packaging is in preparation. - From source: see installation.md.
Full change list: RELEASE_NOTES · Diff: 6.1.0...6.1.1