This website requires JavaScript.
f41e5fc49a
conlang: add lang items, remove Empty
, and shuffle typeck
main
John
2025-09-15 10:45:14 -04:00
ead1f351a7
conlang-run: Add Display-formatted errors here too.
John
2025-09-15 03:54:24 -04:00
986bac9e6b
sample-code/calculator: Bit-shifts and better formatting
John
2025-09-15 00:24:02 -04:00
02239c5ce4
sample-code/ascii: fix reference depth for postfix-call in_range
function
John
2025-09-15 00:22:38 -04:00
1f9d32f972
cl-lexer: Make strings curly-brace-aware, for future format string work
John
2025-09-15 00:21:14 -04:00
8dd2920fca
cl-repl/cli: Pretty-print errors in non-repl mode
John
2025-09-15 00:20:05 -04:00
df6089f84a
cl-interpret: Print function call backtrace on panic
John
2025-09-15 00:18:51 -04:00
62940b3d24
conlang: More clippy
John
2025-09-15 00:17:50 -04:00
1fe796dda7
cl-lexer: Bring over new lexer
John
2025-09-14 23:02:04 -04:00
f0c871711c
compiler: updated to rust 1.84, now we have let chains!
John
2025-09-14 19:08:59 -04:00
fcab20579a
cl-structures/intern: Debug-print interned objects with custom sigil
John
2025-09-14 19:02:55 -04:00
239785b322
cl-interpret: Literal[String] a la python
John
2025-07-20 15:57:11 -04:00
259c9f8bb6
repline: update Crossterm dependency to 0.29.0
John
2025-07-18 05:40:20 -04:00
c9ffeaddce
conlang: bump version number to 0.0.10
John
2025-07-18 05:37:23 -04:00
12daf35c07
.gitignore: Ignore cl-typeck table dumpfile
John
2025-07-18 05:37:09 -04:00
6a0607b93a
sample-code: Add a super hacky format-string implementation using eval
and fmt
builtins
John
2025-07-18 05:36:38 -04:00
4f40bd4f99
sample-code: Remove "Student" function from match_test
John
2025-07-18 05:35:57 -04:00
2f94ddd23f
repline: QoL improvement: inserting newline works!
John
2025-07-18 05:35:00 -04:00
0f9044bb3e
stdlib: Inference engine caught some type errors! Also added some hot garbage.
John
2025-07-18 05:34:03 -04:00
8732cca3f9
cl-typeck: Get some serious type inference going!
John
2025-07-18 05:30:23 -04:00
74220d3bff
cl-lexer: Add base-36 literals, lmao
John
2025-07-18 05:29:31 -04:00
8b0a122dfc
cl-interpret: Environment/stack overhaul + Ref patterns
John
2025-07-18 05:29:10 -04:00
e165e029dc
cl-embed: Calculator example update!
John
2025-07-18 05:26:39 -04:00
148ef34a01
ast: add gens for ty and impl, raw ptr types, make fn return value non-optional
John
2025-07-18 05:25:35 -04:00
6ba62ac1c4
repline: Refactor for fewer redraws and more user control. Definitely has bugs, but eh!
John
2025-06-17 00:43:02 -04:00
ae026420f1
conlang: Fix rustdoc warnings
John
2025-05-18 12:02:50 -04:00
d80f2f6315
cl-embed/examples: rename conculator back to calculator, since MI searches by path
John
2025-05-19 01:23:23 +00:00
89ed9b2a39
test.cl: Never-like enums tempermanently(?) removed
John
2025-05-18 11:51:22 -04:00
47608668fa
cl-embed: Add an example, and a new sample-code (same file)
John
2025-05-18 11:50:33 -04:00
6ce27c522f
cl-embed: Create an (unstable) API for embedding Conlang in your projects!
John
2025-05-18 11:49:43 -04:00
233e4dab4e
visit: docs cleanup
John
2025-05-18 11:48:22 -04:00
f95c6ee239
cl-interpret: Add convenience function for binding variables
John
2025-05-18 11:48:04 -04:00
964917d2f0
cl-interpret: let now returns bool
John
2025-05-18 11:47:13 -04:00
6bb855cff7
cl-parser: semantics changes
John
2025-05-18 11:44:44 -04:00
124bb2f680
cl-interpret: Builtins! builtins(), chars(str), and panic(msg)
John
2025-05-18 11:42:33 -04:00
08b5937fc2
cl-typeck: Twiddle with infer (maybe this will help fix the weird behavior?)
John
2025-05-18 11:39:54 -04:00
ccfa4c7723
cl-interpret: copy-capture closures
John
2025-05-18 11:30:17 -04:00
d3e20e53d0
cl-interpret: Unit tests for while-else control flow
John
2025-05-18 04:01:50 -04:00
e08bf57dc1
cl-typeck: Give inference its own result type
John
2025-05-18 04:01:13 -04:00
a5590168ee
cl-parser: Misc cleanup
John
2025-05-18 04:00:43 -04:00
3e2063835b
cl-parser: Dedicated parsing logic for patterns!
John
2025-05-18 04:00:00 -04:00
e6156343c3
cl-ast: Add inline closure expressions
John
2025-05-18 03:57:20 -04:00
6c6d2d04a7
cl-ast: Remove variantkind, as it was redundant
John
2025-05-17 21:28:12 -04:00
a023551d9f
repline: Change newline behavior when not at end of input
John
2025-05-17 20:32:24 -04:00
dc1c9bdd6d
stdlib: Add map* for Option and Result
John
2025-05-05 05:32:23 -04:00
c5e817f1e5
cl-ast: Rearrange
John
2025-05-05 05:26:43 -04:00
6108d66b0a
stdlib: Add Option and Result types
John
2025-05-05 04:55:17 -04:00
09fdb14d79
cl-typeck: Progress population and categorization
John
2025-05-05 04:54:33 -04:00
4228324ab3
cl-typeck: With super
semantics redone, search within self for items
John
2025-05-05 04:20:40 -04:00
f5f905cd70
cl-ast: more generic impls for weight_of
John
2025-05-05 04:19:23 -04:00
883387aaf1
yaml: formatting
John
2025-05-05 04:18:49 -04:00
2d706ff582
desugar: Add primitive constant folding
John
2025-05-05 04:18:16 -04:00
cd2e3c3e32
cl-parser: change match parse slightly
John
2025-05-05 04:16:37 -04:00
8c23aea4af
to_c: oops
John
2025-05-05 04:14:30 -04:00
d6c0a6cf1b
cl-ast: Allow c-like enums to take an expr
John
2025-05-05 02:22:50 -04:00
fc80be5fcc
conlang: Remove "self" keyword
John
2025-05-05 02:20:47 -04:00
7c2dd1468b
cl-ast: Finally figure out how visit
and walk
are supposed to work
John
2025-05-05 00:24:52 -04:00
4747b65414
stdlib: Add Result
and Option
types
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