Adjust module organization to facilitate resurrection of the playground.
The playground doesn't / cannot depend on aiken-project because that becomes a gigantic pain. So instead, we try to keep essential stuff inside aiken-lang when possible.
This commit is contained in:
parent
8bccbd9e00
commit
e31c6de04e
|
@ -82,7 +82,9 @@ name = "aiken-lang"
|
||||||
version = "1.0.31-alpha"
|
version = "1.0.31-alpha"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"blst",
|
"blst",
|
||||||
|
"built",
|
||||||
"chumsky",
|
"chumsky",
|
||||||
|
"cryptoxide",
|
||||||
"hex",
|
"hex",
|
||||||
"indexmap 1.9.3",
|
"indexmap 1.9.3",
|
||||||
"indoc",
|
"indoc",
|
||||||
|
@ -93,6 +95,7 @@ dependencies = [
|
||||||
"ordinal",
|
"ordinal",
|
||||||
"owo-colors 3.5.0",
|
"owo-colors 3.5.0",
|
||||||
"pallas-primitives",
|
"pallas-primitives",
|
||||||
|
"patricia_tree",
|
||||||
"petgraph",
|
"petgraph",
|
||||||
"pretty_assertions",
|
"pretty_assertions",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -133,7 +136,6 @@ dependencies = [
|
||||||
"built",
|
"built",
|
||||||
"camino",
|
"camino",
|
||||||
"ciborium",
|
"ciborium",
|
||||||
"cryptoxide",
|
|
||||||
"dirs",
|
"dirs",
|
||||||
"fslock",
|
"fslock",
|
||||||
"futures",
|
"futures",
|
||||||
|
@ -152,7 +154,6 @@ dependencies = [
|
||||||
"pallas-crypto",
|
"pallas-crypto",
|
||||||
"pallas-primitives",
|
"pallas-primitives",
|
||||||
"pallas-traverse",
|
"pallas-traverse",
|
||||||
"patricia_tree",
|
|
||||||
"petgraph",
|
"petgraph",
|
||||||
"pretty_assertions",
|
"pretty_assertions",
|
||||||
"proptest",
|
"proptest",
|
||||||
|
|
|
@ -48,7 +48,7 @@ x86_64-unknown-linux-gnu = "ubuntu-22.04"
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
walkdir = "2.3.2"
|
walkdir = "2.3.2"
|
||||||
insta = { version = "1.30.0", features = ["yaml", "json", "redactions"] }
|
insta = { version = "1.30.0", features = ["yaml", "json", "redactions"] }
|
||||||
miette = { version = "7.2.0", features = ["fancy"] }
|
miette = { version = "7.2.0" }
|
||||||
pallas-addresses = "0.30.1"
|
pallas-addresses = "0.30.1"
|
||||||
pallas-codec = { version = "0.30.1", features = ["num-bigint"] }
|
pallas-codec = { version = "0.30.1", features = ["num-bigint"] }
|
||||||
pallas-crypto = "0.30.1"
|
pallas-crypto = "0.30.1"
|
||||||
|
|
|
@ -15,6 +15,7 @@ rust-version = "1.66.1"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
blst = "0.3.11"
|
blst = "0.3.11"
|
||||||
|
cryptoxide = "0.4.4"
|
||||||
hex = "0.4.3"
|
hex = "0.4.3"
|
||||||
indexmap = "1.9.2"
|
indexmap = "1.9.2"
|
||||||
indoc = "2.0.1"
|
indoc = "2.0.1"
|
||||||
|
@ -24,6 +25,7 @@ num-bigint = "0.4.3"
|
||||||
ordinal = "0.3.2"
|
ordinal = "0.3.2"
|
||||||
owo-colors = { version = "3.5.0", features = ["supports-colors"] }
|
owo-colors = { version = "3.5.0", features = ["supports-colors"] }
|
||||||
pallas-primitives.workspace = true
|
pallas-primitives.workspace = true
|
||||||
|
patricia_tree = "0.8.0"
|
||||||
petgraph = "0.6.3"
|
petgraph = "0.6.3"
|
||||||
serde = { version = "1.0.197", features = ["derive", "rc"] }
|
serde = { version = "1.0.197", features = ["derive", "rc"] }
|
||||||
strum = "0.24.1"
|
strum = "0.24.1"
|
||||||
|
@ -43,3 +45,6 @@ chumsky = { version = "0.9.2", features = [
|
||||||
indoc = "2.0.1"
|
indoc = "2.0.1"
|
||||||
insta.workspace = true
|
insta.workspace = true
|
||||||
pretty_assertions = "1.3.0"
|
pretty_assertions = "1.3.0"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
built = { version = "0.7.1", features = ["git2"] }
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() {
|
||||||
|
built::write_built_file().expect("Failed to acquire build-time information");
|
||||||
|
}
|
|
@ -14,7 +14,10 @@ pub mod line_numbers;
|
||||||
pub mod parser;
|
pub mod parser;
|
||||||
pub mod plutus_version;
|
pub mod plutus_version;
|
||||||
pub mod pretty;
|
pub mod pretty;
|
||||||
|
pub mod test_framework;
|
||||||
pub mod tipo;
|
pub mod tipo;
|
||||||
|
pub mod utils;
|
||||||
|
pub mod version;
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone)]
|
#[derive(Debug, Default, Clone)]
|
||||||
pub struct IdGenerator {
|
pub struct IdGenerator {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,15 @@
|
||||||
|
pub fn compiler_version(include_commit_hash: bool) -> String {
|
||||||
|
if include_commit_hash {
|
||||||
|
format!(
|
||||||
|
"v{}+{}",
|
||||||
|
built_info::PKG_VERSION,
|
||||||
|
built_info::GIT_COMMIT_HASH_SHORT.unwrap_or("unknown")
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
format!("v{}", built_info::PKG_VERSION,)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mod built_info {
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/built.rs"));
|
||||||
|
}
|
|
@ -1,8 +1,5 @@
|
||||||
use aiken_lang::{ast::Tracing, line_numbers::LineNumbers};
|
use aiken_lang::{ast::Tracing, line_numbers::LineNumbers, test_framework::PropertyTest};
|
||||||
use aiken_project::{
|
use aiken_project::{config::Config, error::Error as ProjectError, module::CheckedModule, Project};
|
||||||
config::Config, error::Error as ProjectError, module::CheckedModule,
|
|
||||||
test_framework::PropertyTest, Project,
|
|
||||||
};
|
|
||||||
use std::{collections::HashMap, path::PathBuf};
|
use std::{collections::HashMap, path::PathBuf};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
|
|
@ -19,7 +19,6 @@ aiken-lang = { path = "../aiken-lang", version = "1.0.31-alpha" }
|
||||||
askama = { version = "0.12.0", features = ["urlencode"] }
|
askama = { version = "0.12.0", features = ["urlencode"] }
|
||||||
camino = "1.1.9"
|
camino = "1.1.9"
|
||||||
ciborium = "0.2.2"
|
ciborium = "0.2.2"
|
||||||
cryptoxide = "0.4.4"
|
|
||||||
dirs = "4.0.0"
|
dirs = "4.0.0"
|
||||||
fslock = "0.2.1"
|
fslock = "0.2.1"
|
||||||
futures = "0.3.26"
|
futures = "0.3.26"
|
||||||
|
@ -27,7 +26,7 @@ hex = "0.4.3"
|
||||||
ignore = "0.4.20"
|
ignore = "0.4.20"
|
||||||
indexmap = "1.9.2"
|
indexmap = "1.9.2"
|
||||||
itertools = "0.10.5"
|
itertools = "0.10.5"
|
||||||
miette.workspace = true
|
miette = { version = "7.2.0", features = ["fancy"] }
|
||||||
notify = "6.1.1"
|
notify = "6.1.1"
|
||||||
num-bigint = "0.4.4"
|
num-bigint = "0.4.4"
|
||||||
owo-colors = { version = "3.5.0", features = ["supports-colors"] }
|
owo-colors = { version = "3.5.0", features = ["supports-colors"] }
|
||||||
|
@ -36,7 +35,6 @@ pallas-codec.workspace = true
|
||||||
pallas-crypto.workspace = true
|
pallas-crypto.workspace = true
|
||||||
pallas-primitives.workspace = true
|
pallas-primitives.workspace = true
|
||||||
pallas-traverse.workspace = true
|
pallas-traverse.workspace = true
|
||||||
patricia_tree = "0.8.0"
|
|
||||||
petgraph = "0.6.3"
|
petgraph = "0.6.3"
|
||||||
pulldown-cmark = { version = "0.12.0", default-features = false, features = ["html"] }
|
pulldown-cmark = { version = "0.12.0", default-features = false, features = ["html"] }
|
||||||
rayon = "1.7.0"
|
rayon = "1.7.0"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
use crate::{github::repo::LatestRelease, package_name::PackageName, paths, Error};
|
use crate::{github::repo::LatestRelease, package_name::PackageName, paths, Error};
|
||||||
pub use aiken_lang::plutus_version::PlutusVersion;
|
|
||||||
use aiken_lang::{
|
use aiken_lang::{
|
||||||
ast::{
|
ast::{
|
||||||
Annotation, ByteArrayFormatPreference, Constant, ModuleConstant, Span, UntypedDefinition,
|
Annotation, ByteArrayFormatPreference, Constant, ModuleConstant, Span, UntypedDefinition,
|
||||||
|
@ -7,6 +6,7 @@ use aiken_lang::{
|
||||||
expr::UntypedExpr,
|
expr::UntypedExpr,
|
||||||
parser::token::Base,
|
parser::token::Base,
|
||||||
};
|
};
|
||||||
|
pub use aiken_lang::{plutus_version::PlutusVersion, version::compiler_version};
|
||||||
use miette::NamedSource;
|
use miette::NamedSource;
|
||||||
use semver::Version;
|
use semver::Version;
|
||||||
use serde::{
|
use serde::{
|
||||||
|
@ -355,18 +355,6 @@ mod built_info {
|
||||||
include!(concat!(env!("OUT_DIR"), "/built.rs"));
|
include!(concat!(env!("OUT_DIR"), "/built.rs"));
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn compiler_version(include_commit_hash: bool) -> String {
|
|
||||||
if include_commit_hash {
|
|
||||||
format!(
|
|
||||||
"v{}+{}",
|
|
||||||
built_info::PKG_VERSION,
|
|
||||||
built_info::GIT_COMMIT_HASH_SHORT.unwrap_or("unknown")
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
format!("v{}", built_info::PKG_VERSION,)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn compiler_info() -> String {
|
pub fn compiler_info() -> String {
|
||||||
format!(
|
format!(
|
||||||
r#"
|
r#"
|
||||||
|
|
|
@ -3,6 +3,7 @@ use aiken_lang::{
|
||||||
ast::{self, Span},
|
ast::{self, Span},
|
||||||
error::ExtraData,
|
error::ExtraData,
|
||||||
parser::error::ParseError,
|
parser::error::ParseError,
|
||||||
|
test_framework::{PropertyTestResult, TestResult, UnitTestResult},
|
||||||
tipo,
|
tipo,
|
||||||
};
|
};
|
||||||
use miette::{
|
use miette::{
|
||||||
|
@ -162,6 +163,28 @@ impl Error {
|
||||||
|
|
||||||
errors
|
errors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn from_test_result<U, T>(result: &TestResult<U, T>, verbose: bool) -> Self {
|
||||||
|
let (name, path, src) = match result {
|
||||||
|
TestResult::UnitTestResult(UnitTestResult { test, .. }) => (
|
||||||
|
test.name.to_string(),
|
||||||
|
test.input_path.to_path_buf(),
|
||||||
|
test.program.to_pretty(),
|
||||||
|
),
|
||||||
|
TestResult::PropertyTestResult(PropertyTestResult { test, .. }) => (
|
||||||
|
test.name.to_string(),
|
||||||
|
test.input_path.to_path_buf(),
|
||||||
|
test.program.to_pretty(),
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
Error::TestFailure {
|
||||||
|
name,
|
||||||
|
path,
|
||||||
|
src,
|
||||||
|
verbose,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Debug for Error {
|
impl Debug for Error {
|
||||||
|
|
|
@ -12,10 +12,10 @@ pub mod package_name;
|
||||||
pub mod paths;
|
pub mod paths;
|
||||||
pub mod pretty;
|
pub mod pretty;
|
||||||
pub mod telemetry;
|
pub mod telemetry;
|
||||||
pub mod test_framework;
|
|
||||||
pub mod utils;
|
|
||||||
pub mod watch;
|
pub mod watch;
|
||||||
|
|
||||||
|
mod test_framework;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
mod tests;
|
||||||
|
|
||||||
|
@ -40,8 +40,9 @@ use aiken_lang::{
|
||||||
format::{Formatter, MAX_COLUMNS},
|
format::{Formatter, MAX_COLUMNS},
|
||||||
gen_uplc::CodeGenerator,
|
gen_uplc::CodeGenerator,
|
||||||
line_numbers::LineNumbers,
|
line_numbers::LineNumbers,
|
||||||
|
test_framework::{Test, TestResult},
|
||||||
tipo::{Type, TypeInfo},
|
tipo::{Type, TypeInfo},
|
||||||
IdGenerator,
|
utils, IdGenerator,
|
||||||
};
|
};
|
||||||
use export::Export;
|
use export::Export;
|
||||||
use indexmap::IndexMap;
|
use indexmap::IndexMap;
|
||||||
|
@ -58,7 +59,6 @@ use std::{
|
||||||
rc::Rc,
|
rc::Rc,
|
||||||
};
|
};
|
||||||
use telemetry::EventListener;
|
use telemetry::EventListener;
|
||||||
use test_framework::{Test, TestResult};
|
|
||||||
use uplc::{
|
use uplc::{
|
||||||
ast::{Constant, Name, Program},
|
ast::{Constant, Name, Program},
|
||||||
PlutusData,
|
PlutusData,
|
||||||
|
@ -419,7 +419,7 @@ where
|
||||||
if e.is_success() {
|
if e.is_success() {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
Some(e.into_error(verbose))
|
Some(Error::from_test_result(e, verbose))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
use crate::{
|
use crate::pretty;
|
||||||
pretty,
|
use aiken_lang::{
|
||||||
|
ast::OnTestFailure,
|
||||||
|
expr::UntypedExpr,
|
||||||
|
format::Formatter,
|
||||||
test_framework::{PropertyTestResult, TestResult, UnitTestResult},
|
test_framework::{PropertyTestResult, TestResult, UnitTestResult},
|
||||||
};
|
};
|
||||||
use aiken_lang::{ast::OnTestFailure, expr::UntypedExpr, format::Formatter};
|
|
||||||
use owo_colors::{OwoColorize, Stream::Stderr};
|
use owo_colors::{OwoColorize, Stream::Stderr};
|
||||||
use std::{collections::BTreeMap, fmt::Display, path::PathBuf};
|
use std::{collections::BTreeMap, fmt::Display, path::PathBuf};
|
||||||
use uplc::machine::cost_model::ExBudget;
|
use uplc::machine::cost_model::ExBudget;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
||||||
use super::build::{filter_traces_parser, trace_level_parser};
|
use super::build::{filter_traces_parser, trace_level_parser};
|
||||||
use aiken_lang::ast::{TraceLevel, Tracing};
|
use aiken_lang::{
|
||||||
use aiken_project::{
|
ast::{TraceLevel, Tracing},
|
||||||
test_framework::PropertyTest,
|
test_framework::PropertyTest,
|
||||||
watch::{self, watch_project, with_project},
|
|
||||||
};
|
};
|
||||||
|
use aiken_project::watch::{self, watch_project, with_project};
|
||||||
use rand::prelude::*;
|
use rand::prelude::*;
|
||||||
use std::{path::PathBuf, process};
|
use std::{path::PathBuf, process};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue