Debian Patches

Status for smlnj/110.99.9-5

Patch Description Author Forwarded Bugs Origin Last update
0001-mltex2html-perl-fixes mltex2html-perl-fixes
Fix FTBFS when '.' is not part of @INC and escape literal '{' in regex

Expanded by gregor herrmann <gregoa@debian.org> on Tue, 8 Aug 2017 11:46:37 -0400

Fix "FTBFS: Unescaped left brace in regex is illegal here in regex":
extend debian/patches/mltex2html-perl-fixes to escape literal opening
braces in mltex2html script.
See https://bugs.debian.org/871335
James McCoy <jamessan@debian.org> no 2016-09-13
0002-update-copyright-notice.patch update copyright notice
This addresses the "may not sell ... with a commercial product or
service" copyright notice in the files
- libraries/ckit/src/parser/util/error-sig.sml
- libraries/ckit/src/parser/util/error.sml
which upstream fixed immediately upon being informed of the issue.

The upstream development commit cherry picked here is:
https://github.com/smlnj/smlnj/commit/4f48994d0f7b434ef258c64cf6aa59b752a13bbe
For discussion, see
https://github.com/smlnj/smlnj/issues/258
"Barak A. Pearlmutter" <bap@debian.org> no 2022-10-03
0003-sml-man-page-typos.patch fix typos in sml(1) man page "Barak A. Pearlmutter" <bap@debian.org> yes 2026-09-12
0004-pathnames-trim-prefix.patch let SMLNJ_TRIM_PREFIX trim file names in diagnostics
Pathnames.trim is applied to file names in error locations, including
the locations recorded in stabilized libraries, but was the identity.
Make it strip the prefix given by the SMLNJ_TRIM_PREFIX environment
variable, so the Debian build can keep its build directory out of the
installed libraries.
"Barak A. Pearlmutter" <bap@debian.org> yes 2026-09-12
0005-match-compiler-select-free-vars.patch fix free variables of SELECT states in the match compiler
A shared DFA state becomes a function whose parameters are the state's
free variables. For a SELECT state that set was computed as

val bs = foldr (fn ((p,_),S) => add(S,PVAR p)) s bs
val fvs = diff(s, bs)

seeding the fold with s itself, so bs is always a superset of s and fvs
is always empty. A shared SELECT state therefore became a function of
no arguments whose body still referred to path variables bound in the
caller, and nowhere(1) emitted code with unbound variables:

fun state_8 () = let val (v_8, v_7) = v_1 in ... v_5 ... end

Subtract only the variables the SELECT itself binds.
"Barak A. Pearlmutter" <bap@debian.org> no debian 2026-09-24
0006-reproducible-guid.patch honour SOURCE_DATE_EPOCH when generating compilation unit GUIDs
CM gives every compilation unit a GUID built from the current time, and
Rehash.addGUID mixes that GUID into the unit's persistent id, which in
turn is embedded in the generated code. Two builds of identical sources
therefore produce different binfiles and stable libraries.

Use SOURCE_DATE_EPOCH in place of the current time when it is set, which
makes compilation reproducible; behaviour is unchanged when it is unset.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-24
0007-mltex2html-reproducible.patch reproducible footer in generated MLRISC HTML
The generated pages end with "Last modified: <date> by <user>@<host>",
which differs between builds. Use SOURCE_DATE_EPOCH, and drop the user
and host name, when that variable is set.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-24
0008-reproducible-heap-timers.patch do not record build-time timings in exported heap images
The initial CPU and real timers are captured when the system boots, and
the compiler's Stats counters accumulate during the build; both are then
written into every exported heap image, which therefore records how long
the build took and when it ran. Both are reset when an image is resumed
(the AtInit cleaners), so the recorded values are never used. Zero them
at export instead, without reading the clock.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-24
0009-ml-build-no-pid-in-temp-names.patch do not put the process id in ml-build's temporary file names
ml-build generates a small SML file whose name contains the process id,
and compiles it; the name is recorded in the resulting heap image, so
every run produces a different image. Name the temporary files after
the heap file being built instead.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-24
0010-powerpc-autobuild.patch powerpc autobuild
On the powerpc autobuilders, the running kernel might be 64-bit even
if the build is in a 32-bit environment. So accept more powerpc kernel
machine names.
"copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> no 2026-09-27
0011-flushicache-implicit-int.patch give FlushICache a return type
The declarations relied on implicit int, which GCC 14 rejects. The
routine returns void, as the PPC.prim.asm comment says. Only affects
the targets that declare it (PowerPC, SPARC, MkLinux).
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-28
0012-ppc-linux-runtime.patch make the runtime build and work on powerpc/Linux again
Three things had rotted since the target was last built:

- mk.ppc-linux compiles with "gcc -ansi", but the runtime headers use
C99 (STATIC_INLINE expands to "static inline"), so every file fails
to compile. Use -std=gnu99, as the x86 and amd64 targets do.

- When the OS/architecture feature tests were reorganized around
ARCH_PPC, the powerpc/Linux case lost both HAS_UCONTEXT and
HAS_SIGCONTEXT, leaving SigReturn_t, SigInfo_t and SigContext_t
undefined for the POSIX signal declarations. Linux passes a
ucontext_t to an SA_SIGINFO handler, so define HAS_UCONTEXT.

- Consequently the powerpc/Linux signal macros have to reach the saved
registers through uc_mcontext, and the local SigContext_t typedef
(for the long-gone struct sigcontext_struct) goes away.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-28

All known versions for source package 'smlnj'

Links