📈 GH Trending Explorer 🎲 Surprise me

← all repos

kanaka / mal

git clone https://github.com/kanaka/mal.git 🔥 on GitHub Trending today

mal - Make a Lisp

+-1
stars, 24h · #60,471
+~-7
stars, 7 days · #60,545
+30
stars, 30 days · #14,301
11k
★ total · -0% this week
2.7k
forks · 25 open issues

Star history (as recorded here)

2026-10-20 · 10,749 ★ 2026-10-22 · 10,748 ★
LanguageAssembly
License—
Created2014-03-24 (12y ago)
Last push1y ago
Watchers180
OwnerUser

Seen on GitHub Trending

  • 2026-10-22 — #7 daily in assembly
  • 2026-10-22 — #11 monthly in assembly · +26 ★
  • 2026-10-21 — #9 monthly in assembly · +28 ★
  • 2026-10-20 — #9 monthly in assembly · +30 ★

GitHub topics

Links

README excerpt
# mal - Make a Lisp
## Description
**1. Mal is a Clojure inspired Lisp interpreter**
**2. Mal is a learning tool**
Each implementation of mal is separated into
11 incremental, self-contained (and testable) steps that demonstrate
core concepts of Lisp. The last step is capable of self-hosting
(running the mal implementation of mal). See the make-a-lisp process
guide.
The make-a-lisp steps are:
* step0_repl
* step1_read_print
* step2_eval
* step3_env
* step4_if_fn_do
* step5_tco
* step6_file
* step7_quote
* step8_macros
* step9_try
* stepA_mal
Each make-a-lisp step has an associated architectural diagram. That elements
that are new for that step are highlighted in red.
Here is the final architecture once step A
is complete:
If you are interested in creating a mal implementation (or just
interested in using mal for something) you are welcome to to join our
Discord. In addition to the make-a-lisp
process guide there is also a mal/make-a-lisp
FAQ where I attempt to answer some common questions.
**3. Mal is implemented in 89 languages (95 different implementations and 118 runtime modes)**
| Language | Creator |
| -------- | ------- |
| Ada | Chris Moore |
| Ada #2 | Nicolas Boulenguez |
| GNU Awk | Mitsuru Kariya |
| Bash 4 | Joel Martin |
| BASIC (C64 & QBasic) | Joel Martin |
| BBC BASIC V | Ben Harris |
| C | Joel Martin |
| C #2 | Duncan Watts |
| C++ | Stephen Thirlwall |
| C# | Joel Martin |
| ChucK | Vasilij Schneidermann |
| Clojure (Clojure & ClojureScript) | Joel Martin |
| CoffeeScript | Joel Martin |
| Common Lisp | Iqbal Ansari |
| Crystal | Linda_pp |
| D | Dov Murik |
| Dart | Harry Terkelsen |
| Elixir | Martin Ek |
| Elm | Jos van Bakel |
| Emacs Lisp | Vasilij Schneidermann |
| Erlang | Nathan Fiedler |
| ES6 (ECMAScript 2015) | Joel Martin |
| F# | Peter Stephens |
| Factor | Jordan Lewis |
| Fantom | Dov Murik |
| Fennel | sogaiu |
| Forth | Chris Houser |
| GNU Guile | Mu Lei |
| GNU Smalltalk | Vasilij Schneidermann |
| Go | Joel Martin |
| Groovy | Joel Martin |
| Hare | Lou Woell |
| Haskell | Joel Martin |
| Haxe (Neko, Python, C++, & JS) | Joel Martin |
| Hy | Joel Martin |
| Io | Dov Murik |
| Janet | sogaiu |
| Java | Joel Martin |
| Java Truffle (Truffle/GraalVM) | Matt McGill |
| JavaScript (Demo) | Joel Martin |
| jq | Ali MohammadPur |
| Julia | Joel Martin |
| Kotlin | Javier Fernandez-Ivern |
| LaTeX3 | Nicolas Boulenguez |
| LiveScript | Jos van Bakel |
| Logo | Dov Murik |
| Lua | Joel Martin |
| GNU Make | Joel Martin |
| mal itself | Joel Martin |
| MATLAB (GNU Octave & MATLAB) | Joel Martin |
| miniMAL (Repo, Demo) | Joel Martin |
| NASM | Ben Dudson |
| Nim | Dennis Felsing |
| Object Pascal | Joel Martin |
| Objective C | Joel Martin |
| OCaml | Chris Houser |
| Perl | Joel Martin |
| Perl 6 | Hinrik Örn Sigurðsson |
| PHP | Joel Martin |
| Picolisp | Vasilij Schneidermann |
| Pike | Dov Murik |
| PL/pgSQL (PostgreSQL) | Joel Martin |
| PL/SQL (Oracle) | Joel Martin |
| PostScript | Joel Martin |
| PowerShell |