frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Packed Data Support in Haskell

https://arthi-chaud.github.io/posts/packed/
77•matt_d•10mo ago

Comments

nine_k•10mo ago
> Introducing the ‘packed’ data format, a binary format that allows using data as it is, without the need for a deserialisation step. A notable perk of this format is that traversals on packed trees is proven to be faster than on ‘unpacked’ trees: as the fields of data structures are inlines, there are no pointer jumps, thus making the most of the L1 cache.

That is, a "memory dump -> zero-copy memory read" of a subgraph of Haskell objects, allowing to pass such trees / subgraphs directly over a network. Slightly reminiscent of Cap'n Proto.

90s_dev•10mo ago
We are always reinventing wheels. If we didn't, they'd all still be made of wood.
Zolomon•10mo ago
They mention this in the article.
spockz•10mo ago
It reminds me more of flat buffers though. Does protobuf also have zero allocation (beyond initial ingestion) and no pointer jumps?
cstrahan•10mo ago
No, one example of why being variable sized integers.

See https://protobuf.dev/programming-guides/encoding/

carterschonwald•10mo ago
One thing that sometimes gets tricky in these things is handling Sub term sharing. I wonder how they implemented it.
tlb•10mo ago
> the serialised version of the data is usually bigger than its in-memory representation

I don’t think this is common. Perhaps for arrays of floats serialized as JSON or something. But I can’t think of a case where binary serialization is bigger. Data types like maps are necessarily larger in memory to support fast lookup and mutability.

nine_k•10mo ago
I suppose all self-describing formats, like protobuf, or thrift or, well, JSON are bigger than the efficient machine representation, because they carry the schema in every message, one way or another.
IsTom•10mo ago
If you use a lot of sharing in immutable data it can grow a lot when serializing. A simple pathological example would be a tree that has all left subtrees same as the right ones. It takes O(height) space in memory, but O(2^height) when serialized.
gitroom•10mo ago
honestly i wish more stuff worked this way - fewer hops in memory always makes me happy
lordleft•10mo ago
This was very well written. Excellent article!
NetOpWibby•10mo ago
Is this like MessagePack for Haskell?

Agentic pre-commit hook with OpenCode Go SDK

https://packagemain.tech/p/agentic-pre-commit-hook-with-opencode
1•der_gopher•1m ago•0 comments

Writing a 3D Point-Cloud Library in Rust

https://github.com/rajgandhi1/threecrate
1•rajgandhi95•4m ago•1 comments

Dart Back End in 2026

https://dinkomarinac.dev/blog/dart-backend-2026-what-flutter-teams-should-actually-use/
2•dinko7•6m ago•1 comments

An Open Letter to Georgetown Students, in Response to "Generative AI"

https://medium.com/center-on-privacy-technology/an-open-letter-to-georgetown-students-in-response...
2•mathgenius•9m ago•0 comments

The Death of Character in Game Console Interfaces

https://vale.rocks/posts/game-console-interfaces
1•OuterVale•10m ago•0 comments

Human code review is still cheaper than fully automated verification

https://peterlavigne.com/writing/human-code-review-over-full-verification
1•peterlavigne•12m ago•0 comments

GitHub appears to be struggling with measly three nines availability

https://www.theregister.com/2026/02/10/github_outages/
2•richtr•13m ago•0 comments

Roots – Return Old Online Things to Your Own Site

https://macwright.com/2026/03/12/roots
2•stevekrouse•13m ago•0 comments

My Sage Barista espresso machine is now smart

https://www.kopiro.me/press/sage-barista-via-zigbee/index.html
1•kopiro91•13m ago•0 comments

Drop Select2 in Rails – zero dependencies, vanilla JavaScript, Turbo ready

https://github.com/GhennadiiMir/remote_select
1•ghennadiimir•15m ago•0 comments

IrfanView: About the Author

https://www.irfanview.com/main_about.htm
3•kome•16m ago•0 comments

Velr – an embedded property-graph database in Rust on top of SQLite

https://github.com/velr-ai/velr
1•tomas-ks•16m ago•1 comments

I Built an AI Receptionist for a Luxury Mechanic Shop – Part 1

https://www.itsthatlady.dev/blog/building-an-ai-receptionist-for-my-brother/
11•mooreds•20m ago•6 comments

New SVD Algorithm

https://github.com/johsteffens/mocutsvd
1•johsteffens•23m ago•0 comments

Trivy report prior incident part of 'ongoing and evolving attack'

https://www.aquasec.com/blog/trivy-supply-chain-attack-what-you-need-to-know/
1•philipwhiuk•24m ago•1 comments

High-performance JSON library for Elixir via Rustler NIFs, powered by sonic-rs

https://github.com/lpgauth/torque
1•fidotron•24m ago•0 comments

Man designed cancer vaccine for his dog with aid from AI

https://news.unsw.edu.au/en/meet-the-man-who-designed-a-cancer-vaccine-for-his-dog
2•ndtm•26m ago•0 comments

Shadows Shouldn't Stack

https://gist.github.com/chadluo/d5d7782613dc864473f16fbc9cd8d1d4
1•yukirock•27m ago•0 comments

The Problem with Representative Democracy

https://foreignpolicy.com/2026/02/13/helene-landemore-representative-politics-democracy-politicia...
1•mooreds•30m ago•1 comments

Convergence of Wi-Fi and 5G

https://systemsapproach.org/2026/02/23/convergence-of-wi-fi-and-5g/
1•teleforce•31m ago•0 comments

Escaping Nulliverse

https://theelderscripts.com/escaping-nulliverse/
1•haarlemist•32m ago•1 comments

State of the Global Climate 2025

https://wmo.int/publication-series/state-of-global-climate/state-of-global-climate-2025
3•hkhn•34m ago•0 comments

EPP wants to overturn and force new vote for indiscriminate Chat Control

https://digitalcourage.social/@echo_pbreyer/116266597665909346
1•latexr•34m ago•0 comments

Convergence takes off in the datacenter

https://systemsapproach.org/2026/03/23/convergence-takes-off-in-the-datacenter/
1•teleforce•34m ago•0 comments

Westerners are fleeing their countries in record numbers

https://www.economist.com/finance-and-economics/2026/03/22/westerners-are-fleeing-their-countries...
1•cicko•34m ago•0 comments

Migrating to the EU

https://rz01.org/eu-migration/
3•exitnode•35m ago•0 comments

Trepan: Context Drift Catcher

https://github.com/dsadsadsadsadas/Trepan
1•slx44i•37m ago•0 comments

OS Kickstart

https://github.com/dpanic/os-kickstart
2•mandarino•40m ago•0 comments

Show HN: Agent-IM – IM, but for Agents

https://github.com/LinklyAI/agent-im
1•blueeon•41m ago•0 comments

Why using AI to modernize legacy mainframe hairballs is harder than you think

https://www.sage-tech.ai/blog/zsqdg1dddi33t1iq5gwckh2hdgwu4i
1•mooreds•41m ago•0 comments