HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
nornagon
jonesforth
Assembly2015–2026
nornagon / jonesforth

jonesforth

Mirror of JONESFORTH

45Distinct people
57Mentions
5Explicit recommenders
1.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Mirror of JONESFORTH

GitHub

Where it is used

  • jonesforth_riscv32 (Hans Baier) — Hans Baier's jonesforth_riscv32 repo copies and bases its RISC-V port on the x86 jonesforth source from the nornagon mirror; the repository explicitly states it used that mirror as the x86 source and that the RISC-V code was rewritten from that material. Source

What people are saying

Cool. Here are some other resources that I've encountered along the way of learning Forth: - JonesForth: https://github.com/nornagon/jonesforth/blob/master/jonesfort... This is…

xelxebar used a recommendation phrase. 5 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year57 dated mentions

Observed mentions: 2015-05-26 20:38:14 UTC to 2026-07-12 17:09:31 UTC.

0369122015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 12 mentions; 2 submissions, 10 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC312
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC404
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC716
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC1019
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC12210
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC817
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC404
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC514
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC220

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
This is a mirror of Richard WM Jones's excellent literate x86 assembly implementation of Forth, more on which here: http://rwmj.wordpress.com/2010/08/07/jonesforth-git-repository/
Read the full README on GitHub

What Hacker News says

57 sources
I think jonesforth is the most popular implementation teaching implementation: https://github.com/nornagon/jonesforth/blob/master/jonesfort... Factor might be a counterexample if one considers it a Forth, the VM is in part implemented in C++: https://github.com/factor/factor I think it's portability and ease of development rather than CPU architecture complexity that makes someone pick C/C++ over assembly when implementing a Forth system. Because the Forth won't need much of the assembly language or obscure CPU instructions, the complexity of the architecture won't really matter to whoever is implementing it.
In As you learn Forth, it learns from you (1981)
In Konilo: A personal computing system in Forth
xelxebar·Feb 8, 2024Recommendation phrase
Cool. Here are some other resources that I've encountered along the way of learning Forth: - JonesForth: https://github.com/nornagon/jonesforth/blob/master/jonesfort... This is legit a text that goes the an x86 Forth implementation. Actually, it's just an implementation with really extensive comments. That said, including whitespace and comments, it's just 2000 lines and the pedagogy is excellent. Highly recommended for anyone who would rather see behind the curtain before picking up a larger text. - SmithForth: https://dacvs.neocities.org/SF/ So, Smith decided to hand-write a Forth directly in x86-64 opcodes (well, the corresponding ascii hex bytes). It's incredibly slim and enlightening how you can bootstrap a language in just a couple hundred bytes or so. This project actually inspired me to really learn the x86-64 architecture, so I e
Read the rest
nded up hand-decompiling the SmithForth binary instead of going through his commented implementation. Hand-decompilation is an absolutely fascinating exercise. You learn all about ELF structure, opcode encodings, and actually start to see the gaps where microarchitectural details shine through. Highly recommended for any hacker that really wants to grok low level details. - Mecrisp: https://mecrisp.sourceforge.net/ An amazingly fast Forth implementation for MSP430, ARM, RISC-V, MIPS, and some FPGAs. This gave me one really nice understanding of Forth as A REPL into your hardware! - ##forth on libera.chat Really active and helpful members there. Definitely worth dropping by.
In Thinking Forth: A Language and Philosophy for Solving Problems (2004) [pdf]
Is there any particular language you're looking for? I've found some languages hideous until I understood them and could appreciate their respective graces. Off the top of my head the I can think of a couple of projects you and others may be interested in. The first is Jones Forth (https://github.com/nornagon/jonesforth), start with jonesforth.S and move into jonesforth.f. I really enjoyed following along with it and trying my hand at making my own stack based language. The other is Xv6, a teaching operating system from MIT (https://pdos.csail.mit.edu/6.828/2021/xv6.html), not all the code or implementations are top notch but it shows you non-optimized versions (just because they're simple and more readable) of different concepts used in OS design. If you're interested in the embedded world, there is a really neat project I've been follow
Read the rest
ing that feels a more structured and safe (as in fault-tolerant) while still staying pretty simple (both conceptually and in the code itself): Hubris and Humility (https://hubris.oxide.computer/).
In Ask HN: Where do I find good code to read?
I believe that any programmer should at least know a little about Forth. It's like Lisp. Just knowing about them is extremely enlightening, even if you don't use them in your daily life. Obligatory link: https://github.com/nornagon/jonesforth/blob/master/jonesfort... This well-written tutorial will have you implement a Forth in 500 lines of assembly and another 500 lines of Forth. You will feel like a different person after having done this. People will like you more. Food will taste better. You'll never be alone again, always knowing that you can re-create a fully-functional programming language from assembly within half an hour, if you needed to. It is said that people who know Forth die happy.
In What the hell is Forth? (2019)
Two things, plus their combination: 1. Productivity system. I’m trying out different methods of todo lists. When I start a new method I think I’ve finally found the right one, but I end up not sticking with it and starting over with a new approach after a while. My current system is something I started yesterday after coalescing a few different ideas from the last week or so. I have a list of categories in a text file (on my phone) ordered by priority such that at any time I can start at the top of the list and think if there’s anything I should do in that category. If so, I work on that. The order is determined by what would be best to do in SUPPORT of things further down the list. That way you can stay on top of things without waiting until they are urgent, and it seems to align my actions with my overall goals better. 2. Hardware/softw
Read the rest
are. I’ve noticed that software at every layer of the stack is written and changed/updated based on the desires of the creator of that software, not you. This might sound crazy, but if you really want to have control of your software you should write it yourself. Ever since I ran across Forth (jonesforth in particular) and realized you could create your entire software environment (drivers, OS, editor/compiler/debugger, application) from scratch because lets you start with nothing and quickly move up the layers of abstraction focusing only on what us needed for your particular application. (See also: http://collapseos.org/forth.html and https://github.com/nornagon/jonesforth/blob/master/jonesfort... ) The combination of 1+2 would be building a device with a hardware keyboard, simple display, and a microcontroller where I could have a todo list. (I could potentially just use an old PC with a BIOS as well to start with.) I could have it let me have reminders that I could snooze for a desired amount of time for instance, or have recur at specific times until dismissed (daily checklists). If I didn’t want the screen to go into sleep mode, or the OS to force me to update, reboot, or do anything at all that I didn’t want it to (like have unwanted notifications or ads or algorithmically driven distractions or security holes from the network/Internet), it wouldn’t. It would have zero dependencies.
In Ask HN: What are your “scratch own itch” projects?

Showing the 15 most recent of 57 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.