This website requires JavaScript.
4747b65414
stdlib: Add Result
and Option
types
main
John
2025-04-22 08:00:59 -04:00
8ff17fd475
cl-ast: Add syntax support for generics
John
2025-04-22 07:22:44 -04:00
681fbc88d3
cl-typeck: More type inference
John
2025-04-22 06:33:57 -04:00
7cf485fade
cl-typeck/infer: Fix some inference errors
John
2025-04-21 05:37:34 -04:00
3b96833fcb
cl-typeck: Early type inference for let
John
2025-04-21 04:52:59 -04:00
65b75f95ce
cl-repl: Oops, add dependencies.
John
2025-04-21 04:27:17 -04:00
4c4b49ce00
cl-typeck: Implement a framework for type inference ...And also implement a bunch of the inference rules, too.
John
2025-04-21 04:26:07 -04:00
7ba808594c
cl-ast: Cleanup - Function bind is now one Pattern - TyRef now allows &Ty (i.e. &[i32], &(char, bool) - Range patterns (they cannot bind, only check whether a value is in range - ArrayRep repeat has been reverted to usize, for now, until early consteval is implemented.
John
2025-04-21 04:17:45 -04:00
ef92d8b798
examples: Adapt examples/yaml to a broken C generator! woo!
John
2025-04-16 04:13:39 -04:00
8c8f1254e0
examples/yaml: Remove unnecessary uses of todo!()
John
2025-04-16 04:13:04 -04:00
82e62ab4ac
cl-parser: Dereference first(?)
John
2025-04-15 23:44:56 -04:00
b09a610c6c
interpreter: Include location in error type
John
2025-04-15 23:42:21 -04:00
fa5244dcf9
cl-interpret: References, part 3
John
2025-03-14 08:33:46 -05:00
9b460afed4
cl-interpret/pattern: Fail on mismatch again
John
2025-03-14 07:00:10 -05:00
27d1d07ed8
conlang: Update to Rust Edition 2024
John
2025-03-14 06:09:39 -05:00
68e676eda4
repline: Clippy lints unbuffered readers now
John
2025-03-14 06:09:00 -05:00
c988193049
cl-structures/stack: constify all (most of) the things!
John
2025-03-14 06:07:48 -05:00
2ecb2efc09
cl-structures: IndexMap::get_disjoint_mut to match Rust 1.86 🎉
John
2025-03-14 04:35:47 -05:00
a4176c710e
cl-ast: Add filename to File
John
2025-03-14 04:11:22 -05:00
cdb9ec49fe
cl-ast: Estimate the "weight" of an AST, for debugging?
John
2025-03-14 04:02:14 -05:00
6d33c4baa9
cl-ast: Break ast-impl into submodules
John
2025-03-14 03:58:40 -05:00
33e13425a9
cl-ast: Clean up "to", "extents", Module."kind"
John
2025-03-14 00:52:43 -05:00
11c8daaed0
cl-ast: Re-add(?) the Infer type-pattern
John
2025-03-12 01:20:58 -05:00
584207fc8c
cl-structures::Interned: Change to_ref() from assoc. function to member function (it's so much nicer)
John
2025-03-12 01:16:51 -05:00
dcdb100a8a
cl-interpret: Try having separate globals again?
John
2025-03-11 23:33:49 -05:00
fdf076c272
cl-ast: Remove Option-like "*Kind"s
John
2025-03-11 23:32:58 -05:00
2fc847fff2
Listen to the truthmachine! Scream your falsehoods.
John
2025-03-11 05:03:52 -05:00
4bc088f277
cl-interpret: Pure value stack v1, references v2
John
2025-03-11 05:01:49 -05:00
06bcb6b7c6
interpret: try out Ref == RcRefCell. Subject to change!
John
2025-03-11 01:31:02 -05:00
7e311cb0ef
conlang: RIP THE EXPRKIND BANDAGE OFF
John
2025-03-11 00:36:42 -05:00
c0ad544486
cl-interpret/convalue: Destructure with (Rust) pattern matching
John
2025-02-28 20:36:24 -06:00
fd54b513be
cl-interpret/pattern: Doc changes, minor format
John
2025-02-28 20:35:20 -06:00
adbabc66c5
cl-interpret: impls v1
John
2025-02-23 04:06:14 -06:00
5c99bf09ab
stdlib: Make stdlib not error out w/ undefined symbols, add ranges.
John
2025-02-23 03:29:15 -06:00
4d9b13f7a1
cl-interpret: Enums, pt 1: C was right the whole time!!1
John
2025-02-23 03:22:48 -06:00
d9ac9e628d
cl-interpret: Stage items within a file in resolution order.
John
2025-02-23 03:21:34 -06:00
632ddf0eab
cl-interpret: cleanup
John
2025-02-23 03:00:00 -06:00
e39b390441
cl-parser, cl-repl: Add ./[mod].cl to module search path
John
2025-02-23 02:44:26 -06:00
2fd08193fd
cl-parser: Promote match scrutinee to position
John
2025-02-23 02:43:22 -06:00
7d3f189100
conlang: Introduce ..rest Patterns, refactor Ranges
John
2025-02-23 02:41:41 -06:00
cc6168b55e
cl-ast: Remove Param
, replace with flat Pattern
John
2025-02-23 02:01:38 -06:00
e3d94d8949
conlang: Unify binding operations!
John
2025-02-22 05:16:37 -06:00
7a8da33de9
cl-interpret: Tuple structs + fix tuple member access
John
2025-02-22 03:31:27 -06:00
697d139cfd
conlang: Add Tuple-Struct Patterns - Patterns are no longer parsed with the highest precedence - Function calls with just a path and a tuple of args can now be transformed into a Pattern
John
2025-02-22 01:37:08 -06:00
5d2c714bc1
conlang: Patterns...2!
John
2025-02-22 01:00:29 -06:00
b115fea71b
cl-interpret: fix import in builtin! doctest
John
2025-02-21 22:49:14 -06:00
eebabf02fb
repline: change error formatting
John
2025-02-20 22:05:43 -06:00
088cd4d1e4
cl-interpret: Change format of todo for Impl
John
2025-02-20 22:05:23 -06:00
0fd9c002fc
cl-interpret: Interpret items in a file in a particular order
John
2025-02-20 22:04:27 -06:00
772286eefa
conlang: Single-expression functions
John
2025-02-20 21:59:42 -06:00
3cb85c7f42
toki: pona
toki-pona
John
2025-02-19 04:04:40 -06:00
3b14186b70
sample-code: Add match_test.cl
John
2025-02-18 21:53:32 -06:00
a6ad20911d
builtins: Add temp builtin for dumping the global string pool
John
2025-02-18 21:49:59 -06:00
01cf9d93e2
cl-repl: Usability improvements - Don't print empty - Don't needlessly append newline to cleared screen
John
2025-02-18 21:48:36 -06:00
edabbe1655
cl-interpret: process use items and imports in the interpreter
John
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.
John
2025-02-06 21:35:17 -06:00
0e3ba342c4
cl-interpret: make the error type smaller (at the cost of a heap allocation)
John
2025-01-31 03:35:35 -06:00
d95d35268e
cl-interpret: Builtin refactor
John
2025-01-31 03:34:45 -06:00
0c2b0002ce
conlang: Docs!
John
2025-01-29 05:07:08 -06:00
3534be5fbc
conlang: bump version number for pattern matching and destructured bindings
John
2025-01-29 04:16:53 -06:00
026681787a
cl-interpret: Add a new pretty-debug-printer builtin
John
2025-01-29 04:16:28 -06:00
80e1219808
cl-interpret: Tests for new pattern matching behavior TODO: Expand control flow tests
John
2025-01-29 04:15:57 -06:00
6ee9bbd72e
conlang: PATTERN MATCHING AND DESTRUCTURED BINDINGS WOOOOO
John
2025-01-29 04:15:33 -06:00
6e94b702c9
cl-ast: Add pattern and match nodes, and associated behaviors
John
2025-01-29 04:05:11 -06:00
d21683ad61
conlang: Add Quote
expression as a hack for testing
John
2025-01-29 03:56:19 -06:00
518fbe74a1
cl-ast: Fix AddrOf
misbehavior
John
2025-01-29 03:31:24 -06:00
bc955c6409
conlang: Bump version number :D
John
2025-01-28 06:56:48 -06:00
678c0f952c
sample-code: Add demo for get_line()
John
2025-01-28 06:56:30 -06:00
86c4da0689
cl-repl: Don't print ConValue::Empty return values
John
2025-01-28 06:55:03 -06:00
5db77db6b8
cl-interpret: Use dyn dispatch for
iterators. - This is a hack because the language has the syntax but no concept of iterators
John
2025-01-28 06:25:04 -06:00
145a24c5ff
cl-interpret: Assignment 2.0, now with more destructuring! TODO: Destructuring let
, destructuring patterns in function args..?
John
2025-01-28 06:23:37 -06:00
485afb7843
cl-interpret: Make ConValues act like value types (Aside from the fact that they're smothered in heap allocations)
John
2025-01-28 06:20:10 -06:00
01871bf455
cl-interpret: get_line
builtin!
John
2025-01-28 06:14:05 -06:00
fd361f2bea
cl-interpret: Upvars 2.0 - Only captures locals
John
2025-01-28 06:13:38 -06:00
0eef6b910c
cl-interpret/collect_upvars: elide lifetime
John
2025-01-23 18:53:07 -06:00
c50940a44c
cl-interpret: Make an attempt at closures
John
2025-01-10 06:51:08 -06:00
3cda3d83d9
typeck: Replace unsafe static mut with tree interning,
John
2025-01-16 21:16:46 -06:00
e5a51ba6c2
cl-structures: add to_ref
associated function on Interned
type, for non-borrowing conversion
John
2025-01-16 21:01:28 -06:00
883fd31d38
conlang: Elide lifetimes (fixes clippy lint)
John
2025-01-16 20:57:33 -06:00
d71276b477
cl-structures: Update error type in unstable get_many_mut feature for IndexMap
John
2025-01-16 20:32:09 -06:00
d8e32ee263
cl-arena: promote to its own independent repository
John
2025-01-16 20:30:23 -06:00
e419c23769
repline: fix operator precedence bug, clippy lints
John
2025-01-16 20:29:43 -06:00
1bd9c021dd
sample-code: Fix typo in sqrt.cl
John
2024-11-21 21:57:10 -06:00
df68d6f2e6
cl-interpret/tests: Fix broken test
John
2024-09-19 14:29:21 -05:00
ae11d87d68
Merge pull request 'Basic floating point support (WIP)' (#18 ) from floats into main
John
2024-09-19 19:27:51 +00:00
96be5aba6c
repline: Add a code sample demonstrating the use of prebaked::read_and
#18
John
2024-09-19 14:08:50 -05:00
b9f4994930
sample-code: update sqrt.cl to use new float syntax
John
2024-09-19 14:02:58 -05:00
f4fe07a08b
cl-lexer: Hack around ambiguity between 1.0 and 1..0
John
2024-09-19 14:02:02 -05:00
94be5d787f
cl-ast: always pretty-print decimal for floats
John
2024-09-19 14:00:22 -05:00
5deb585054
cl-ast: Add float support - Smuggle floats as integers to maintain eq
- This is bad, but not terrible for spec-compliant floats. Might have issues with NaN.
John
2024-09-19 13:20:19 -05:00
56e71d6782
cl-lexer: Add a hacky workaround for float support.
John
2024-09-19 13:16:27 -05:00
c62df3d8b3
sample-code: Add square root demo
John
2024-09-18 01:53:04 -05:00
fad28beb05
interpreter: Add float machinery - operators - type casting
John
2024-09-18 01:02:09 -05:00
0f8b0824ac
cl-parser: Fix precedence of comparison operators
John
2024-09-18 00:57:44 -05:00
99a00875a8
cl-intern: Derive Default for StringInterner and TypedInterner
John
2024-08-24 18:18:22 -05:00
8675f91aca
cl-ast: Remove tail from let (it caused more problems that it could've solved)
new_ast
John
2024-07-31 03:19:20 -05:00
de63a8c123
cl-parser: Outline precedence parser
John
2024-07-31 02:55:01 -05:00
533436afc1
cl-parser: Move precedence parser into its own module
John
2024-07-31 02:48:39 -05:00
1eb0516baf
cl-parser: Rearrange to match cl-ast
John
2024-07-31 02:35:41 -05:00
97808fd855
cl-parser: Transliterate to a trait-based parsing implementation
John
2024-07-31 01:39:00 -05:00