| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-08-22 | fix: added missing conversions and generic inferring for coproducts | Joel Kronqvist | |
| 2025-08-21 | feat: implemented coproducts according to tests | Joel Kronqvist | |
| 2025-08-19 | test: added boilerplate and tests for coproduct parsing, type checking and ↵ | Joel Kronqvist | |
| evaluation | |||
| 2025-08-18 | doc: added exercise 1 | Joel Kronqvist | |
| 2025-08-18 | fix: make case type checking work according to updated tests | Joel Kronqvist | |
| 2025-08-18 | test: added failing tests for type pattern matching, as VecType and QuoteTy ↵ | Joel Kronqvist | |
| must be accounted | |||
| 2025-08-18 | fix: make argument type list stay as one type when there is just 1 argument name | Joel Kronqvist | |
| 2025-08-18 | fix: refined [x] to x conversion, think (not true) and (vector 1) | Joel Kronqvist | |
| 2025-08-18 | refactor: change conversions to use a stricter function with deduplicated code | Joel Kronqvist | |
| 2025-08-17 | fix: 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. | |||
| 2025-08-16 | feat: vector concatenation | Joel Kronqvist | |
| 2025-08-16 | fix: conversions between vectors, they were needed for some functions, but ↵ | Joel Kronqvist | |
| now it's stricter than before | |||
| 2025-08-16 | feat: type conversion from (Vec/Quote X) -> X and add vec/quote to rest ↵ | Joel Kronqvist | |
| pattern substitutions | |||
| 2025-08-15 | feat: fixed point dynamics | Joel Kronqvist | |
| 2025-08-14 | feat: statics for fixed point recursion | Joel Kronqvist | |
| 2025-08-14 | fix: 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 | |||
| 2025-08-14 | test: stricter generic checking tests added for Type::aka and Type::into_type | Joel Kronqvist | |
| 2025-08-14 | feat: added rest of types to the parser | Joel Kronqvist | |
| also fixed function tests in check.rs | |||
| 2025-08-14 | fix: removed obsolete code for handling types as they are now parsed ↵ | Joel Kronqvist | |
| directly to atoms | |||
| 2025-08-14 | feat: parsing of new types (T, (int ...), (int bool)) etc. also fixed bug in ↵ | Joel Kronqvist | |
| into_type (it didn't handle lists recursively) | |||
| 2025-08-14 | fix: step scrutinee of case & can instantiate empty vec | Joel Kronqvist | |
| 2025-08-13 | feat: generic match arms, mostly for functions I guess? | Joel Kronqvist | |
| 2025-08-12 | feat: type checking for case expressions | Joel Kronqvist | |
| 2025-08-12 | test: added failing tests for pattern match typing and matches_type | Joel Kronqvist | |
| 2025-08-11 | refactor: Added helper matches_pat for pattern matching | Joel Kronqvist | |
| 2025-08-10 | Implemented functions | Joel Kronqvist | |
| 2025-08-10 | Added tests for functions | Joel Kronqvist | |
| 2025-08-10 | Added term level type literals (for function type signatures) | Joel Kronqvist | |
| 2025-08-10 | Added into_type and used it to implement implicit conversions in type checking | Joel Kronqvist | |
| 2025-08-10 | Implemented aka. Changed Nil:st type to NilType from an empty list. | Joel Kronqvist | |
| 2025-08-10 | Added tests for conversions. Excluded emacs-files in .gitignore. | Joel Kronqvist | |
| 2025-08-09 | Implemented print as ? -> () | Joel Kronqvist | |
| 2025-08-09 | Revert adding of print (its behavior was poorly designed). | Joel Kronqvist | |
| This reverts commit 3e1bf7f9946efe70d452c71494ac77ed39110804. | |||
| 2025-08-06 | Added print, raised level on which UnboundGeneric error is returned | Joel Kronqvist | |
| 2025-08-06 | Implemented let-bindings | Joel Kronqvist | |
| 2025-08-06 | Added boilerplate and tests for let-binds | Joel Kronqvist | |
| 2025-08-05 | Implemented vector. | Joel Kronqvist | |
| 2025-08-05 | Added vectors and tests for their evaluation and typing | Joel Kronqvist | |
| 2025-08-05 | Fix: quote is not a typewise identity function. Added vt(&str) as util for ↵ | Joel Kronqvist | |
| VarType(String). | |||
| 2025-08-05 | Fixed type of Not, added documentation to the tour for booleans | Joel Kronqvist | |
| 2025-08-05 | Implemented booleans (no if-else yet) | Joel Kronqvist | |
| 2025-08-05 | Added boilerplate and tests for booleans, integer comparisons and boolean ↵ | Joel Kronqvist | |
| operators. | |||
| 2025-08-05 | Changed project name | Joel Kronqvist | |
| 2025-08-04 | Added 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-04 | Implemented 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-04 | Implemented generic substitution (tested) for use in inferring generics. | Joel Kronqvist | |
| 2025-08-03 | Changed 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-03 | Implemented type_check, added method parts for SExp | Joel Kronqvist | |
| 'parts' is different from 'into_vec', because it doesn't require flat structure and always succeeds | |||
| 2025-08-02 | Added 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-01 | Added boilerplate for Type, TypeError and type_check | Joel Kronqvist | |
| (small commit, had to sync between desktop and laptop) | |||
