[basil] v1.8.2, new package#14172
Conversation
basil is a 2-D viscous-flow finite-element code (plane-strain / thin-sheet / axisymmetric) from the Houseman group, GPL-3.0. Ships 9 executables: the solver `basil`, the headless PostScript post-processor `sybilps`, and the seven `xpoly` mesh/inversion helper tools. Notes for reviewers: - The source is pinned to a personal fork rather than greg-houseman/basil because the fork carries a fix for a regular-mesh (NOR) regression that upstream does not yet have. - The interactive `sybil` GUI is excluded: it needs Motif, which is not packaged in Yggdrasil. `sybilps` covers the non-interactive workflow and links no X11 libraries. - Windows is deferred. basil writes gfortran unformatted sequential records through relative cwd paths; that path has never been validated on Windows. - i686-linux-musl is excluded: triangle.c only clamps the x87 control word under -DLINUX (glibc-only fpu_control.h) or -DCPU86 (MSVC), so its exact-arithmetic mesh predicates would run with 80-bit x87 intermediates there. i686-linux-gnu gets -DLINUX and is unaffected. - The upstream build system is imake; its generated Makefile is host-specific, so we drive the hand-written MakeSimple files instead.
|
Rebased onto master; dropped Separately, one job per build hangs in the auditor, a different target each time ( @giordano — could someone with pipeline access retry just the |
| # basil links libgfortran, and polyutils.cc leaves std::string values in the | ||
| # binary. Neither expansion adds build jobs (both emit only the new ABIs). | ||
| platforms = expand_gfortran_versions(platforms) | ||
| platforms = expand_cxxstring_abis(platforms) |
There was a problem hiding this comment.
Since you are not providing a library with an external ABI, I don't think you need to expand the C++ string ABIs (this is used whenever you are passing C++ std::string objects across the boundary).
There was a problem hiding this comment.
Seems to be actually necessary: https://buildkite.com/julialang/yggdrasil/builds/30984#019f481d-d15e-43f0-adae-d43b67988996/L833
|
Thanks for checking. Marking ready for review. |
Address review: pin greg-houseman/basil and carry the regular-mesh (NOR) regression fix as a bundled patch, so the recipe no longer depends on a personal fork staying alive. The upstream commit is the same tree the fork was based on; the patch is the only source change the fork contributed to the build.
|
@lgoettgens Done — now builds from That upstream commit is the exact tree the fork was based on, so the patch is the only source delta the fork ever contributed to the build. Verified locally: patched upstream produces all 9 binaries and a solution bit-identical to the fork's reference on the regular-mesh case (only the embedded run timestamp differs). |
basil is a 2-D viscous-flow finite-element code (plane-strain / thin-sheet / axisymmetric) from the Houseman group. GPL-3.0.
Ships 9 executables: the solver
basil, the headless PostScript post-processorsybilps, and sevenxpolymesh/inversion helpers.Notes for reviewers
One bundled patch. Upstream's 1.7.7c -> 1.8.2g merge dropped the
NOR()node-renumbering indirection, which breaks every regular-mesh case during assembly. The patch restores it, and is a no-op whenNOR(k) == k, so the triangle-mesh path is untouched. Not yet upstream.sybil(the interactive GUI) is excluded — it requires Motif, which is not packaged in Yggdrasil.sybilpscovers the non-interactive workflow; its X11 code is#ifdef XSYB-guarded and the built binary links no X libraries.Windows is deferred. basil writes gfortran unformatted sequential records through relative cwd paths; that has never been validated on Windows, and a solver that silently mis-writes solution files is worse than an absent one.