aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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 daysdoc: updated tutorialJoel 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-10Updated tutorialJoel Kronqvist
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
2025-08-05Added vectors and tests for their evaluation and typingJoel Kronqvist
2025-08-05Fix: quote is not a typewise identity function. Added vt(&str) as util for ↵Joel Kronqvist
VarType(String).
2025-08-05Fixed type of Not, added documentation to the tour for booleansJoel Kronqvist
2025-08-05Implemented booleans (no if-else yet)Joel Kronqvist
2025-08-05Added boilerplate and tests for booleans, integer comparisons and boolean ↵Joel Kronqvist
operators.
2025-08-05Changed project nameJoel Kronqvist
2025-08-04Added repl and some documentation. Improved error messages. Removed dead code.Joel Kronqvist
* Removed same_variant in parse::parsetree * Added SExp::multistep (for use of the repl) Improved error messages: * Added parenthesis around types * Changed how errors propagate inferring generics: added the error variant ArgumentsDontMatchGeneric, implemented the displaying of it, added tests for it. * Had to change some tests to match for the new changes
2025-08-04Implemented infer_type. Changed is_concrete tests and implemented it.Joel Kronqvist
Error messages still need improvement, maybe some new variants? is_concrete was changed to hold information on the first unbound variable through Result<(), String>.
2025-08-04Implemented generic substitution (tested) for use in inferring generics.Joel Kronqvist
2025-08-03Changed UndefinedType to VarType(String) for generics and added tests for ↵Joel Kronqvist
inferring them. Inferring is done by method Type::infer_generics. Whether it is executed is controlled by method Type::is_concrete. Also had to change the Display for Type and its tests, as the enum variants changed.
2025-08-03Implemented type_check, added method parts for SExpJoel Kronqvist
'parts' is different from 'into_vec', because it doesn't require flat structure and always succeeds
2025-08-02Added tests for type_check. Implemented std::fmt::Display for many enums. ↵Joel Kronqvist
Added type variants List(Type), and UndefinedType for use in error messages. Implemented type utility arr(a, b).
2025-08-01Added boilerplate for Type, TypeError and type_checkJoel Kronqvist
(small commit, had to sync between desktop and laptop)
2025-08-01Modified quote so the values of lists are evaluatedJoel Kronqvist