This website requires JavaScript.
70872d86f9
cl-typeck: Improve path resolution semantics, and DON'T REPARENT IMPLs - Perform heirarchical resolution through "transparent" nodes - Reparenting impls broke relative path traversal entirely. To impl something, it must already be in scope anyway. - TODO: well-formedness checks?
John
2024-07-21 06:01:54 -05:00
6bf34fdff6
cl-typeck: Add path-resolution relative to an ID Great for interactive debugging
John
2024-07-21 05:57:15 -05:00
9d7ab77999
cl-typeck: Add Handle
type - Holds a DefID and a reference to the Project - Pretty-prints def signatures - Use handles when printing types (WIP)
John
2024-07-21 05:45:40 -05:00
82b71e2517
cl-typeck: Refactor display for Def.
John
2024-07-21 01:46:20 -05:00
46bd44bd99
cl-typeck: Re-name mod key to mod handle, in preparation for future handlization
John
2024-07-20 18:30:05 -05:00
3511575669
conlang: Add array and slice type syntax
John
2024-07-20 18:22:50 -05:00
b3d62c09aa
conlang: Self is not a type, it's a path to a type
John
2024-07-17 15:05:52 -05:00
ded100bf71
repline: Document the editor
John
2024-07-12 16:40:32 -05:00
c9ddebb946
cl-repl/menu: Revert extra newline in banner
John
2024-07-11 04:44:01 -05:00
15c4b89bce
cl-interpret: builtin.rs whitespace changes
John
2024-07-11 04:43:25 -05:00
aa7612926e
cl-interpret: Add format builtin
John
2024-07-11 04:42:36 -05:00
fffc370380
sample-code: Expand the capabilities of the sample code
John
2024-07-11 04:02:44 -05:00
a646a9e521
cl-interpret: VERY rudimentary support for Const and Static
John
2024-07-11 03:07:56 -05:00
5f57924f23
cl-repl: Perform module inlining before submitting code to the interpreter
John
2024-07-11 02:50:15 -05:00
d692f6bb80
cl-interpret: Complain, rather than panic, on outlined module
John
2024-07-11 02:48:35 -05:00
58c5a01312
cl-structures: Clean up IndexMap and fix doctests
John
2024-07-10 14:56:17 -05:00
16baaa32f1
sample-code: Add an example function to print a number in hexadecimal
John
2024-07-09 06:16:25 -05:00
3c4d31c473
cl-repl: Run by default, break into menu
John
2024-07-09 06:15:15 -05:00
d723f7cece
cl-interpret: String-building addition
John
2024-07-09 06:14:44 -05:00
b446677eda
cl-interpret: Enforce wrapping behavior
John
2024-07-09 06:13:55 -05:00
0beb121f32
cl-interpret: Change print to print without newline, add new println builtin
John
2024-07-09 06:13:05 -05:00
6b16c55d97
cl-typeck: Fix doc list breakage
John
2024-06-22 02:00:47 -05:00
c16dbca55c
cl-structures: Remove #[feature(inline_const)], stabilized in Rust 1.79
John
2024-06-22 01:59:01 -05:00
4c883d87a4
cl-ast: Link to [Meta] in [Attrs]
John
2024-05-19 16:00:40 -05:00
1c3a56f5b5
misc: Fix broken doc links, remove "pool" from index_map.rs
John
2024-05-19 15:32:57 -05:00
406bfb8882
cl-interpret: Stop kidding myself, I'll be replacing the interpreter before I get rid of this.
John
2024-05-19 15:16:22 -05:00
e0f54aea97
cl-structures: Mention IndexMap and MapIndex in the top level doc comment
John
2024-05-19 15:12:54 -05:00
fa8a71addc
cl_structures: Rename deprecated_intern_pool to the more correct name "IndexMap"
John
2024-05-19 14:51:14 -05:00
0cc0cb5cfb
conlang: Remove "Identifier" node
John
2024-05-19 14:41:31 -05:00
f330a7eaa5
conlang: Split assignment into plain Assign and assign-with-Modify
John
2024-05-19 14:31:30 -05:00
8d8928b8a8
conlang: Struct, tuple member accesses, member function call syntax
John
2024-05-19 13:55:28 -05:00
a033e9f33b
conlang: Enable opt-level 1 in dev profile
John
2024-05-16 15:07:54 -05:00
be81221895
cl-typeck: Move type inference utils into own module
John
2024-05-16 15:06:59 -05:00
33b7cd3971
cl-structures: Do not #[derive(Eq)] for Interned<T>
John
2024-05-16 15:04:37 -05:00
c9266d971f
cl-typeck: Insert impls into target type's namespace
John
2024-05-07 13:59:45 -05:00
f76756e0e4
num.cl: Implement "overloaded" operator functions
John
2024-05-07 13:32:58 -05:00
a89f45aa58
cl-typeck: Add isize/usize primitives
John
2024-05-04 23:07:57 -05:00
d2eb165759
cl-arena: Add iterator allocation to TypedArena
John
2024-05-04 22:17:34 -05:00
edf175e53b
cl-typeck: Add utilities for HM-style type inference via unification
John
2024-05-04 22:12:33 -05:00
6aea23c8ba
cl-ast/desugar: Turn all paths into absolute paths
John
2024-04-29 16:25:30 -05:00
db0b791b24
cl-ast: Fix pretty-printing for use items
John
2024-04-29 16:19:52 -05:00
7c73fd335c
cl-typeck: Store def metadata in a Node
John
2024-04-29 15:40:30 -05:00
d7ce33e457
cl-arena: Allow the arena to hold its own lifetime.
John
2024-04-28 02:01:52 -05:00
0d937728ed
cl-structures: Mention new structures in the top-module blurb
John
2024-04-27 21:15:45 -05:00
a8ef989084
cl-structures/stack: only drop if T needs drop
John
2024-04-27 21:08:09 -05:00
e7c5a02afa
cl-structures: Fully remove unused arenas v2 sources
John
2024-04-27 20:36:03 -05:00
12046fa9f7
cl-structures/intern: Fix doc comment
John
2024-04-27 20:26:45 -05:00
fb7de717d0
cl-structures: Remove arena.rs
and hashbrown dependency
John
2024-04-27 20:24:42 -05:00
3fe5916a4f
cl-ast: Switch from old string interner to new string interner
John
2024-04-27 20:24:11 -05:00
2c57f848ea
cl-structures: Fix doctest in deprecated_intern_pool
John
2024-04-27 20:19:46 -05:00
81cf05cc69
cl-structures: Interning v3: ACTUALLY DO THE THING
John
2024-04-27 20:16:36 -05:00
83423f37be
cl-arena: Make arena constructors const fn
John
2024-04-27 16:52:20 -05:00
ecf97801d6
cl-typeck: Use helper functions on module to insert into the various namespaces
John
2024-04-27 16:10:22 -05:00
71745161c4
sample-code: Add example "module-hell.cl" demonstrating inter-module imports and path resolution
John
2024-04-27 16:08:26 -05:00
9566f098ac
cl-typeck: Remove NameCollectable trait, use NameCollector instead :D
John
2024-04-27 16:05:40 -05:00
b9085551e1
cl-typeck: Reimplement NameCollectable in terms of an AST visitor
John
2024-04-27 15:51:37 -05:00
a877c0d726
cl-arena: Add arena allocator implementation based HEAVILY on rustc-arena
John
2024-04-26 00:02:50 -05:00
893b716c86
cl-structures: Rename the deprecated "intern pool" (lmao)
John
2024-04-25 23:53:44 -05:00
e49b171bea
Rename DefItem/DefSource/DefSorcerer to better reflect their meaning
John
2024-04-25 16:07:26 -05:00
901e9d1d5b
cl-typeck: Remove nightly-only debug_closure_helpers
John
2024-04-25 15:55:32 -05:00
aa3f357fca
conlang: Misc. doc fixes
John
2024-04-24 20:05:55 -05:00
d4432cda7a
cl-structures: Give the StringArena a new home.
John
2024-04-24 19:52:56 -05:00
40ec9b30e4
conlang: Use interned strings (Sym
) for all symbols
John
2024-04-24 19:34:29 -05:00
ede00c3c86
cl-structures: Cleanup for GlobalSym
John
2024-04-24 18:11:21 -05:00
be604b7b45
cl-structures: Use hashbrown's hash table implementation for deduplication.
John
2024-04-24 17:43:02 -05:00
e70ffd1895
cl-structures: Global (ew!) and local string interning!
John
2024-04-24 17:11:41 -05:00
f24bd10c53
cl-structures: intern_pool isn't unsafe
John
2024-04-24 17:00:58 -05:00
8453b092f1
cl-typeck: Fix list in doc comment getting mistaken for a doctest
John
2024-04-24 16:50:30 -05:00
42307d2ab4
cl-typeck: Sketch out a new way to store definition metadata
John
2024-04-22 23:17:50 -05:00
45d75bb552
cl-structures: Make Span and Loc functions const (now you can make a const Span!)
John
2024-04-22 21:44:12 -05:00
b74c4cd5bf
cl-parser: Forego RAII scopeguard finalization pattern in impl Fold for ModuleInliner
John
2024-04-22 21:43:30 -05:00
0c518b47e6
cl-ast: Give Path some inherent methods
John
2024-04-22 21:04:30 -05:00
169f61144b
cl-ast: Fix typo in ast_impl::convert impl From<AsRef<str>> for PathPart
John
2024-04-22 20:52:12 -05:00
a3a87e0b67
test.cl: Fix moved i32 to module ::num
John
2024-04-22 15:47:37 -05:00
ed9b73a1a3
repline: Remove default-features from crossterm, since we don't use the event API
John
2024-04-22 02:18:57 -05:00
9b11543396
Update readme.md
John
2024-04-22 02:06:46 -05:00
2ed8481489
cl-repl: Switch from argh to argwerk
John
2024-04-22 02:03:04 -05:00
a3bb1ef447
stdlib: fix errant let in test.cl
John
2024-04-22 02:02:25 -05:00
f483d690e2
Revert "Cargo.toml: Add documentation
key"
John
2024-04-22 00:07:44 -05:00
087969e117
Cargo.toml: Add documentation
key
John
2024-04-21 23:49:24 -05:00
116d98437c
cl-typeck: Promote some top-module notes to doc comments
John
2024-04-21 23:42:45 -05:00
8121c1c8bb
Move typeck.rs from cl-repl to cl-typeck
John
2024-04-21 23:41:38 -05:00
2a5e965edf
sample-code: Add hello.cl
John
2024-04-21 23:07:16 -05:00
bf16338166
cl-typeck: Outline all modules.
John
2024-04-21 23:05:06 -05:00
9449e5ba06
cl-typeck: Sketch out a new path resolver algorithm, and reparent some unused cruft
John
2024-04-21 22:48:52 -05:00
b796411742
cl-typeck: Module imports v0.1
John
2024-04-21 22:43:25 -05:00
ef190f2d66
cl-structures: Add get_many_mut
implementation for Pool (currently delegates to unstable std)
John
2024-04-21 22:32:47 -05:00
9c3c2e8674
cl-parser: Implement a module inlining pass
John
2024-04-21 22:31:01 -05:00
02323ae6f2
cl-parser: Sync error::Parsing with cl-ast
John
2024-04-21 21:20:55 -05:00
e36a684422
grammar: Make UseTree less ultra-janky
John
2024-04-21 18:57:46 -05:00
5341631781
conlang: Add constructor expression for structs!
John
2024-04-20 15:02:16 -05:00
efd442bbfa
conlang: Import items into scope with use
!
John
2024-04-20 14:51:54 -05:00
9dc0cc7841
cl-interpret: Give the interpreter a little love
John
2024-04-19 10:49:25 -05:00
90a3818ca0
conlang: Move all cl-libs into the compiler directory
John
2024-04-19 07:39:23 -05:00
2a62a1c714
repline: Promote to its own crate!
John
2024-04-19 07:30:17 -05:00
01ffdb67a6
cl-ast: Add Fold and Visit traits, to more easily map or collect nodes in the AST
John
2024-04-19 03:21:07 -05:00
de024b6cb7
cl-repl: Remove references to the old Resolver
John
2024-04-19 03:01:24 -05:00
2834e4a8ea
cl-ast: Fix typo in format.rs
John
2024-04-19 02:47:55 -05:00
4ff101f0ee
yaml.rs: Fix extraneous pair in While
John
2024-04-18 23:58:44 -05:00
1fa027a0c2
cl-ast: Move AST into its own module
John
2024-04-18 21:31:46 -05:00