leaves: Initial package 0.2.0 (cross)
Text-mode disk usage visualization utility
Leaves is a disk usage analyzer inspired by WinDirStat and QDirStat.
It shows files and directories in a hierarchy of nested rectangles.
The area of a rectangle is proportional to its size.
A 200 MB file will have twice the size as a sibling with 100 MB.
The parent directory will have about 3 times the area of the smaller file.
[X86] Lower bf16->f32/f64 fpext without a GPR round-trip (#218359)
`fpext bfloat to float/double` currently lowers `ISD::BF16_TO_FP` via the
generic target-independent expansion (extend to i32, shl 16, bitcast to
f32), which always forces the value out of its XMM register into a GPR
and back.
Fixes #155270
Add a custom `BF16_TO_FP` lowering (mirroring the existing `FP_TO_BF16`
function) for f32/f64 results that does
the shift in-register instead.
Only on targets with SSE2 or higher otherwise still falls back to the
existing generic expansion.
The updated lowering then for the example
```llvm
define float @src32(bfloat %a0) {
%res = fpext bfloat %a0 to float
[33 lines not shown]
Stop treating an empty catalog as a valid catalog
## Problem
`get_trains()` returns an empty mapping when `catalog.json` is missing or unparseable, nothing prevents that from being cached for 25 hours, and the cache-hit test only asked whether the entry was `not None` — so an empty dict was served back as a legitimate hit. Every reader then reads "no catalog data" as "nothing to update": apps report `upgrade_available=false` with a null `latest_version`, `upgrade_summary` refuses to upgrade any app, Discover shows nothing, and the sync job reports SUCCESS while deleting `CatalogSyncFailed`, `CatalogNotHealthy` and `AppUpdate` — a false all-clear that nothing re-derives. The cache lives on tmpfs, so a poisoned entry survives a middlewared restart and only clears on reboot. The missing-`catalog.json` case logged nothing at all.
The cache key encoded only the catalog label, while the catalog location flips between the apps dataset and a tmpfs path depending on whether that dataset is mounted. `catalog.sync` and `catalog.apps` resolve the location independently, so a mount-state change between them lets a read be served data that was written for the other location.
## Solution
- **Never cache a non-answer.** `catalog.apps` only writes the cache when it actually parsed trains, and an empty entry it finds on the way in is popped so an already-affected system recovers without a reboot.
- **Fail the sync loudly.** Reading no trains at all now raises inside `sync()`, so the existing handler raises `CatalogSyncFailedAlert` and the job fails instead of publishing "no apps" as a healthy catalog. `catalog.synced` stays false, which finally makes it mean what it says.
- **Only clear the health alert on evidence.** `CatalogNotHealthy` was deleted before the trains were read, so a broken catalog dismissed the alert describing its own breakage. The delete now happens beside the create, after a successful read of every train.
- **Don't delete the update alert on no evidence.** `update_app_upgrade_alert` abstains when no catalog data is available, rather than reading "every app reports no upgrade" as proof that nothing needs updating. `upgrade_summary` says the catalog data is unavailable instead of claiming no upgrade exists.
- **Key the cache by location** so data written against one location is never served for the other.
- **Bound the git operations.** The clone/pull/reset/checkout/status calls had no timeout, so a wedged `git` held the repository lock and blocked every later sync.
Also removes the unused `image_updates_available` parameter from `upgrade_available_for_app()`. It was never passed by either call site, and the equivalent override in `list_apps()` is the one that actually runs. The two are not interchangeable: an ix-app is a catalog app, so the version comparison inside the helper answers first and would hide a pending image update. The new tests pin that behaviour so the parameter is not "fixed" by wiring it up.
[mlir][LLVM] Verify that constant attribute and result types match
`llvm.mlir.constant` only checked that the kind of the value attribute suits
the kind of the result type, never that the types themselves agree. All of the
following verified:
%0 = llvm.mlir.constant(1 : index) : i64
%1 = llvm.mlir.constant(1 : i8) : i16
%2 = llvm.mlir.constant(dense<1> : vector<4xi32>) : vector<4xi64>
Translation ignores the attribute type and uses the result type, so the
attribute type was effectively decorative for integers, and passes that read it
back could observe a type that has nothing to do with the value.
Require exact type equality for integer attributes and exact element type
equality for integer elements attributes, mirroring the `AllTypesMatch`
constraint `arith.constant` gets from ODS. The op cannot use that trait itself
because `value` is an `AnyAttr` that also holds `StringAttr` and `ArrayAttr`.
The element type check is also run on the scalable vector path, which
[11 lines not shown]
[SelectionDAG] Fix load/store legalization for softened x86_fp80 (#209991)
Fixes #73201
This fixes a crash during x86_fp80 load/store legalization with x87
disabled. When x86_fp80 is softened to wider integer type, the type
legalizer generates regular loads and stores using widened type, which
can trigger a "Size mismatch" assertion.
This is fixed by using extending loads and truncating stores when the
softened type is wider than the original memory type.
[lldb] Replace the VERIFY_MEMORY_READS define with a setting (#218928)
The cache verification block reads every range twice, once through the
cache and once straight from the process, and compares them. It sat
behind a commented-out `#define`, so nothing compiled it, and it had
stopped compiling: `m_memory_cache.Read(this, addr, buf, size, error)`
passes five arguments to a four-argument function.
Since I am going to change L1/L2 cache, I'd like to enable the cache
verification. Replace the `#define` with
`target.process.verify-memory-reads`,
next to `disable-memory-cache`, and check both entry points that go
through the
cache: `ReadMemory`, and `ReadMemoryRanges` one range at a time. A
mismatch names which of the three checks failed, logs both results on
the
`process` channel because the assert message cannot carry them, and then
asserts. Reporting is an assert, so the getter, the helper and the two
calls sit behind `#ifndef NDEBUG`, and a release build carries none of
[15 lines not shown]
[FLANG][Driver] Support -fno-profile-generate and -fprofile-generate=<dir> in flang (#216643)
Added support for PGO options `-fno-profile-generate` and `-fno-profile-generate` in flang.
fish/v3: fix build with libcxx22
libcxx22 uses [[__fallthrough__]] in a couple of headers, so redefining
__fallthrough__ to __attribute__((fallthrough)) yields a syntax error:
/usr/include/c++/v1/__functional/hash.h:70:24: error: expected expression
70 | [[__fallthrough__]];
| ^
Just don't do that...
[LV] Mark functions in legacy cost model const (NFC) (#216282)
To make clear that these functions do not set widening decisions or
mutate any other state in LoopVectorizationCostModel, mark them const.
filezilla: update to 3.71.1.
3.71.1 (2026-08-26)
- macOS: Work around a bug in macOS 27 where setting the locale to non-English triggers crashes in AppKit
- SFTP: Improved heuristic when keyboard-interactive requests are treated as a simple password prompt on servers not offering the password authentication method
fd-find: update to 10.5.0.
## Features
- Add `--ignore-parent` option to override `--no-ignore-parent`, see #1958 (@tmchow)
- Add `--exact` option to match the entire filename exactly (literal, non-substring).
## Bugfixes
- Sanitize control characters and bidirectional override characters in filenames
when output goes to a terminal, to prevent terminal escape-sequence injection.
Also reject a placeholder as the executable for `--exec-batch`, while still
allowing it for `--exec`.
- Handle invalid working directories gracefully when using `--full-path`, see #1900 (@Xavrir).
- Fire the "search pattern contains a path separator" diagnostic for any pattern containing `/`, not just patterns that happen to name an existing directory. Preserves the legacy Windows behaviour that also flags native `\` separators when the pattern resolves to a real directory. See #1873.
- Also fire the "search pattern contains a path separator" diagnostic for `--and` patterns, not only the primary positional pattern. `--and` patterns are matched against the file name just like the primary pattern, so a path separator in them silently returned zero results. See #1873.
- Fix bug where passing "-" as a directory argument didn't actually search that directory, see #849 (@Sean-Kenneth-Doherty).
- Fix panic when `--changed-before`/`--changed-within` is given an out-of-range `@` Unix timestamp; the value is now rejected gracefully, see #2081 (@nikolauspschuetz).