Nathan Braswell a8f8f9df89 Removed check_for_symbols, which was a bad idea generally. Simplify into combiner_return_ok, and fix *eval bug* - it didn't check for any sort of combiner_return_ok like thing, even though it's doing the same thing as a function call basically, by changing the env something is evaluated in.
Also just re-write eval using the parital_eval wrapper, enforce it taking in total-values.

In the future, can allow more partial eval
        1) veval, returned from eval and posssibly others, essentailly (unwrap eval), which allows embedding partially-complete evals places without having to do something ugly like (eval (ensure_val partially_evaluated))
        2) Relax paramter is total-value to head-value and check for env_id inside it

Immediatly: Debug bad partial evaluation on main test cases & crash with list index out of range
2022-02-03 02:41:14 -05:00
2022-02-02 01:41:19 -05:00

Kraken

The Kraken Programming Language

(more information online at http://www.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)

Currently developing the third iteration, a Scheme-like based on a functional Vau calculus partially-evaluated for efficency and compiling to WebAssembly.

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.

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 )

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%