jimtcl: updated to 0.84
0.84
Allow bootstrap jimsh to build with MSVC on Windows
update codeql actions
aio: add support for translation binary|text
build: win32: fix install of build-jim-ext
dict set/unset: ensure dicts modified via dict sugar are unshared
Add more build generated files to .gitignore
update master from master-next branch
regex improvements
JSON decode fixes
aio gets: add -eol and -keep options
A couple of small segfault fixes
jimiocompat: Avoid unused variable compiler warnings
Linenoise update
jim-redis: add support for multiexec
source documentation improvements
[DTLTO] Overlap temporary file removal (#209423)
Deleting the temporary files produced by the DTLTO pipeline can be
expensive on Windows hosts. For a Clang link (Debug build with
sanitizers and instrumentation) using an optimized toolchain (PGO
non-LTO, llvmorg-22.1.0) on a Windows 11 Pro (Build 26200), AMD Family
25 @ ~4.5 GHz, 16 cores/32 threads, 64 GB RAM machine, the mean duration
of the "Remove DTLTO temporary files" time trace scope was 1267.789 ms
(measured over 10 runs).
This patch performs the deletions on a background thread, allowing them
to overlap with the tail of the link to hide this cost.
This is a re-implementation of the asynchronous cleanup idea from
https://github.com/llvm/llvm-project/pull/186988, which had to be
reverted in https://github.com/llvm/llvm-project/pull/189043 because
cleanup was not guaranteed to complete before LLD invoked
timeTraceProfilerCleanup(). In certain cases timeTraceProfilerCleanup()
was called before temporary file deletion had completed in LLD, which
[8 lines not shown]
[MLIR] Rerun control for actions in execution context (#209197)
Adds a Rerun control value to ExecutionContext::Control that allows the
re-execution of the current action immediately after it completes,
without restarting the full compilation pipeline. This is analogous to
GDB's ability to restart execution from a breakpoint. When the callback
returns Rerun, the action is executed normally, then re-dispatched
through the full ExecutionContext::operator() pipeline, including
breakpoint matching, so the user gets a fresh opportunity to inspect or
control the re-execution. As a practical usage example, a breakpoint +
an observer can be added, to save and restore IR between runs to check
if each run produces the same IR or something different each time. A
depth-keyed structure is used, so rerun requests survive nested action
dispatch and are consumed by the correct stack frame.
filesystems/curlftpfs: fix use of curl CURLOPT_KRB4LEVEL
Update debian patches and add getpass-prototype.patch
Add an additional patch to fix curlftpfs errors after
drop of Kerberos FTP support by curl >= 8.17.0.
PR: 295897
Reported by: Oliver Adler <bla at a999.de>
biology/muscle: update 3.8.1551 -> 5.1
In 2021, the code was re-written from scratch for MUSCLE v5 to implement
novel algorithms and fully support modern PC hardware.
PR: 294891
Approved by: Maintainer Timeout (>2 months)
macho: map macOS 26 / iOS 19 to Darwin 25
Add missing Tahoe/iOS 19 entries so pkg config abi reports Darwin:25
instead of falling back to the macOS 15 (Darwin 24) row.
fix: remove nested @dir parents on deinstall
Since the dirs vec refactor (2.8.0), pkg_delete_dirs iterated
directories in ascending path order, so a parent @dir outside the
prefix (e.g. /var/db/gitea) was processed before its children and
unlinkat failed with ENOTEMPTY, leaving the parent behind as a
leftover. Iterate in reverse so children are removed first.
Add a regression test for nested out-of-prefix @dir trees.
[Clang][Sema] Fix crash on lambda parameter pack with illegal default argument (#210718)
`Sema::ActOnParamDefaultArgument` checked a default-argument expression
for unexpanded parameter packs before checking whether the parameter
itself is a pack. For a lambda parameter pack given a default argument
that is a pack expansion referencing an enclosing function's parameter
pack (e.g. `[](Types... = args...) {}`), the first check runs while
still inside the lambda's scope and sets
`LambdaScopeInfo::ContainsUnexpandedParameterPack` (a mechanism meant
for legitimate outer-pack references). The subsequent
`isParameterPack()` check then correctly diagnoses the real error and
discards the default argument, but the stale flag survives into the
built `LambdaExpr`'s dependence bits. A later unexpanded-pack check on
that `LambdaExpr` finds nothing to report and hits
`assert(!Unexpanded.empty() || LambdaReferencingOuterPacks)`, aborting
instead of just diagnosing the error.
Fix: check `Param->isParameterPack()` first and return immediately after
discarding the default argument, before ever calling
[5 lines not shown]
fix: remove nested @dir parents on deinstall
Since the dirs vec refactor (2.8.0), pkg_delete_dirs iterated
directories in ascending path order, so a parent @dir outside the
prefix (e.g. /var/db/gitea) was processed before its children and
unlinkat failed with ENOTEMPTY, leaving the parent behind as a
leftover. Iterate in reverse so children are removed first.
Add a regression test for nested out-of-prefix @dir trees.
pmtiles uses gobs of RAM when working with larger zoom levels, add a quick
MESSAGE warning about this (it's better to find out before you download
100GB+).
Relocate migrated container origins out of legacy .ix-virt
## Problem
Incus containers are ZFS clones of an image snapshot. The incus->container auto-migration relocated each container from `<pool>/.ix-virt/containers/<name>` to `<pool>/.truenas_containers/containers/<name>` with a bare `zfs rename` and did nothing else. A `zfs rename` does not change a clone's `origin`, so a migrated container stayed a clone of a snapshot still living inside `.ix-virt`. `.ix-virt` was visible in the UI and not delete-guarded, so deleting it recursively destroyed those origin snapshots and cascaded into the dependent migrated clones — silently destroying migrated containers.
## Solution
Relocate each container's origin image dataset out of `.ix-virt` before renaming the container, so no migrated container depends on anything under `.ix-virt`.
- **Shared relocation helper** — `container.relocate_container_origin` reads a container's live `origin`; if it points at an image under `.ix-virt/images` or `.ix-virt/deleted/images`, it renames that image dataset into the native `.truenas_containers/images/` tree, tags it `truenas:origin=incus-migration`, and sets `canmount=noauto`. All fan-out clones auto-repoint on the rename; an origin already outside `.ix-virt` is left alone; a relocation failure leaves the container wholly inside `.ix-virt` (best-effort, skip).
- **Migration path** — the incus->container migration calls the helper immediately before renaming each container, and skips any container whose base image cannot be relocated.
- **Repair migration** — new `0020_repair_incus_clone_origins` runs the same relocation over existing `container.container` rows for systems that already ran the old migration.
- **Delete guard** — `.truenas_containers` is added to `INTERNAL_PATHS` so it cannot be deleted out from under running containers; the plugin's own snapshot/clone/destroy calls that touch it now pass `bypass=True`.
- **Image garbage collection** — on container delete, a relocated origin image is destroyed once its last clone is gone, keyed on the `truenas:origin` tag so native image-cache datasets are never reaped. The image dataset is destroyed recursively so any snapshots it later accumulated (e.g. from a periodic snapshot task) do not block reclaim; this is safe because it only runs once the origin snapshot is confirmed clone-free.
- **Safer deletion** — `do_delete` destroys the dataset first (recursively, matching the apps stack, so a container that has snapshots is deletable) and removes the database and libvirt records only once the dataset is confirmed gone, so a failed destroy never orphans the dataset with no row pointing at it; an already-missing dataset is tolerated so a container whose data was lost to the old cascade can still be removed cleanly. Delete is now a single-locked job so concurrent deletes of fan-out siblings cannot race each other's image garbage collection.
- **Active-instance guards** — deleting or renaming a container that is not stopped (running or suspended) is refused; delete additionally accepts `force=True`, which stops it first, mirroring the VM delete flow. The container status model now includes the `SUSPENDED` state it can actually report.
NAS-141844 / 27.0.0-BETA.1 / Accept a pydantic model or dict in pylibvirt_vm/pylibvirt_container (#19348)
## Context
Every lifecycle and delete caller had to hand-dump its model before
calling these helpers, and for VMs that dump had to pass
`expose_secrets=True` or the display device's `Secret` password would be
silently redacted and a broken domain shipped. Leaking that invariant to
each call site was repetitive and easy to get wrong.
## Solution
`pylibvirt_vm` and `pylibvirt_container` now accept either a pydantic
model or a dict and do the `model_dump` internally — VMs with
`expose_secrets=True`, containers with a plain dump. Callers pass the
model directly, so the secret-exposure rule lives in one place. The
state-gathering factories in `extend_context_sync` keep passing their
raw pre-extend rows through the dict branch, since no full model exists
yet at that point.
[RegisterCoalescer] Avoid retrying high-cost joins for live intervals (#207976)
Recently we found a compile time problem in the case that contains much
high-cost live
interval. And normal interference failures still set `Again=true` and
can be retried
(it cost N^2 complexity). We tracks when a join failed only because of
the high-cost
guard, so that avoids putting such copies back into the retry worklist.
This reduce our huge function case from 14.6h to 12.8min in register
coalescer pass.
interfaces: defer vlan creation when dependant on bridge till after the bridge exists. This needs two separate vlan configuration runs to keep the old boot order unchanged.