Top all-time · #3296
non-O(n) musings
Personal blog · jamey.thesharps.usprogrammingsystems
non-O(n) musings is a personal blog at jamey.thesharps.us about programming and systems. Since 2016, 23 different Hacker News readers have linked it 34 times, most often “Per-Project Postgres”. The last post was in 2023, but the archive is still widely read.
Too few sampled comments (7) to say how often HN recommends it.?
Why HN links it
Jamey Sharp's blog covers Corrode, a C-to-Rust translator written in Haskell, and per-project Postgres setup. HN readers link it for the Corrode design and its documentation.
Summarised by Claude from a sample of 7 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Sometimes linearity is overrated.
Most-linked posts?
- Per-Project Postgres4 people · 5 mentions · first linked 2019-06-15
- Corrode: Translating C to Rust (and how you can help)4 people · 5 mentions · first linked 2016-07-08
- Go to Statement Considered (Mostly) Harmless: Translating C's "goto" to Rust3 people · 3 mentions · first linked 2016-11-16
- How not to replace email: lessons from Google Wave2 people · 2 mentions · first linked 2018-02-17
- C2rust vs. Corrode2 people · 2 mentions · first linked 2018-07-01
- Corrode update: support from Mozilla, and new features2 people · 2 mentions · first linked 2016-11-01
What Hacker News says?
Speaking of making Postgres easy to setup and use, here are instructions for setting up per-project Postgres ("So I worked out how to set up a Postgres database that’s almost as convenient as SQLite."): https://jamey.thesharps.us/2019/05/29/per-project-postgres/
Comment linking /2019/05/29/per-project-postgres/
on “Learn Postgres at the Playground – Postgres compiled to WASM running in browser”Submitted How not to replace email: lessons from Google Wave as a story · 336 points
HN discussionIn fact they have explicitly documented it: http://jamey.thesharps.us/2016/07/translating-c-to-rust-and-... > The only reason I wrote Corrode in Haskell is because I couldn't find a complete enough C parser for Rust, and I was already familiar with the language-c parser for Haskell.
Comment linking /2016/07/translating-c-to-rust-and-how-you-can.html
on “Corrode: C to Rust translator written in Haskell”Submitted C2rust vs. Corrode as a story · 200 points
HN discussion> I do get that Haskell is useful to be taken as a tool for these kind of code transformations (at least I have seen quite a few of those) but I am always a bit surprised that people would start such a project in a language that has -per se- nothing to do with either the source or the target language. The author explained this in a blog post[0]: Haskell has a very complete C parser library with a nice API[1] which t…
Comment linking /2016/07/translating-c-to-rust-and-how-you-can.html
on “Corrode: C to Rust translator written in Haskell”Submitted How to translate a large C project to Rust as a story · 158 points
HN discussionIt's not that bad to read. The documentation alone makes it easy to work on. This was dropped in the /r/rust thread: http://jamey.thesharps.us/2016/07/translating-c-to-rust-and-... He lays it out fairly well for people to help out.
Comment linking /2016/07/translating-c-to-rust-and-how-you-can.html
on “Corrode: C to Rust translator written in Haskell”Submitted Search-based compiler code generation as a story · 69 points
HN discussionThea author wanted me to drop a link to his blog post on contributing: http://jamey.thesharps.us/2016/07/translating-c-to-rust-and-...
Comment linking /2016/07/translating-c-to-rust-and-how-you-can.html
on “Corrode: C to Rust translator written in Haskell”Submitted Authenticating Shared Web Caches as a story · 52 points
HN discussionThe short form is that Corrode is effectively deprecated in favor of c2rust. Indeed, Corrode hasn't been updated since 2017, while c2rust still gets active development—last commit as of my writing this was 2 days ago. It's worth noting that the developer of Corrode was consulted on the early design of c2rust, which means c2rust was able to benefit from hindsight on architectural decisions in Corrode. That ended up l…
Comment linking /2018/06/30/c2rust-vs-corrode/
on “C2Rust Transpiler”Submitted Which projects should convert to Rust? as a story · 35 points
HN discussion> I had a quick look at Hackage and noticed that someone already has written a parser for Java in Haskell The author of "corrode"[1] wrote it in Haskell because there already was a C parser available. As always, the importance of libraries. [1]: http://jamey.thesharps.us/2016/10/corrode-update-support-fro...
Comment linking /2016/10/corrode-update-support-from-mozilla-and.html
on “Using Haskell to Find Unused Spring MVC Code”Submitted Translating C99 to Rust as a story · 4 points
HN discussionI would agree, but I think it's worth checking out one of Siver's postgres repos where I thought he tested things pretty well[0]. Also things like Postgres are often run as a "server" on local dev or CI but could easily be run more ephemerally[1]. That should help with testing various states and behavior of the database. I still would actually follow what you said thought because often times places which rely on sto…
Comment linking /2019/05/29/per-project-postgres/
on “Use Databases Without Putting Domain Logic in Them”Submitted Search-based compiler code generation as a story · 3 points
HN discussionSubmitted Per-Project Postgres (2019) as a story · 3 points
HN discussionSubmitted Per-Project Postgres as a story · 3 points
HN discussionSubmitted Control Flow in Automatic C to Rust Conversion as a story · 3 points
HN discussionSubmitted Per-Project Postgres (2019) as a story · 2 points
HN discussionSubmitted How not to replace email as a story · 2 points
HN discussionSubmitted Go to Statement Considered (Mostly) Harmless: Translating C's "goto" to Rust as a story · 2 points
HN discussionSubmitted Go to Statement Considered (Mostly) Harmless as a story · 2 points
HN discussionSubmitted Go to Statement Considered (Mostly) Harmless – Translating C with Gotos to Rust as a story · 2 points
HN discussionSubmitted Corrode update: support from Mozilla, and new features as a story · 2 points
HN discussionSubmitted How to eliminate “goto” statements (and translate C to Rust) as a story · 2 points
HN discussionSubmitted The most general reverse proxy as a story · 1 points
HN discussionSubmitted Private and secure multiparty histograms as a story · 1 points
HN discussionSubmitted Corrode update: control flow translation correctness as a story · 1 points
HN discussionSubmitted Which projects should convert to Rust? as a story · 1 points
HN discussion