HVM
HVM copied to clipboard
A massively parallel, optimal functional runtime in Rust
In some cases where there is more than one rule available for a substitution HVM does not reduce a term even though it should. ``` Main = @var (Sub var)...
Running on M1, `da03703`. Sometimes `tests::test` (on `lib.rs`) get stuck and/or crash my machine. ``` failures: ---- rulebook::tests::test_rulebook_expected stdout ---- thread 'rulebook::tests::test_rulebook_expected' panicked at 'assertion failed: `(left == right)` left:...
HVM produces incorrect results on some inputs, one of which being: ``` (Main arg) = ((λa (a (λb ((λc (λd (b (c d)))) a)))) (λe (e e))) ``` On this...
Strings are now converted to linked lists at runtime, not compile time This prevents stack overflows in files with long strings Also readback strings as actual strings runtime.c
Pretty printing strings and lists is now iterative not recursive. Pretty printing strings uses escape characters Parsing strings accepts all escape characters expect for `\u{XXXX}` style escapes. I don't know...
See https://github.com/Kindelia/HVM/issues/38#issuecomment-1109431355 A proper allocator would be nice. Currently we only have 32 bits to play with in each `Lnk`, this is not enough to use the system allocator on...
I made a program that calculates Fibonacci numbers. When running it with the interpreter, I can't get it to work on any nontrivial inputs (N > 2). On the other...
Hi, I'm playing with https://okmij.org/ftp/papers/LogicT.pdf When I get to the implementation of logic monad interleave, the example diverges on rewrites although it should succeed. What am I doing wrong here?...
Consider the program calculating `sum (map head (tails list))`. Due to the laziness, though the normal form of `tails list` has `O(n^2)` elements, I'm expecting the whole expression to cost...
Apologize if this has been answered somewhere else. Are there any plans for adding a rudimentary C FFI to this project? I'm really interested in how a simple breadth-first search...