freenode

← digests

Swift once-calls, Cabal Buck2, glibc CTI fight, Git fixes

Languages & Toolchains2026-10-05

Swift and Haskell forums advanced language and build proposals while glibc maintainers disputed infrastructure governance and several Git patches targeted packing, fetch, and worktree behavior. The day mixed evolution pitches with heated process arguments and concrete tooling fixes.

Swift pitch for at-most-once function calls

A Swift Evolution pitch on the forums proposes an @called(once) attribute to annotate functions that run at most once. Discussion focuses on non-escaping closures and dependency injection as ways to model the guarantee. Developers who care about call-site contracts and compiler-enforced lifetime rules have a concrete design to evaluate.

Buck2 build system experiment for Cabal

Simon Marlow posted an experiment wiring Buck2 into Cabal projects on the Haskell Discourse. Participants examined build performance, modularity, and whether the work could move upstream. Haskell maintainers weighing alternative build stacks gain a practical data point on integration cost and speed.

Glibc clash over CTI infrastructure transition

Glibc developers on libc-alpha disputed the absence of list consensus for a Linux Foundation CTI infrastructure move and questioned the legitimacy of the decision process, referencing Office Hours minutes from 2026-08-28. The exchange turned heated over governance norms for core library infrastructure. Anyone depending on glibc release engineering and hosting stability has reason to track how the process dispute resolves.

Git packfile fix for stale delta base cache

A two-patch series on the Git list corrects packfile corruption that arises when stale delta-base-cache entries outlive freed and reused pack structures. The change restores integrity after pack lifetime ends. Operators and packagers benefit from fewer silent corruption cases in generated packs.

Git option to limit branch fetches in shallow clones

A patch series proposes remote..refmap configuration and a --limited-fetch mode so shallow repositories need not pull every branch. The goal is selective ref transfer without the full branch set. Users of large or bandwidth-limited shallow clones obtain tighter control over what is fetched.

Git hooks for worktree add and remove

A three-patch series adds post-worktree-add and post-worktree-remove hooks (with related move coverage) so external tools can react to worktree lifecycle events. The hooks extend Git automation points beyond the existing set. Teams scripting multi-worktree setups gain reliable extension hooks for add and remove paths.

Git branch --delete-merged for squash merges

A patch teaches git branch --delete-merged to treat squash-merged or rebased branches as merged when their changes already appear in an upstream commit. Cleanup then matches common squash and rebase workflows. Developers who land work via squash merges get more accurate merged-branch detection.

Haskell debate on whether effect systems are required

A heated Haskell Discourse thread argues that custom effect handling can suffice and questions the need for full effect systems, with the author defending a minimal style against advocates of libraries such as effectful and unified interfaces. The discussion surfaces trade-offs between bespoke and library-based effect abstraction. Library authors choosing effect strategies have a clear map of the competing positions.