[NFC][analyzer] Capitalize variable names in BoundsChecking.cpp (#214530)
My recent commit 91dfa266cee8cb49a052531492ba4b670525278a moved this
code here from a different file. Now that it has no menaningful git
history (and it is blamed to me) let's get rid of the lowercase names.
[DebugInfo] Clear subregister mask state after use (#206428)
## Summary
This patch fixes a DWARF debug-info emission bug where the pending
subregister mask state used for one `DW_OP_LLVM_arg` could leak into a
following full-register `DW_OP_LLVM_arg` in the same `DIArgList`
expression.
For example, when an `i32` value is described through the x86-64
super-register `RDI`, LLVM correctly emits:
```text
DW_OP_breg5 RDI+0
DW_OP_constu 0xffffffff
DW_OP_and
```
However, before this patch, the subregister state remained live after
[84 lines not shown]
[LV] Apply urem folds to preheader (#213928)
Following on from PR #212198, this patch also applies the same urem
vplan folds to the vector preheader, which leads to a lot of test
changes that are mostly mechanical.
As a by-product it also fixes a compile-time regression introduced by
#212198 due to the expensive `getVectorPreheader` function.
In future we can do further folds similar to instcombine, since `(X - (X
& Y)) --> (X & ~Y)` and we know that `urem(X, PowerOf2Y) -> X &
log2(PowerOf2Y)`. However, the root matching pattern in this case needs
to be a subtract.
Enforce single-operand form for llvm.loop.vectorize.predicate metadata (#213902)
Replace the two-operand boolean form
!{!"llvm.loop.vectorize.predicate.enable", i1 0/1} with a single-operand
enable/disable pair:
!{!"llvm.loop.vectorize.predicate.enable"}
!{!"llvm.loop.vectorize.predicate.disable"}
The Verifier rejects the two-operand form, AutoUpgrade rewrites old
bitcode, and the readers and producers in LLVM, Clang and MLIR are
updated.
Please refer to RFC:
https://discourse.llvm.org/t/rfc-enforce-single-operand-format-for-all-enable-metadata-nodes/90571/
Assisted by AI
[HIP][Driver] Use alternative `/lib64` or `/lib` depending on `amdhip64` library location (#211587)
On non-standard ROCm installations, `libamdhip64.so` may be under
`/lib64` instead of `/lib`. To acomodate for these, if
`/lib/libamdhip64.so` does not exists and `/lib64` does, use the later.
On windows we check for `amdhip64.lib`.
If both exist `/lib` is preferred.
By default we conservatively use `/lib`.
Related to LCOMPILER-2495.
[lldb] Make RegisterFlagsDetector into RegisterTypesDetector (#213892)
In future it may be generating things other than flags. Functionality
is the same, but the interface changes to use RegisterType.
[LLVM][SelectionDAG] Explicitly split SETCC generated operand of masked_div. (#213903)
This follows the same idiom used by other masked operations to prevent
poor type legalisation of boolean vectors.
smokeping intermittent build fix: add BDEPs on the optional modules used
by probes; build runs smokeping's --makepod option to create manuals for
these, which tries to import modules used by these. if hit at the wrong
time during a bulk build this can fail.
tb@ ran into this while p5-Net-DNS was partway through installation:
pod2man --release=2.9.0 --center=SmokePing Smokeping_probes_AnotherCurl.pod --section 3 > Smokeping_probes_AnotherCurl.3
PERL5LIB=/usr/local/libdata/perl5/site_perl /usr/bin/perl -I../thirdparty/lib/perl5 -I../lib -mSmokeping -e 'Smokeping::main()' -- --makepod Smokeping::probes::AnotherDNS > Smokeping_probes_AnotherDNS.pod
require Smokeping::probes::AnotherDNS failed: Attempt to reload Net/DNS.pm aborted.
Compilation failed in require at ../lib/Smokeping/probes/AnotherDNS.pm line 26.
BEGIN failed--compilation aborted at ../lib/Smokeping/probes/AnotherDNS.pm line 26.
fix old typo/thinko in readme while there (IO::Pty is in the p5-IO-Tty
package).
Protect the container dataset from user deletion
## Problem
`<pool>/.truenas_containers` was destroyable through the public API. `has_internal_path()` matches the second path component against `INTERNAL_PATHS`, and the container dataset was not in that tuple, so every destroy and rollback guard silently did nothing for it: `zfs.resource.destroy` with `recursive` wiped the whole tree, container rootfs snapshots deleted cleanly, and the image snapshot went away with `defer` set because that skips the dependent-clone check. `pool.dataset.delete` only failed by accident, since `get_instance` cannot see the dataset, so the caller got a misleading "does not exist".
The plugin was already written for this - every destructive call it makes passes `bypass=True`. The tuple entry was taken back out in 6087fadaac because adding it breaks pool import: `reset_mountpoint_recursively` queries the pool, which does not opt out of the internal-path filter, so the container child never shows up in the results and the mountpoint fixup never runs. That surfaces later as `ensure_datasets` raising a mountpoint mismatch with no way to recover, and as containers starting on an empty directory.
## Solution
Move the mountpoint repair into the container plugin as `container.ensure_pool_mountpoint`, where it can name the dataset explicitly. Naming an internal path opts out of the filter, which is the same thing `docker.fs_manage.ensure_ix_apps_mount_point` already relies on for `ix-apps`. It also refuses to overmount: if something else is already mounted at the expected path it logs and leaves well alone. That matters here in a way it does not for `ix-apps`, because the container dataset exists on every pool and two pools can end up claiming the same path after a rename.
- **`pool.reset_mountpoint_recursively`** delegates to it, after the inherit walk rather than inside the first-level loop. This picks up a latent bug on the way: when the root dataset had been messed with, the loop broke out early and skipped the container fixup entirely, and the inherit walk then clobbered the custom mountpoint.
- **`ensure_datasets`** repairs instead of raising, so a drifted mountpoint is no longer a dead end.
- **`container.repair_pool_mountpoints`** runs on boot between the legacy migration and autostart, covering `pool.import_on_boot` and the failover import, neither of which resets mountpoints at all.
With that in place `.truenas_containers` joins `INTERNAL_PATHS`. It is spelled out there rather than imported, so the zfs layer does not have to reach into a plugin package, and a unit test keeps the two from drifting apart.
One consequence worth flagging for release notes: `pool.filesystem_choices` no longer lists container datasets, so any existing periodic snapshot or VMware task pointed at one will fail revalidation.
Renaming is still unguarded - `zfs.resource.rename` has no internal-path check, so moving the dataset out of the namespace and then deleting it is still possible. That is a separate change, and the same hole applies to `ix-apps` and `.system` today.
[AArch64] Cap upper-bound unrolling of loops with uncomputable trip counts (#205102)
SCEV can compute a small maximum trip count for a loop even when it
cannot compute the exact backedge-taken count. This is typical of
data-dependent exits, such as the varint-length loops in sqlite3:
for (i = 1; (v >>= 7) != 0; i++)
;
Unrolling to the maximum trip count turns the loop into a chain of
copies containing an exit test for every possible iteration. This
increases code size and the number of static branches without knowing
whether enough iterations usually execute to make unrolling profitable.
These loops were not unrolled before #197292. That change improved
SCEV's maximum backedge-taken count for shift recurrences, reducing the
maximum trip count of these loops to 6. This made them eligible for
AArch64 upper-bound unrolling and caused an approximately 3% regression
in sqlite3 from SPEC CPU 2026.
[6 lines not shown]
[mlir][tosa] Add more informative error messages to block scaled types (#211569)
This commit improves block scaled tensor type verification to provide a
specific reason about why type verification failed. Previously the error
message was a very generic "must be tosa-conformant tensor of number
values".
This commit restores previous functionality that was reverted by
https://github.com/llvm/llvm-project/pull/207995, but uses the ODS
string interpolation mechanism instead to prevent incompatibility with
PDLL.
mail/himalaya: update to 2.0.0
Added
Added Gmail REST API support: a [gmail] account backend behind the shared mail commands (--backend gmail), plus a protocol-specific gmail command exposing the full REST surface (profile, labels, messages, attachments, drafts, threads, history, settings). Authenticates with a single OAuth 2.0 bearer token (gmail.auth.token.raw / .command), the only authorization Gmail's REST API accepts.
Added Microsoft Graph REST API support: a [msgraph] account backend behind the shared mail commands (--backend msgraph), plus a protocol-specific msgraph command exposing the Graph mail surface (profile, mail-folder, message, attachment). Mirrors [gmail], authenticating with a single OAuth 2.0 bearer token.
Restored the RFC 2971 ID-after-auth quirk as imap.id.{auto, fields}, replacing the v1.2.0 imap.extensions.id.send-after-auth flag dropped during the v2 migration.
Brought the m2dir backend to CLI feature parity with maildir (messages, flags, envelopes). Mailbox rename and message copy / move still await io-m2dir support.
Added --save <MAILBOX> to messages send, mirroring the flag on messages compose / reply / forward.
Added --send to messages add (alias messages save), mirroring messages send --save.
Added raw passthrough commands imap raw <command> and smtp raw <command>.
The wizard now pre-fills mailbox.alias.* from the server, so a generated account has a working default mailbox (the inbox alias, which backs commands that omit -m/--mailbox) and known Sent/Drafts/Trash/… targets without hand-editing ids. JMAP reads the RFC 8621 mailbox roles live over the tested connection. Gmail and Microsoft Graph map their fixed system-label ids (INBOX, SENT, …) and well-known folder names (inbox, sentitems, …). IMAP pins the reserved INBOX only. The other special-use roles await LIST RETURN (SPECIAL-USE) support in io-imap (upstream imap-codec has none yet).
[44 lines not shown]
[AArch64] Enable FEAT_LSFE CodeGen only when exception can be ignored (#212799)
This patch restricts the generation of new atomic instructions added
under FEAT_LSFE to functions where no-trapping-math flag is set and
strictfp attribute is not set. This is done to preserve the exception
behaviour of the original codegen.
devel/gitpane: update to 0.10.3
[0.10.3] - 2026-08-06
Changed
Repo rows were redesigned around one aligned seam. Names and branches now form the only two aligned columns (the branch column sizes to the widest visible branch, capped to a third of the panel), and everything after the branch (stash and worktree toggles, ahead/behind arrows, submodule markers, fetch warning, live-session dot, changed-file count) packs tightly per row. A row's indicators sit right next to its branch instead of floating in reserved columns that most rows leave empty, and clicking the stash/worktree toggles still hits exactly the drawn cells.
The default branch is dimmed instead of loud. main and master now render in a new branch_default theme color (DarkGray by default, overridable in custom themes), so a clean repo on its default branch reads as a quiet row and only deviating branches carry the branch color.
Removed
The [ui] compact_repo_list option. The new layout packs rows by default while keeping names and branches aligned, which covers what both of the old modes were for; a leftover key in an existing config is ignored and disappears the next time gitpane saves the config.
[0.10.2] - 2026-08-06
Added
The file context menu gained "Copy path". Right-clicking a changed file now offers copying its absolute path (resolved against the active worktree, like Open folder) to the clipboard via OSC 52, so it works over SSH too.
Status-bar toasts now pulse. A toast flashes its accent color every 150ms for its whole lifetime, so an OK or ERROR message no longer appears motionless in the bar and slips by unnoticed.
A reverse-alphabetical sort mode. s now cycles A-Z, Z-A, then dirty-first, and every press shows a "sort: ..." toast in the status bar so the active mode is never a guess (previously the only indicator was a small label buried in the hint line, which truncates on narrow windows).
Path completion in the add-repo input now shows its candidates. The first Tab extends what you typed to the longest common prefix and opens a menu above the input listing every matching directory; Tab and the arrow keys then move a visible selection through the list, and Esc closes the menu before it closes the input. Previously Tab silently replaced the input with the first match and cycled through the rest blindly.
[11 lines not shown]
devel/gitnr: update to 0.3.0
v0.3.0
What's New
- Shell completions — new completions command to generate shell completions for bash, zsh, fish, elvish, and powershell (#15)
- Linux arm64 binary — pre-built aarch64 binary now included in releases (#13)
- Homebrew support — brew install gitnr via homebrew-core (#19)
Fixes & Maintenance
- Fixed CLI showing an error instead of help when run without a subcommand
- Resolved 4 dependency security vulnerabilities (openssl, idna, hashbrown)
- Updated all dependencies to latest compatible versions
- Fixed clippy warnings for latest stable Rust toolchain
v0.2.2
- Updated dependencies