8b0a122dfc
cl-interpret: Environment/stack overhaul + Ref patterns
2025-07-18 05:29:10 -04:00
f95c6ee239
cl-interpret: Add convenience function for binding variables
2025-05-18 11:48:04 -04:00
ccfa4c7723
cl-interpret: copy-capture closures
2025-05-18 11:30:17 -04:00
e6156343c3
cl-ast: Add inline closure expressions
2025-05-18 03:57:20 -04:00
b09a610c6c
interpreter: Include location in error type
2025-04-15 23:42:21 -04:00
dcdb100a8a
cl-interpret: Try having separate globals again?
2025-03-11 23:33:49 -05:00
4bc088f277
cl-interpret: Pure value stack v1, references v2
...
References actually work! :D
They can also be stale :(
2025-03-11 05:01:49 -05:00
edabbe1655
cl-interpret: process use items and imports in the interpreter
2025-02-18 21:44:52 -06:00
af9c293907
cl-interpret, cl-repl:
...
Move IO builtins into the CLI, so get_line can use repline keybinds.
2025-02-06 21:35:17 -06:00
d95d35268e
cl-interpret: Builtin refactor
...
- Everything is different now
- Builtins are now built on top of Rust functions, so they can be recursive!
- TODO: allow macro-defined builtins to call each other?
- The builtins! macro is a lot nicer to work with
- No redundant return value
- Maps the result over Into::into, allowing for type inference!
- Uses explicit pattern syntax instead of weird binding, where possible
- Does not #[allow(unused)], so you'll get unused variable warnings now!
2025-01-31 03:34:45 -06:00
fd361f2bea
cl-interpret: Upvars 2.0
...
- Only captures locals
2025-01-28 06:13:38 -06:00
c50940a44c
cl-interpret: Make an attempt at closures
...
(It kinda sucks, but it emulates closures half decently)
2025-01-23 16:23:42 -06:00
883fd31d38
conlang: Elide lifetimes (fixes clippy lint)
2025-01-16 20:57:33 -06:00
ecebefe218
cl-interpret: Knock those modules free!
2024-07-27 22:47:46 -05:00