HN Hall of Fame Weekly email

Cello: Higher level programming in C

Screenshot of libcello.org captured 2026-07-20
Page preview · captured 2026-07-20

The originally submitted URL now redirects to the address above. Updating the destination does not change the item’s HN history, Hall membership, or rank.

Resurfaced independently across 7 calendar years, with breakout response in 5 of them.

submissions
9
submitters
9
observed span
2013–2024
peak thread · 157 comments
535 pts
latest 20+ return · 2024-09-26
57 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

I want to make a few observations about this, and why I found it seemingly less "hacky" than other such attempts: - As I said in an earlier comment, "var" is just a typedef'd "void *". The downside is that libCello code is essentially untyped, but the upsides are that the C preprocessor is now enough to do the processing needed for the rest of the macros in the language, and that you can still mix regular typed C with…

Looking at the code, a great deal of this is non-portable and/or U.B, so I would hesitate to call it C. And I'm not talking about some hypothetical problems, but stuff that should surface quite soon. For example, this is how stack allocations are made: #define alloc_stack(T) ((struct T*)header_init( \ (char[sizeof(struct Header) + sizeof(struct T)]){0}, T, AllocStack)) So far as I can see, there are basically no alignment guarantees here - the returned pointer to the char array is not…

int_19h·348-point thread·

Author here. I always get asked two questions about libCello. 1. Why? 2. Is anyone using it for anything serious? The second one is easiest to answer: no. And most people are suprised to hear that I probably wouldn't use it for anything serious either. If you hadn't noticed from my github page I love C, and while I am also very interested in the things Cello adds such as duck typing and interfaces, and all the syntactic sugar that…

The strategy in the GC for determining the stack top for hunting GC roots will not work on all architectures. On aaarch-64, the address of a local dummy variable may be above a register save area in the stack frame, and thus the scan will miss some GC roots. In TXR Lisp, I used to use a hacked constant on aarch64: STACK_TOP_EXTRA_WORDS. It wasn't large enough to straddle the area, and so operation on aarch64 was unreliable. http://www.kylheku.com/cgit/txr/commit/?id=3aa731546c4691fac... A good…

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
5

100+ points or 50+ comments

Total points
1672

reference only — not used in Hall rules or ranking

Total comments
542

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2013-05-07Higher level programming in Calvivi181
2013-07-15Cello: Higher level programming in CFirst breakout · Best threadmntmn535157
2014-12-26Cello – Higher Level Programming in Cdenysonique29165
2016-06-15Cello: High Level Cphantom_oracle71
2017-01-10High-level development in C with libcelloausjke31
2017-04-11Cello – A library that brings higher level programming to CHall inductiondlsym348151
2020-01-20Cello – High Level Cthisisastopsign25177
2022-03-05Cello – High Level Cgraderjs16285
2024-09-26Cello: High Level CLatest 20+ point returngatane574