frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Parsing Advances

https://matklad.github.io/2025/12/28/parsing-advances.html
35•birdculture•2h ago

Comments

kccqzy•1h ago
How about another way, which is memoization: at each position in the source code we never attempt to parse the same production more than once. This solves infinite looping as discussed by the author because the “loop” will be downgraded by the memoization to execute once. Of course I wouldn't literally use a while loop in code to represent the production. I would use a higher-level abstraction to indicate one-or-more or zero-or-more in the production; indeed I would represent productions as data not code.

This also has another benefit of work sharing. A production like `A B | C B` will ensure that in case parsing A or C consumes the same number of characters, the work to parse B will be shared, despite not literally factoring the production into `(A | C) B`.

smj-edison•1h ago
That's a slick way, would you essentially have a second counter that you'd set to the current cursor whenever you use `.currentToken()` or something like that?
smj-edison•1h ago
Huh, that's a really interesting approach. I just wrote my first Pratt parser a month ago, and one of the most annoying things was debugging infinite loops in various places (I had both tokenizer bugs where no characters were consumed and parser bugs where a token was emitted but not advanced). It's doubly annoying in Zig, because the default test runner won't print out stdout at all, and won't print stderr unless the program terminates by itself (Ctrl + C doesn't print). I resorted to building the test and running it manually, or jumping into a debugger to figure out recursion issues. It's working now, but if (really when) I run into issues in the future I'll definitely add some helper functions to check emitting invariants.

Google is dead. Where do we go now?

https://www.circusscientist.com/2025/12/29/google-is-dead-where-do-we-go-now/
497•tomjuggler•5h ago•466 comments

Hacking Washing Machines (39C3) [video]

https://media.ccc.de/v/39c3-hacking-washing-machines
12•clausecker•36m ago•0 comments

Show HN: Stop Claude Code from forgetting everything

https://github.com/mutable-state-inc/ensue-skill
73•austinbaggio•3h ago•105 comments

MongoDB Server Security Update, December 2025

https://www.mongodb.com/company/blog/news/mongodb-server-security-update-december-2025
27•plorkyeran•1h ago•9 comments

Outside, Dungeon, Town: Integrating the Three Places in Videogames (2024)

https://keithburgun.net/outside-dungeon-town-integrating-the-three-places-in-videogames/
18•vector_spaces•1h ago•3 comments

Geology of the Gulf of the Farallones National Marine Sanctuary

https://pubs.usgs.gov/fs/farallones/
27•greesil•3h ago•8 comments

Parsing Advances

https://matklad.github.io/2025/12/28/parsing-advances.html
35•birdculture•2h ago•3 comments

When someone says they hate your product

https://www.getflack.com/p/responding-to-negative-feedback
95•jger15•6h ago•75 comments

100x (YC S22) Is Hiring a Front End Engineer

1•shardullavekar•1h ago

Static Allocation with Zig

https://nickmonad.blog/2025/static-allocation-with-zig-kv/
159•todsacerdoti•10h ago•81 comments

Flame Graphs vs Tree Maps vs Sunburst (2017)

https://www.brendangregg.com/blog/2017-02-06/flamegraphs-vs-treemaps-vs-sunburst.html
101•gudzpoz•2d ago•26 comments

I migrated to an almost all-EU stack and saved 500€ per year

https://www.zeitgeistofbytes.com/p/bye-bye-big-tech-how-i-migrated-to
42•alexcos•2h ago•22 comments

Vitest Browser Mode Guide

https://howtotestfrontend.com/resources/vitest-browser-mode-guide-and-setup-info
23•howToTestFE•5d ago•1 comments

Kidnapped by Deutsche Bahn

https://www.theocharis.dev/blog/kidnapped-by-deutsche-bahn/
941•JeremyTheo•13h ago•841 comments

List of domains censored by German ISPs

https://cuiiliste.de/domains
301•elcapitan•7h ago•120 comments

A production bug that made me care about undefined behavior

https://gaultier.github.io/blog/the_production_bug_that_made_me_care_about_undefined_behavior.html
110•birdculture•8h ago•67 comments

All Delisted Steam Games

https://delistedgames.com/all-delisted-steam-games/
193•Bondi_Blue•7h ago•77 comments

Show HN: Aroma: Every TCP Proxy Is Detectable with RTT Fingerprinting

https://github.com/Sakura-sx/Aroma
66•Sakura-sx•4d ago•39 comments

Show HN: Superset – Terminal to run 10 parallel coding agents

https://superset.sh/
67•avipeltz•6d ago•62 comments

Incremental Backups of Gmail Takeouts

https://baecher.dev/stdout/incremental-backups-of-gmail-takeouts/
11•pbhn•4d ago•4 comments

Linux DAW: Help Linux musicians to quickly and easily find the tools they need

https://linuxdaw.org/
193•prmoustache•13h ago•95 comments

Intelligence – A Mystery Investigation Game

https://intelligencegame.tech/
20•throw_a_grenade•4d ago•1 comments

Stanford Lecture: Dr. Don Knuth – Adventures with Knight's Tours [video]

https://www.youtube.com/watch?v=MKiRte-tnMY
20•vismit2000•5d ago•2 comments

Libgodc: Write Go Programs for Sega Dreamcast

https://github.com/drpaneas/libgodc
206•drpaneas•12h ago•47 comments

Show HN: A 45x45 Connections Puzzle To Commemorate 2025=45*45

https://thomaswc.com/2025.html
15•thomaswc•6d ago•5 comments

ManusAI Joins Meta

https://manus.im/blog/manus-joins-meta-for-next-era-of-innovation
119•gniting•3h ago•66 comments

Obelisk 0.32: Cancellation, WebAPI, Postgres

https://obeli.sk/blog/announcing-obelisk-0-32/
23•tomasol•6h ago•5 comments

Karpathy on Programming: "I've never felt this much behind"

https://twitter.com/karpathy/status/2004607146781278521
316•rishabhaiover•3d ago•333 comments

Which Humans? (2023)

https://osf.io/preprints/psyarxiv/5b26t_v1
34•surprisetalk•6h ago•14 comments

You can't design software you don't work on

https://www.seangoedecke.com/you-cant-design-software-you-dont-work-on/
247•saikatsg•18h ago•87 comments