Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,040 changes: 1,040 additions & 0 deletions Cargo.lock

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell

[workspace]
resolver = "2"
members = [
"compiler/eclexia",
"compiler/eclexia-lexer",
"compiler/eclexia-parser",
"compiler/eclexia-ast",
"compiler/eclexia-typeck",
"compiler/eclexia-hir",
"compiler/eclexia-mir",
"compiler/eclexia-codegen",
"runtime/eclexia-runtime",
]

[workspace.package]
version = "0.1.0"
edition = "2021"
authors = ["Jonathan D.A. Jewell"]
license = "AGPL-3.0-or-later"
repository = "https://gitlab.com/eclexia-lang/eclexia"
homepage = "https://eclexia.org"
rust-version = "1.75"

[workspace.dependencies]
# Lexer
logos = "0.14"
unicode-xid = "0.2"

# Parser
# Using hand-written recursive descent for control

# Data structures
indexmap = "2.0"
im = "15.0"
petgraph = "0.6"
typed-arena = "2.0"
bumpalo = "3.16"

# Error handling
thiserror = "1.0"
miette = { version = "7", features = ["fancy"] }
ariadne = "0.4"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# CLI
clap = { version = "4", features = ["derive"] }
rustyline = "14"

# Async runtime (for runtime system)
tokio = { version = "1.37", features = ["full"] }

# Optimization / LP
# good_lp = "1.8" # Add when implementing shadow prices

# Utilities
smol_str = "0.2"
la-arena = "0.3"
rustc-hash = "1.1"

[profile.release]
lto = true
codegen-units = 1
strip = true

[profile.dev]
opt-level = 0
debug = true
20 changes: 15 additions & 5 deletions STATE.scm
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
'((version . "0.1.0") (updated . "2025-12-31") (project . "eclexia")))

(define current-position
'((phase . "v0.1 - Initial Setup")
(overall-completion . 80)
'((phase . "v0.2 - Core Development")
(overall-completion . 35)
(components ((rsr-compliance ((status . "complete") (completion . 100)))
(security-docs ((status . "complete") (completion . 100)))
(scm-files ((status . "complete") (completion . 100)))
Expand All @@ -18,7 +18,16 @@
(bibliography ((status . "complete") (completion . 100)))
(extended-proofs ((status . "complete") (completion . 100)))
(implementation-roadmap ((status . "complete") (completion . 100)))
(implementation ((status . "not-started") (completion . 0)))))))
(compiler-lexer ((status . "complete") (completion . 100)))
(compiler-parser ((status . "complete") (completion . 100)))
(compiler-ast ((status . "complete") (completion . 100)))
(compiler-typeck ((status . "in-progress") (completion . 20)))
(compiler-hir ((status . "not-started") (completion . 0)))
(compiler-mir ((status . "not-started") (completion . 0)))
(compiler-codegen ((status . "not-started") (completion . 0)))
(runtime ((status . "not-started") (completion . 5)))
(cli ((status . "complete") (completion . 100)))
(repl ((status . "complete") (completion . 100)))))))

(define blockers-and-issues '((critical ()) (high-priority ())))

Expand All @@ -30,7 +39,8 @@
'((snapshots ((date . "2025-12-15") (session . "initial") (notes . "SCM files added"))
((date . "2025-12-17") (session . "security-review") (notes . "Fixed placeholders in SECURITY.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md; updated SCM files"))
((date . "2025-12-31") (session . "academic-proofs") (notes . "Added comprehensive academic documentation: WHITEPAPER.md, PROOFS.md, SPECIFICATION.md, FORMAL_VERIFICATION.md, THEORY.md, ALGORITHMS.md, BIBLIOGRAPHY.md"))
((date . "2025-12-31") (session . "implementation-planning") (notes . "Added EXTENDED_PROOFS.md with complete academic proofs; added IMPLEMENTATION_ROADMAP.md with full technology stack and phased development plan")))))
((date . "2025-12-31") (session . "implementation-planning") (notes . "Added EXTENDED_PROOFS.md with complete academic proofs; added IMPLEMENTATION_ROADMAP.md with full technology stack and phased development plan"))
((date . "2025-12-31") (session . "compiler-phase1") (notes . "Implemented Phase 1 of compiler: lexer with dimensional literals, recursive descent parser, AST with dimensional types, basic type checker scaffolding, CLI with build/run/check/fmt commands, interactive REPL. All 14 tests passing.")))))

(define state-summary
'((project . "eclexia") (completion . 80) (blockers . 0) (updated . "2025-12-31")))
'((project . "eclexia") (completion . 35) (blockers . 0) (updated . "2025-12-31")))
20 changes: 20 additions & 0 deletions compiler/eclexia-ast/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell

[package]
name = "eclexia-ast"
description = "Abstract syntax tree definitions for Eclexia"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
smol_str = { workspace = true }
la-arena = { workspace = true }
serde = { workspace = true, optional = true }

[features]
default = []
serde = ["dep:serde", "smol_str/serde"]
Loading
Loading