HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
kevinlawler
kona
C2010–2026
kevinlawler / kona

kona

Open-source implementation of the K programming language

43Distinct people
68Mentions
2Explicit recommenders
1.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Open-source implementation of the K programming language

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I'm surprised you didn't link an actual c file; everything related to k seems to trigger an exorbitantly high number of "what the fuck"s.…

chc4 used a recommendation phrase. 2 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

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 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 year68 dated mentions

Observed mentions: 2010-12-15 16:43:38 UTC to 2026-05-23 07:38:59 UTC.

0510152010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 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
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC101
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC13112
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC808
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC303
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC808
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC505
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC404
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC514
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC312
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC505
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC505
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC404
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

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

Read the project’s introduction
Kona What is Kona? Kona is the open-source implementation of the k3 programming language. k is a synthesis of APL and LISP. Although many of the capabilities come from APL, the fundamental data construct is quite different. In APL the construct is a multi-dimensional matrix-like array, where the dimension of the array can range from 0 to some maximum (often 9). In k, like LISP, the fundamental data construct is a list. Also, like LISP, the k language is ASCII-based, so you don't need a special keyboard. For many people, k was the preferred APL dialect. When it was available, it tended to be popular with investment bankers, the performance obsessed, and analysts dealing with lots of data. It is a demanding language. k was originally designed by Arthur Whitney and Kx Systems. Praise for k should be taken to refer to Kx's k. Kx sells a popular database called KDB+. People can and do create networked trading platforms in hours. If your business needs production support, you can evaluate KDB+ prior to purchasing from Kx, or possibly speak with Kx consulting partner First Derivatives. The 32-bit version of KDB+ is available for free. Kx's KDB+ uses the Q language, and is built on top of k4. Kx used to sell a database called KDB, which used the KSQL language, and was built on top of k3. Earlier, Kx sold k2 as its primary product. Before k2, UBS had a 5-year exclusive license to k1. To the confusion of all, these terms are used interchangeably. Kx's k3, k2 and k1 are basically no longer available. While you get k4 with KDB+, k4 is proprietary to Kx and no documentation is available. Kona is a reimplementation that targets k3 (which stopped being available about 20 years ago). Kona is unaffiliated with Kx. To get perspective on the various incarnations see https://ngn.bitbucket.io/k.html A note on the unusual style of C code: It attempts to replicate the style of Arthur Whitney. A striking original example is contained in file https://github.com/tavmem/buddy/blob/master/a/b.c. There are 2 versions of the buddy memory allocation system. The first is in 11 lines written by Whitney. The second is in well documented traditional C (almost 750 lines). Mailing Lists kona-user is about using the Kona programming language. kona-dev is about developing the Kona language itself. Installation Windows You can find an executable version of Kona here. Download k.exe. Use Windows "Explorer" to move k.exe from the "Download" directory to another directory ... or not. Double click on k.exe in "Explorer" to start a Kona session. Alternatively, start a "cmd" console window, navigate to the directory containing k.exe, and key in "k". macOS If you have Homebrew installed, you can install Kona using brew: brew install kona Build from source For macOS, Linux, BSD, Cygwin and Android: Navigate to the directory you want to install Kona, then type: git clone https://github.com/kevinlawler/kona.git cd kona make #gmake on BSD Then, while in the "kona" directory, run: ./k #./k_test to run the test suite Android builds are similar, but you must set use this command when running make: make OS=android For Windows: Pretty much the same process, but you will need MinGW-w64 (Mingw-builds project package), and you will need MSYS (or MSYS2) for bash. You can start up Kona from MSYS, or from a native Windows "cmd" session. In MSYS, type "./k" or just type "k" when in the "kona" directory. When in "cmd" just type "k" as "./k" won't work. You can also double-click on k.exe from Windows Explorer. Input Issues If you experience input issues with the command-line interpreter, such as visible arrow keys, try the rlwrap utility and see if it solves your problem. Further Information You can find further information about Kona at the wiki.
Read the full README on GitHub

What Hacker News says

68 sources
re APL: BQN is a new take on APL w/ high performance implementation https://mlochbaum.github.io/BQN/ Dyalog APL is a well supported proprietary APL implementation https://www.dyalog.com re open source k implementations: there are many by now here is a current non-exhaustive list grouped by k dialect they orbit (to my understanding) k9 ktye (Go w/ Go, wasm, C targets) https://github.com/ktye/i k6 ngn/growler (C): https://codeberg.org/growler/k oK (JavaScript): https://github.com/JohnEarnest/ok kiwi (Zig): https://github.com/kiwi-array-lang/kiwi k3 kona (C): https://github.com/kevinlawler/kona gk (C): https://github.com/cmh25/gk ksharp (C#): https://github.com/ERufian/ksharp k-like goal (Go): https://codeberg.org/anaseto/goal klongpy (Python) https://github.com/briangu/klongpy I'm working on kiwi. kiwi has a focus on supporting Apple Silico
Read the rest
n and can make use of Apple Silicon GPU (via MLX and Metal) as well as the Accelerate framework to speed up some workloads. kiwi also comes with companion apps for iPhone, iPad, Mac and Apple watch in case anyone wants to run k on a watch: https://kiwilang.com
In Thinking in an array language (2022)
there are at least three reasonably comprehensive open-source k implementations: https://github.com/kevinlawler/kona (k3) https://github.com/JohnEarnest/ok (k6, js-based) https://codeberg.org/ngn/k (k6, c-based) even today, many k programmers learn from the k2 reference manual. k2/k3 are extremely similar: http://web.archive.org/web/20050504070651/http://www.kx.com/... oK has a briefer manual which describes k5/k6: https://github.com/JohnEarnest/ok/blob/gh-pages/docs/Manual....
In k on pdp11
It's very cool to see ngn/k on the HN front page. After the recent AoC which I've attempted to solve with BQN[1] (another array language) I've got interested in array languages and now exploring K too. K seems like a nice blend between an array language and a lisp: list is a primary data structure in K, no multidimensional data. K is good at symbolic workloads as well — visit http://nsl.com for some examples. Also, make sure to check out the C code style ngn/k is written with :-) another K implementation Kona (uses similar C code style) has a wiki page with explanation[2]. [1]: https://mlochbaum.github.io/BQN/index.html [2]: https://github.com/kevinlawler/kona/wiki/Coding-Guidelines
In K – A simple, fast vector programming language

Showing the 15 most recent of 68 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.