Incident with Pull Requests, Git Operations and Issues
GitHub experienced an incident affecting pull requests, Git operations, and issues. The provided details do not specify the cause or duration. (githubstatus.com)
Pratt parsing is presented not merely as a compact parsing algorithm but as a different way to think about grammar. Instead of attaching semantic actions to production rules, as traditional parsers do, it attaches them to terminal tokens. A token’s “nud” action handles it when nothing precedes it; its “led” action handles it when it follows an existing expression. Binding powers determine how expressions group. The parser repeatedly consumes tokens and dispatches to these actions, reducing expression parsing to asking what a token expects on its left. This perspective can make constructs that seem to require separate grammar rules - such as function calls - natural: an opening parenthesis is a led because it follows the function expression.
The author argues that this organization avoids left recursion, backtracking, and the need to undo semantic actions, since each action runs once for a valid match. It also permits actions to look ahead or invoke other parsing techniques, and leaves unused token-table entries available as extension points for macros or user-defined operators. Examples from a compiler show dispatch tables for nud, led, and binding-power handlers, plus a unary-operator action and array-indexing logic. These advantages do not make Pratt a universal ambiguity detector: when grammars or parsers are combined, conflicts can remain, and Pratt generally takes the first match. The key shift is to design parsing around the expectations created by each token, rather than around production rules.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.
GitHub experienced an incident affecting pull requests, Git operations, and issues. The provided details do not specify the cause or duration. (githubstatus.com)
Osewa is an open-source SSH and Mosh alternative that keeps terminal sessions running on the host and supports roaming across networks. It uses QUIC or WebSocket connections and prioritizes keystrokes, with benchmarks showing faster input response than SSH on poor connections. (osewa.dev)
Milkman is a JavaFX request-and-response workbench designed as a lightweight alternative to Postman. Its plugin system supports HTTP, databases, gRPC, GraphQL, and other technologies. (milkman.dev)
Kitty 0.50 is a release of the GPU-accelerated terminal emulator. The supplied content contains no changelog details about what changed in this version. (sw.kovidgoyal.net)
Unix V4’s C toolchain used a simple linear allocator that grew memory with sbrk() and never freed it. Its recovered source also includes a file named malloc.c, offering a glimpse into early Unix memory management. (napcakes.nekoweb.org)
Affinity is bringing its creative software to Linux, and development is underway. The company has not announced a release date. (twitter.com)
Today's best Hacker News stories, summarized and screenshotted, one email a day.