Linux 7.3 Released
Linux kernel 7.3 has been released, featuring 18,765 commits from over 3,000 developers, including many first-timers. Major updates include new filesystem features, performance improvements, and system call enhancements. (lwn.net)
Valen introduces a borrow checker that performs its safety checks by walking a function backward from its end to its start. Compilation has four phases: parsing, static typing, static grouping (where each reference is resolved to the precise variable or path it points to), and a backwards safety-check pass. The safety pass maintains a pending set of values that are used later: when encountering a USE it adds the referenced group to pending, when encountering a DECLARE it removes it, and when encountering a MUTATE it verifies that nothing in pending is invalidated. That backwards scan directly discovers use-after-free cases by detecting mutations to groups that are still pending for later use, and it treats reference-target information from static grouping as part of the type to determine invalidation relationships.
The reverse approach simplifies locating last uses, handles loops more naturally, and can be faster by avoiding forward liveness inference. Examples show a definite use-after-free: taking a reference into e.buffs, calling e.add_buff() (which mutates e), then using the reference - the backwards pass sees the later USE, adds the buff reference to pending, then finds the MUTATE to e and flags the conflict. A non-error reordering demonstrates pending being cleared by a DECLARE before mutation. This backward design is unusual compared to typical forward-region constraint solving and forward safety passes, and aims to make memory-safety checking more direct and efficient.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.
Linux kernel 7.3 has been released, featuring 18,765 commits from over 3,000 developers, including many first-timers. Major updates include new filesystem features, performance improvements, and system call enhancements. (lwn.net)
Tmux is used to run multiple AI coding agents, including Claude Code, in named, detachable sessions that persist across connections. It enables scripting, monitoring, and managing several agents simultaneously through features like send-keys and capture-pane. (crystl.dev)
Constructors in programming should not throw exceptions, as it can lead to unpredictable object states. Instead, constructors should handle errors gracefully, promoting safer and more reliable code. (t3.at)
OmniPTY is an opinionated terminal emulator for macOS and Linux that features splits, workspaces, a file tree, and an integrated prompt. It is GPU-rendered and written in Rust. (github.com)
Building personal software factories is a waste of time for most developers, as AI tools can accomplish similar goals more efficiently. Instead, focus on learning how AI models work and applying automation to work-related systems for tangible benefits. (peterp.me)
The Free Pascal Compiler and Lazarus IDE now support dynamic packages, enabling quick creation and installation of components and plugins without rebuilding the IDE. This feature enhances flexibility by allowing programs to use replaceable plugins and modules, with some restrictions on unit names and package size. (getlazarus.org)
Today's best Hacker News stories, summarized and screenshotted, one email a day.