Line searches, linear and nonlinear solvers for CPUs and GPUs, based on KernelAbstractions.
This package is at an early stage of development.
Two hooks live in .githooks. They are not active in a fresh clone — core.hooksPath is local
configuration and does not travel with a push — so enable them once per clone:
git config core.hooksPath .githookspre-commit acts on staged .jl files only, and exits immediately when a commit stages
none, so a documentation- or workflow-only commit is not slowed down by it:
- JuliaFormatter
--check, honouring this repository's own.JuliaFormatter.toml— blocks the commit. Formatting is mechanical and always fixable. fatou lint, whenfatouis installed — advisory only, and deliberately so: itsunused-importrule does not followinclude, so it flags the load-bearing imports of every module file.- Unicode NFC — blocks a staged file that is not NFC-normalised. Sources here are NFC, so a
file that is not is a regression: a pattern typed in NFC silently matches nothing in a decomposed
file, which defeats
grep, an editor search and Documenter's doctest comparison alike. Fix withjulia --startup-file=no ~/Research/Environment/Harness/githooks/nfc.jl --apply <files>. The invariant iss == Unicode.normalize(s, :NFC), not the absence of combining marks —q̇,v̄andf̄have no precomposed codepoint and are two codepoints in NFC as well. using <Package>, which catches a syntax error or a brokeninclude— blocks.
pre-push runs the full test suite with --check-bounds=auto, but only when pushing to
main or master; a topic branch is left to CI. It prints nothing for 10–30 minutes, which
looks exactly like a network hang and is not one. If you do interrupt it, check for an orphaned
Julia process that the killed hook left behind.
Either hook can be bypassed for a single command with --no-verify, for a change you know it does
not apply to:
git commit --no-verify
git push --no-verifyThe hooks are generated from one shared copy and are byte-identical across the related repositories, so edit them there rather than here — a local edit is silently undone by the next install.