FDP: We want a patch submitted on Differential!
Rewrite the the "Making a Diff" section of the "Working Copy" chapter
into a "Submitting the Changes" section on making a proper commit and
sending it to us on Differential with git-arc and tagging #docs.
Reviewed by: bcr, carlavilla
Differential Revision: https://reviews.freebsd.org/D61591
devel/stirmake: [NEW PORT] Scalable true implementation of recursive make
Stirmake is a fast build tool intended to allow easily developing
correct build systems with one global directed acyclic graph for
projects spanning multiple directories and potentially including Git
submodules. It is fully programmable in the embedded Amyplan
programming language. The intention is that with Stirmake, one never
has to type the equivalent of "make clean" to fix a build.
PR: 300760
Co-authored by: mce@
fzssh: update to 1.5.2.
1.5.2 (2026-11-13)
! Fixed a crash parsing invalid RSA private keys and reduced maximum allowed modulus size
1.5.1 (2026-11-03)
+ Added channel_flags allowing to request hgue channel windows even in case of multiplexed transports
- Improved state tracking in the the socket interface representing opened channels
1.5.0 (2026-10-23)
+ Added support for pin at openssh.com extension
+ Added sftp_client::initial_rtt() as estimate of initial channel rtt
- Improved logging when processing File Attributes with malformed extended attributes
libfilezilla: update to 0.59.0.
0.59.0 (2026-11-13)
! MSW: Fix argument quoting when directly trying to start .bat/.cmd as executable
! HTTP: Fix redirects on same host but different protocol/port
+ Add support for certificates with IP SAN, these can now be checked against the system trust store
- fz::event_with_source accepts const source pointers; source() now returns a const source-identity pointer
- Minor fixes to key purpose handling in certificate requests
0.58.0 (2026-10-23)
+ Added fz::socket::srtt to get an estimate of the the smoothed rounttrip time of the connection, if available
+ Added fz::rename_file flags to control replacement and cross-filesystem copying; no-replace uses native atomic operations where available, otherwise a best-effort check
+ Added fz::result::cross_device to report filesystem-boundary failures
+ Added fz::local_filesys modification time overloads for native file and directory handles
+ Added fz::is_valid_x509_distinguished_name
+ Added shared interface for buffer access
- fz::uri::get_authority now correctly preserves IPv6 literal addresses
[3 lines not shown]
sysconf: Add ucl and pkg targets
ucl reads and rewrites Universal Configuration Language files with
libucl(3), the private library pkg(8) links, so what sysconf reads is
what pkg reads. Each file is parsed on its own and every scalar is
addressed by its dotted path (FreeBSD-ports.enabled); the last file
to define a path is authoritative. A write changes only the one
statement, in the file's own separator, terminator, quoting, and
boolean style, then re-parses the result with libucl and refuses the
write unless the parsed contents differ in exactly the requested key.
Removing the last key of an object removes the object.
Arrays are leaves, read back as compact JSON. name+=word and
name-=word on an array add and strike elements. Under an array a
path component is an index, as uclcmd(1) spells it: name.i reaches
one element (name.i=value sets it, name.i+=word edits it, -x name.i
strikes it), name.i.j reaches into a nested array, and name.# is the
count (name.#=value appends). A negative index counts from the end.
Under an object the same component is a key, so a key named 404 or #
[21 lines not shown]
[Mips] Select MADDF and MSUBF instructions for scalar FMA on R6 (#233171)
Legalize FMA and STRICT_FMA for supported scalar floating-point types on
standard-encoding MIPS R6 targets, and match them to the existing MADDF
and MSUBF instructions instead of libcalls. Preserve tied accumulator
operands and strict FP exception semantics using the existing
instruction properties.
[CIR] Make cir-canonicalize a full canonicalizer
cir-canonicalize applied the CIR canonicalization patterns and folders
only to a hand-written list of operations. It now builds the pattern set
once in initialize() and runs the greedy driver over every operation, so
every pattern and folder applies everywhere. Dead code elimination is
disabled: CIR stays close to the source, so unused locals and ignored
expressions are kept as in classic codegen, and only the inputs of a
folded operation can be left unused. Empty scopes and switches were
removed only because they were dead, so they get explicit
canonicalization patterns.
The pass uses the multi-op driver because the region driver always
erases blocks without a CFG predecessor, and a block that starts with
cir.label is reached only through cir.goto until the goto solver runs.
Region simplification stays off for the same reason. The new
test-convergence option fails the pass when the driver does not reach a
fixpoint, as in the upstream canonicalizer.
Assisted-by: Claude Code (claude-opus-5-5).
[CIR][NFC] Add isVolatileOrAtomic() to cir.load and cir.store (#242709)
Several places spell out `getIsVolatile() || getMemOrder()` to decide
whether a load or store must stay as written. This names that check once
on both ops and uses it in the load effects, mem2reg, `CIRSimplify` and
the ABI rewriter.
Assisted-by: Claude Code (claude-opus-5-5).
FDP/writing style: Headings are in title case
In the FreeBSD documentation project, headings are title case following
older American publishing tradition. Google and Microsoft style guides
have switched to sentence case, but I for one like our old world style
and the quality it usually implies, and want to carry that torch.
There are different style houses have subtle nuances on what constitutes
a "small word", and I do not think there is anything to be gained from
doing a whole bikeshed on which one to follow and then trying to get all
the docs to use that consistently. For now, fix this consistently on the
writing style page without adding a new rule.
PR: 296223
Reviewed by: carlavilla
Differential Revision: https://reviews.freebsd.org/D61592
[EarlyCSE] Fold equivalent `bitextract` and `bitinsert` (#242720)
EarlyCSE replaces an instruction with an earlier one that computes the
same value. It only considers instructions accepted by
`SimpleValue::canHandle`, which lists the opcodes it knows.
`bitextract` and `bitinsert` were missing from that list. They use the
generic hash, which mixes the opcode and operands, so they are also
added to the assert that guards it.
This mirrors the GVN change in #242716.