aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
3 daysfeat: --babysteps for REPL for easier debuggingJoel Kronqvist
4 daysfeat: implemented coproducts according to testsJoel Kronqvist
6 daystest: added boilerplate and tests for coproduct parsing, type checking and ↵Joel Kronqvist
evaluation
7 daysdoc: added exercise 1Joel Kronqvist
7 daysrefactor: loop-unrolled recursive function SExp::parts as it's called a lot, ↵Joel Kronqvist
also fixed it returning [Nil] if passed Nil
7 daysfix: quote/vector disappearing in substitution on casesJoel Kronqvist
7 daysfix: make case type checking work according to updated testsJoel Kronqvist
7 daystest: added failing tests for type pattern matching, as VecType and QuoteTy ↵Joel Kronqvist
must be accounted
7 daysfix: make argument type list stay as one type when there is just 1 argument nameJoel Kronqvist
7 daysfix: refined [x] to x conversion, think (not true) and (vector 1)Joel Kronqvist
7 daysrefactor: change conversions to use a stricter function with deduplicated codeJoel Kronqvist
8 daysfix: repl erroring "let used as operator" with empty/nil inputsJoel Kronqvist
this was fixed by transforming empty inputs to nil and not transforming nil inputs to empty inputs.
8 daysfix: changed type of (() T) from (T ...) to (Vector (T ...))Joel Kronqvist
this makes the type of the empty vector consistent with the runtime behavior and prevents weirdly typed expressions such as (vector (() Int)) : (Vector (Int ...)). removed an unused import in case.rs and changed a unused pattern variable to an underscore in conversion.rs.
9 daysfeat: vector concatenationJoel Kronqvist
9 daysfix: conversions between vectors, they were needed for some functions, but ↵Joel Kronqvist
now it's stricter than before
10 daysfeat: type conversion from (Vec/Quote X) -> X and add vec/quote to rest ↵Joel Kronqvist
pattern substitutions
10 daysfix: prevented loading non-let expressions as declarationsJoel Kronqvist
10 daysdoc: added help message and a reference to it in README.mdJoel Kronqvist
10 daysfeat: standard library & loading it by defaultJoel Kronqvist
10 daysfeat: read binds from files, evaluate expression from fileJoel Kronqvist
10 daysfix: function arguments not evaluating before function callJoel Kronqvist
10 daysfeat: fixed point dynamicsJoel Kronqvist
10 daysfix: subst not respecting fn and case bindsJoel Kronqvist
11 daysfeat: statics for fixed point recursionJoel Kronqvist
11 daysfix: made conversion work according to updated tests:Joel Kronqvist
* implemented conversion of arrow types * fixed (Int Bool) into (T T) succeeding * now vectors have to be of one type only even if generic * maybe something else too
11 daystest: stricter generic checking tests added for Type::aka and Type::into_typeJoel Kronqvist
11 daysfeat: added rest of types to the parserJoel Kronqvist
also fixed function tests in check.rs
11 daysfix: removed obsolete code for handling types as they are now parsed ↵Joel Kronqvist
directly to atoms
11 daysfeat: parsing of new types (T, (int ...), (int bool)) etc. also fixed bug in ↵Joel Kronqvist
into_type (it didn't handle lists recursively)
11 daysfix: removed unneccessary print, excluded .#[file] emacs backups in gitignoreJoel Kronqvist
11 daysfix: step scrutinee of case & can instantiate empty vecJoel Kronqvist
13 daysfeat: generic match arms, mostly for functions I guess?Joel Kronqvist
13 daysfeat: pattern matching evaluation in step.rsJoel Kronqvist
13 daysfeat: type checking for case expressionsJoel Kronqvist
13 daystest: added failing tests for pattern match typing and matches_typeJoel Kronqvist
14 daysrefactor: Added helper matches_pat for pattern matchingJoel Kronqvist
2025-08-11Fixed bug in repl not allowing using variables previously bound in REPL in ↵Joel Kronqvist
new binding expression
2025-08-10Implemented functionsJoel Kronqvist
2025-08-10Added tests for functionsJoel Kronqvist
2025-08-10Added term level type literals (for function type signatures)Joel Kronqvist
2025-08-10Added into_type and used it to implement implicit conversions in type checkingJoel Kronqvist
2025-08-10Implemented aka. Changed Nil:st type to NilType from an empty list.Joel Kronqvist
2025-08-10Added tests for conversions. Excluded emacs-files in .gitignore.Joel Kronqvist
2025-08-10Added let bind history to REPL + other minor refactors in REPLJoel Kronqvist
2025-08-09Implemented print as ? -> ()Joel Kronqvist
2025-08-09Revert adding of print (its behavior was poorly designed).Joel Kronqvist
This reverts commit 3e1bf7f9946efe70d452c71494ac77ed39110804.
2025-08-06Added print, raised level on which UnboundGeneric error is returnedJoel Kronqvist
2025-08-06Implemented let-bindingsJoel Kronqvist
2025-08-06Added boilerplate and tests for let-bindsJoel Kronqvist
2025-08-05Implemented vector.Joel Kronqvist