Skip to content

Commit 84deb75

Browse files
authored
Merge pull request #64 from upstat-io/dev
sync: docs, blog, plans, and fix COW/LLVM codegen issues
2 parents f630144 + 45de12a commit 84deb75

316 files changed

Lines changed: 18082 additions & 10486 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

blog/building-ori-from-scratch.md

Lines changed: 306 additions & 0 deletions
Large diffs are not rendered by default.

compiler/ori_arc/src/expand_reuse/analysis.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub(super) fn erase_proj_increments(
5454
// Erase entirely.
5555
erased.push(idx);
5656
}
57-
// If count > 1, we'd reduce by 1 — but for 0.1-alpha,
57+
// If count > 1, we'd reduce by 1 — but for 2026,
5858
// single-count incs are the common case. Multi-count
5959
// would need an edit-in-place, handled in a future pass.
6060
claimed.insert(field, proj_var);

compiler/ori_arc/src/ir/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ pub enum ArcTerminator {
235235
default: ArcBlockId,
236236
},
237237

238-
/// Call that may unwind (post-0.1-alpha, for panic/effect support).
238+
/// Call that may unwind (post-2026, for panic/effect support).
239239
/// On success, jumps to `normal`; on unwind, jumps to `unwind`.
240240
Invoke {
241241
dst: ArcVarId,
@@ -250,7 +250,7 @@ pub enum ArcTerminator {
250250
unwind: ArcBlockId,
251251
},
252252

253-
/// Resume unwinding (post-0.1-alpha).
253+
/// Resume unwinding (post-2026).
254254
Resume,
255255

256256
/// Marks a block as unreachable (e.g., after exhaustive match).

compiler/ori_arc/src/lower/constructs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ impl ArcLowerer<'_> {
3535
FunctionExpKind::Recurse => self.lower_exp_recurse(props, span),
3636
FunctionExpKind::Cache => self.lower_exp_cache(props, span),
3737
FunctionExpKind::Catch => self.lower_exp_catch(props, ty, span),
38-
// Post-0.1-alpha — rejected by type checker (E2040), never reaches lowerer
38+
// Post-2026 — rejected by type checker (E2040), never reaches lowerer
3939
FunctionExpKind::Parallel
4040
| FunctionExpKind::Spawn
4141
| FunctionExpKind::Timeout

compiler/ori_arc/src/uniqueness/annotations.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,13 @@ pub fn compute_cow_annotations(
184184
total_cow_ops += 1;
185185
let receiver = args[0];
186186
let mode = state.cow_mode(receiver);
187+
tracing::debug!(
188+
block_idx,
189+
receiver = receiver.raw(),
190+
?mode,
191+
receiver_uniqueness = %state.get(receiver),
192+
"COW Invoke annotation"
193+
);
187194
if mode != CowMode::Dynamic {
188195
eliminated += 1;
189196
}

compiler/ori_eval/src/exec/expr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//!
66
//! # Specification
77
//!
8-
//! - Eval rules: `docs/ori_lang/0.1-alpha/spec/operator-rules.md`
9-
//! - Prose: `docs/ori_lang/0.1-alpha/spec/09-expressions.md`
8+
//! - Eval rules: `docs/ori_lang/v2026/spec/operator-rules.md`
9+
//! - Prose: `docs/ori_lang/v2026/spec/09-expressions.md`
1010
1111
use ori_ir::{Name, StringInterner};
1212

compiler/ori_eval/src/interpreter/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//!
66
//! # Specification
77
//!
8-
//! - Eval rules: `docs/ori_lang/0.1-alpha/spec/operator-rules.md`
9-
//! - Prose: `docs/ori_lang/0.1-alpha/spec/09-expressions.md`
8+
//! - Eval rules: `docs/ori_lang/v2026/spec/operator-rules.md`
9+
//! - Prose: `docs/ori_lang/v2026/spec/09-expressions.md`
1010
//!
1111
//! Implementation must match the evaluation rules in operator-rules.md.
1212
//!

compiler/ori_ir/src/ast/expr.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
//!
55
//! # Specification
66
//!
7-
//! - Syntax: `docs/ori_lang/0.1-alpha/spec/grammar.ebnf` § EXPRESSIONS
8-
//! - Semantics: `docs/ori_lang/0.1-alpha/spec/operator-rules.md`
9-
//! - Prose: `docs/ori_lang/0.1-alpha/spec/09-expressions.md`
7+
//! - Syntax: `docs/ori_lang/v2026/spec/grammar.ebnf` § EXPRESSIONS
8+
//! - Semantics: `docs/ori_lang/v2026/spec/operator-rules.md`
9+
//! - Prose: `docs/ori_lang/v2026/spec/09-expressions.md`
1010
//!
1111
//! # Design Notes
1212
//! Per design spec A-data-structures.md:

compiler/ori_ir/src/ast/operators.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
//!
55
//! # Specification
66
//!
7-
//! - Syntax: `docs/ori_lang/0.1-alpha/spec/grammar.ebnf` § EXPRESSIONS
8-
//! - Semantics: `docs/ori_lang/0.1-alpha/spec/operator-rules.md`
9-
//! - Precedence: `docs/ori_lang/0.1-alpha/spec/operator-rules.md` § Precedence Table
7+
//! - Syntax: `docs/ori_lang/v2026/spec/grammar.ebnf` § EXPRESSIONS
8+
//! - Semantics: `docs/ori_lang/v2026/spec/operator-rules.md`
9+
//! - Precedence: `docs/ori_lang/v2026/spec/operator-rules.md` § Precedence Table
1010
//!
1111
//! # Salsa Compatibility
1212
//! All types have Copy, Clone, Eq, `PartialEq`, Hash, Debug for Salsa requirements.

compiler/ori_ir/src/canon/tree/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ pub enum TestKind {
8484
/// Compare a float value (exact bit equality).
8585
/// Edges are `TestValue::Float` variants.
8686
///
87-
/// Forward-looking: may not be in 0.1-alpha spec.
87+
/// Forward-looking: may not be in 2026 spec.
8888
FloatEq,
8989
/// Check if a value falls within an integer range (inclusive).
9090
/// Edges are `TestValue::IntRange` variants.
9191
///
92-
/// Forward-looking: may not be in 0.1-alpha spec.
92+
/// Forward-looking: may not be in 2026 spec.
9393
IntRange,
9494
/// Compare a char value (equality).
9595
/// Edges are `TestValue::Char` variants.

0 commit comments

Comments
 (0)