frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

SectorC: A C Compiler in 512 bytes

https://xorvoid.com/sectorc.html
71•valyala•3h ago•14 comments

Brookhaven Lab's RHIC concludes 25-year run with final collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
23•gnufx•2h ago•10 comments

I write games in C (yes, C)

https://jonathanwhiting.com/writing/blog/games_in_c/
119•valyala•3h ago•90 comments

The F Word

http://muratbuffalo.blogspot.com/2026/02/friction.html
27•zdw•3d ago•2 comments

Software factories and the agentic moment

https://factory.strongdm.ai/
81•mellosouls•6h ago•154 comments

Speed up responses with fast mode

https://code.claude.com/docs/en/fast-mode
39•surprisetalk•3h ago•48 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
142•AlexeyBrin•9h ago•26 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
91•vinhnx•6h ago•11 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
848•klaussilveira•23h ago•255 comments

First Proof

https://arxiv.org/abs/2602.05192
62•samasblack•6h ago•50 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
1087•xnx•1d ago•618 comments

Al Lowe on model trains, funny deaths and working with Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
60•thelok•5h ago•9 comments

Reinforcement Learning from Human Feedback

https://rlhfbook.com/
90•onurkanbkrc•8h ago•5 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
228•jesperordrup•13h ago•80 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
512•theblazehen•3d ago•189 comments

We mourn our craft

https://nolanlawson.com/2026/02/07/we-mourn-our-craft/
317•ColinWright•2h ago•379 comments

Coding agents have replaced every framework I used

https://blog.alaindichiappari.dev/p/software-engineering-is-back
249•alainrk•8h ago•401 comments

Show HN: I saw this cool navigation reveal, so I made a simple HTML+CSS version

https://github.com/Momciloo/fun-with-clip-path
25•momciloo•3h ago•4 comments

France's homegrown open source online office suite

https://github.com/suitenumerique
607•nar001•7h ago•266 comments

72M Points of Interest

https://tech.marksblogg.com/overture-places-pois.html
34•marklit•5d ago•6 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
177•1vuio0pswjnm7•10h ago•246 comments

Selection Rather Than Prediction

https://voratiq.com/blog/selection-rather-than-prediction/
11•languid-photic•3d ago•4 comments

A Fresh Look at IBM 3270 Information Display System

https://www.rs-online.com/designspark/a-fresh-look-at-ibm-3270-information-display-system
45•rbanffy•4d ago•9 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
123•videotopia•4d ago•37 comments

History and Timeline of the Proco Rat Pedal (2021)

https://web.archive.org/web/20211030011207/https://thejhsshow.com/articles/history-and-timeline-o...
20•brudgers•5d ago•4 comments

Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev

https://github.com/sandys/kappal
28•sandGorgon•2d ago•14 comments

Where did all the starships go?

https://www.datawrapper.de/blog/science-fiction-decline
90•speckx•4d ago•102 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
208•limoce•4d ago•115 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
283•isitcontent•23h ago•38 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
564•todsacerdoti•1d ago•275 comments
Open in hackernews

Show HN: I built a minimal Forth-like stack interpreter library in C

47•Forgret•4mo ago
This weekend I created stacklib.h - a single-header library that brings Forth-style stack operations to C. It implements a basic interpreter with:

- Stack operations (push/pop/dup/swap/over/drop) - Arithmetic (+, -, *, /) - Output (., emit, cr) - Stack inspection (.s, depth)

Example usage: Stack s; stack_init(&s); dict_init(); exec(&s, "10 20 + ."); // Prints "30" exec(&s, "1 2 3 4 .s"); // Shows stack contents

The library is self-contained, requires no dependencies, and handles basic error checking. It was inspired by wanting to understand how Forth works at a fundamental level while keeping the simplicity of C.

I'm curious what other stack-based or concatenative programming enthusiasts think about this approach. Has anyone else built something similar? What features would you add to make it more useful?

GitHub: https://github.com/Ferki-git-creator/stacklib

Comments

fjfaase•4mo ago
Interesting. I am currently in the process of writing an interpreter for a similar stack based language. I already wrote a compiler for this language to x86 assembly that can be compiled to an ELF. The language is used as an intermediate language for a C compiler that I am writing. It is maybe less Forth-like than your language. For more information see: https://github.com/FransFaase/MES-replacement For the interpreter have a look at: stack_c_interpreter.c

At WHY2025, I gave a talk about the reasons why am working on this. See: https://www.youtube.com/watch?v=akzyyO5wvm0

bertili•4mo ago
Another thread on small forth interpreters from just 15 days ago:

https://news.ycombinator.com/item?id=45039301

Forth can be beautifully and efficiently implemented in portable c++ using the using continuation passing style via the clang musttail attribute.

Have a look at Tails (not my project):

[1] https://github.com/snej/tails

acidx•4mo ago
I recently wrote one, in C, using tail calls to implement dispatch with CPS: https://tia.mat.br/posts/2025/08/30/forth-haiku.html

It's already pretty efficient but I'm working on it to make it even more efficient so I can use it as some sort of primitive fragment shader for an art project. This Forth variant is intended to execute Forth Haikus, as defined by the Forth Salon website.

tdeck•4mo ago
If you're interested in learning more about how FORTH works I, I can recommend two very old books.

Starting FORTH https://archive.org/details/LeoBrodieStartingFORTHIntroducti...

Threaded Interpretive Languages https://archive.org/details/R.G.LoeligerThreadedInterpretive...

The latter doesn't even mention FORTH, and describes some very archaic CPU architectures, but I found it fascinating because it builds things from the ground up.

elcritch•4mo ago
In particular learning about threaded interpreters, sub-routine interpreters, etc is very eye opening. That and really internalizing that everything, even code, is really just numbers.
anadem•4mo ago
Loeliger's 'Threaded Interpretive Languages' jumpstarted my career in the late 1970s: I built a networked water management system based on their code, which was my first big project, earning me £1,500. Note that there's a bug in their code (I no longer remember exactly where) so getting it off the ground was tricky.
gabrielsroka•4mo ago
1. You should add a URL when you you create a post on HN. You can indent code two spaces on HN, eg:

  Stack s;
  stack_init(&s);
  dict_init();
  exec(&s, "10 20 + ."); // Prints "30"
  exec(&s, "1 2 3 4 .s"); // Shows stack contents
2. Your readme mentions a repl but I don't see it in the source code.

3. I'm not an expert in C but I thought header files shouldn't have code in them. The code should be in a .c file

4. Maybe move the code from USAGE into its own .c file.

  #include "stacklib.h"
  
  int main() {
    Stack s;
    stack_init(&s);
    dict_init();
    exec(&s, "10 20 + .");
    printf("\n");
    return 0;
  }
zoezoezoezoe•4mo ago
technically, "header only libraries" can be exceptions to C code not being in header files. See STB as an example https://github.com/nothings/stb. The advantage theoretically is that you can #include this library and use its code and types from just one file, its a decent model IMHO, but it can be jarring to someone unfamiliar with header only libraries.
uecker•4mo ago
They have plenty of downsides and only one very minor advantage: You need to copy only a single file instead of two into your source. I am still puzzled why anybody could think this is a good idea...
1718627440•4mo ago
And you also can name your single file to be included .c instead of "hiding the truth".
1718627440•4mo ago
You can include a .c file just fine.
vdupras•4mo ago
Your experiment is certainly a good tool to grok stack mechanics, but that is only one element of what makes a Forth what it is. You're missing out on other crucial ingredients: colon definition and immediateness.

I wrote a series of articles that can help in that kind of discovery: http://tumbleforth.hardcoded.net/

crq-yml•4mo ago
You've implemented a stack calculator, which misses the big picture: the stack is an implementation detail that enables a lot of the nifty stuff, but Forth is a "braided language" - the whole is more than the sum of the parts. Each part of it is just implementation, and the implementation is kept simple, but all of it needs to be there to make it completely usable. The distinction is important and non-trivial to the design of the interpreter.

To get there, please implement some of the metaprogramming words found in one of the standardized Forths(and if you aren't sure which one, use an earlier spec like Forth83 since the core wordset is smaller, so you run into the "hard stuff" faster).

Forth used in anger towards an application actually tends to resemble Fortran: procedural idioms flinging around lots of named temporary variables. The stack, being just implementation, doesn't give any assistance for everyday programming, unless you extend the system to do so. This is a point on which modern concatenative languages have diverged and tried to add some rigor into it.

matheusmoreira•4mo ago
> Has anyone else built something similar?

I made my own lisp. It used to have a recursive interpreter but I recently finished converting it into a register/stack machine that's essentially a modified version of the Explicit Control Evaluator from Structure and Interpretation of Computer Programs.

https://github.com/lone-lang/lone/blob/master/source/lone/li...

Now I'm thinking about converting it into a CESK machine which I believe is a proper stack machine. Modifying the SICP machine has proven difficult due to the loose stack discipline. I'm told register machines are faster but keeping track of all those ad hoc pushes and pops is turning into a nightmare.

> What features would you add to make it more useful?

The neat part about all these machines is how the stack itself turns into some sort of code. You push some state indicating what you want the machine to do next. Then you set it up so that it evaluates a value. When it's done, that value just flows into whatever the next computation step is.

Making a copy of the stack and wrapping it into a callable that just plugs that value in is how first class continuations are implemented.