Compiler for the Kraken programming language - mirrored version

Nathan Braswell c3315f04e5 Working basic guard that falls back to interp on fail 2 months ago
ki b40c928026 Reorganize naming scheme 4 months ago
koka_bench c20ba09179 clean up compile more, going straight to pulling out of memo, removing compile-body-part, removing now-unecessary recursion checking (for ping-pong between partial-eval and compile-inner because of how we now check memo and normalize), and finally add all tests to new_test.sh 1 year ago
slj c3315f04e5 Working basic guard that falls back to interp on fail 2 months ago
website 63a5b019ed Website typing improvements, uncommitted JIT work 4 months ago
.gitignore 774eb668de Clean out, start sl JIT project (no jit yet) 5 months ago
LICENCE.md 45a869b09b Remove year and weird (c) from copyright line, concensus is it's not needed these days 1 year ago
README.md b40c928026 Reorganize naming scheme 4 months ago
flake.lock 774eb668de Clean out, start sl JIT project (no jit yet) 5 months ago
flake.nix ea1516fbd1 Started new kv impl with support for mutable cells, just the basic interpreter. Going to add the lazy bytecode interperter next 11 months ago

README.md

Kraken

The Kraken Programming Language

(more information online at http://kraken-lang.org/ which is also under construction / needs to be updated / has a try-it-online feature for an older version without partial evaluation)

Heavily inspiried by John Shutt's thesis: https://web.wpi.edu/Pubs/ETD/Available/etd-090110-124904/unrestricted/jshutt.pdf with partial evaluation during compilation to make it efficient.

Currently developing the fourth iteration, a Scheme-like based on a functional Vau calculus JIT compiled for speed.

Working up to a JIT for fexprs by starting with

  • slj - a Simple Lisp JIT (WIP)
  • clj - a continuation lisp JIT?
  • mlj - a mutation lisp JIT?
  • flj - a fexpr Lisp JIT?
  • ki - A fexpr interpeter with mutation and delimited continuations
  • kj - A fexpr+mutation+delimited continuations JIT

koka_bench: Licensed under Apache-2.0, as they are derived from the benchmarks of the Koka project, see the readme and license in koka_bench for more, or https://github.com/koka-lang/koka for the source project.

Kraken (everything else besides the benchmarks in koka_bench, and Recursive/CodeJar/Highlight.js in website/) Licensed under SPDX-License-Identifier: BSD-2-Clause-Patent

Note: This license is designed to provide: a) a simple permissive license; b) that is compatible with the GNU General Public License (GPL), version 2; and c) which also has an express patent grant included.

(Note taken from https://opensource.org/licenses/BSDplusPatent )