Nathan Braswell 6602ff3151 The refactor has either caught up, or is close, and is much faster.
Need to make partial_eval_helper able to fail though, so that it can fail in the now fallible compiler.

Squashed commit of the following:

commit 283150d1e19cf9f74bc32e9c554f5e041d53582d
Author: Nathan Braswell <miloignis@gmail.com>
Date:   Tue Jan 18 00:14:51 2022 -0500

    Another bugfix, I think now we're truely running into the partial-eval needs to be able to fail part

commit c62c228a1e89e7922850d2070bc046e5f80af5a5
Author: Nathan Braswell <miloignis@gmail.com>
Date:   Mon Jan 17 23:34:19 2022 -0500

    Fixed needed check, added note on needing to support failing partial eval

commit d480e486210dd5c7c4842e3a3d3e447dc7a5274e
Author: Nathan Braswell <miloignis@gmail.com>
Date:   Mon Jan 17 22:14:58 2022 -0500

    Fixed compilation bugs, added debugging prints to running.

commit fc4dc4d3170bf1ceb4cd934cff54dd9ce6c8713a
Author: Nathan Braswell <miloignis@gmail.com>
Date:   Mon Jan 17 17:28:29 2022 -0500

    The unique id / ctx refactor is starting to work, with all basic test cases compiling & partial evaling, but mis-compile bugs remaining
2022-01-18 00:36:42 -05:00
2021-08-01 00:23:41 -04:00
2020-09-06 22:10:59 -04:00
2017-02-02 00:46:36 -05:00
2020-05-12 16:22:41 -04:00
2020-05-12 16:22:41 -04:00
2020-05-12 16:22:41 -04:00
2018-05-22 20:14:15 -04:00
2020-03-10 12:57:28 -04:00
2018-04-17 11:25:53 -04:00
2020-04-02 14:15:41 -04:00
2021-08-01 00:23:41 -04:00

Kraken

The Kraken Programming Language

(try it out online at http://www.kraken-lang.org/)

(vim integration (filetype, syntax highlighting, Syntastic) at https://github.com/Limvot/kraken.vim) (emacs integration (filetype, syntax highlighting) at https://github.com/Limvot/kraken-mode)

The Kraken Programming Language is functional but very much still in development. It has both the normal features you might expect of a modern language, (functions, variables, an object system, dynamic memory), as well as some more advanced ones (mutually recursive definitions, lambdas/closures, algebraic data types, templates, marker traits, defer statements, etc).

Kraken can either compile to C or its own bytecode which is then interpreted.

Dependencies

Kraken is self-hosted - in order to build it, a script is included that will compile the original C++ version (which depends on CMake) and then checks out each necessary version to compile up to the current one. This can take quite a while - when it hits 1.0 I am planning on removing the old C++ version and checking in a pre-compiled-to-c version to use for further bootstrapping.

Goals

It has the following design goals:

  • Compiled
  • Clean
  • Fast (both running and writing)
  • Good for Systems (including Operating Systems) programming
  • Very powerful libraries (say, a library that allows you import from automatically parsed C header files)
  • Minimal "magic" code. (no runtime, other libraries automatically included)

It is inspired by C, Kotlin, Rust, and Jai.

Description
Currently, a purely functional F-Expr based Lisp compiled to WebAssembly. History contains multiple iterations of my experiments to explore and create my personal perfect language.
Readme 12 MiB
Languages
Rust 40.6%
NewLisp 12.7%
HTML 11.7%
Shell 7.5%
JavaScript 4.4%
Other 23.1%