git.delta.rocks / jrsonnet / refs/commits / dde7edac36b0

difftreelog

refactor(cli) move to split stdlib

Yaroslav Bolyukin2022-07-23parent: #06fa714.patch.diff
in: master

5 files changed

modifiedcmds/jrsonnet/Cargo.tomldiffbeforeafterboth
15 "jrsonnet-evaluator/exp-preserve-order",15 "jrsonnet-evaluator/exp-preserve-order",
16 "jrsonnet-evaluator/exp-serde-preserve-order",16 "jrsonnet-evaluator/exp-serde-preserve-order",
17 "jrsonnet-cli/exp-preserve-order",17 "jrsonnet-cli/exp-preserve-order",
18 "jrsonnet-cli/exp-serde-preserve-order",
18]19]
19# Destructuring of locals20# Destructuring of locals
20exp-destruct = ["jrsonnet-evaluator/exp-destruct"]21exp-destruct = ["jrsonnet-evaluator/exp-destruct"]
2728
28mimallocator = { version = "0.1.3", optional = true }29mimallocator = { version = "0.1.3", optional = true }
29thiserror = "1.0"30thiserror = "1.0"
30clap = { version = "3.1", features = ["derive"] }31clap = { version = "3.2", features = ["derive"] }
31clap_complete = { version = "3.1" }32clap_complete = { version = "3.2" }
3233
modifiedcrates/jrsonnet-cli/Cargo.tomldiffbeforeafterboth
88
9[features]9[features]
10exp-preserve-order = ["jrsonnet-evaluator/exp-preserve-order"]10exp-preserve-order = [
11 "jrsonnet-evaluator/exp-preserve-order",
12 "jrsonnet-stdlib/exp-preserve-order",
13]
14exp-serde-preserve-order = [
15 "jrsonnet-evaluator/exp-serde-preserve-order",
16 "jrsonnet-stdlib/exp-serde-preserve-order",
17]
1118
12[dependencies]19[dependencies]
13jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.4.2", features = [20jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.4.2", features = [
14 "explaining-traces",21 "explaining-traces",
15] }22] }
16jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.4.2" }23jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.4.2" }
17jrsonnet-gcmodule = { version = "0.3.4" }24jrsonnet-gcmodule = { version = "0.3.4" }
25jrsonnet-stdlib = { path = "../../crates/jrsonnet-stdlib", version = "0.4.2" }
1826
19clap = { version = "3.1", features = ["derive"] }27clap = { version = "3.2", features = ["derive"] }
2028
deletedcrates/jrsonnet-cli/src/ext.rsdiffbeforeafterboth

no changes

modifiedcrates/jrsonnet-cli/src/lib.rsdiffbeforeafterboth
1mod ext;1mod manifest;
2mod manifest;2mod stdlib;
3mod tla;3mod tla;
4mod trace;4mod trace;
55
6use std::{env, path::PathBuf};6use std::{env, path::PathBuf};
77
8use clap::Parser;8use clap::Parser;
9pub use ext::*;
10use jrsonnet_evaluator::{error::Result, FileImportResolver, State};9use jrsonnet_evaluator::{error::Result, FileImportResolver, State};
11use jrsonnet_gcmodule::with_thread_object_space;10use jrsonnet_gcmodule::with_thread_object_space;
12pub use manifest::*;11pub use manifest::*;
12pub use stdlib::*;
13pub use tla::*;13pub use tla::*;
14pub use trace::*;14pub use trace::*;
1515
31#[derive(Parser)]31#[derive(Parser)]
32#[clap(next_help_heading = "OPTIONS")]32#[clap(next_help_heading = "OPTIONS")]
33pub struct MiscOpts {33pub struct MiscOpts {
34 /// Disable standard library.
35 /// By default standard library will be available via global `std` variable.
36 /// Note that standard library will still be loaded
37 /// if chosen manifestification method is not `none`.
38 #[clap(long)]
39 no_stdlib: bool,
40
41 /// Maximal allowed number of stack frames,34 /// Maximal allowed number of stack frames,
42 /// stack overflow error will be raised if this number gets exceeded.35 /// stack overflow error will be raised if this number gets exceeded.
52}45}
53impl ConfigureState for MiscOpts {46impl ConfigureState for MiscOpts {
54 fn configure(&self, s: &State) -> Result<()> {47 fn configure(&self, s: &State) -> Result<()> {
55 if !self.no_stdlib {
56 s.with_stdlib();
57 }
58
59 let mut library_paths = self.jpath.clone();48 let mut library_paths = self.jpath.clone();
60 library_paths.reverse();49 library_paths.reverse();
79 #[clap(flatten)]68 #[clap(flatten)]
80 tla: TLAOpts,69 tla: TLAOpts,
81 #[clap(flatten)]70 #[clap(flatten)]
82 ext: ExtVarOpts,71 std: StdOpts,
8372
84 #[clap(flatten)]73 #[clap(flatten)]
85 trace: TraceOpts,74 trace: TraceOpts,
91 self.trace.configure(s)?;80 self.trace.configure(s)?;
92 self.misc.configure(s)?;81 self.misc.configure(s)?;
93 self.tla.configure(s)?;82 self.tla.configure(s)?;
94 self.ext.configure(s)?;83 self.std.configure(s)?;
95 Ok(())84 Ok(())
96 }85 }
97}86}
114impl GcOpts {103impl GcOpts {
115 pub fn stats_printer(&self) -> (Option<GcStatsPrinter>, Option<LeakSpace>) {104 pub fn stats_printer(&self) -> (Option<GcStatsPrinter>, Option<LeakSpace>) {
116 (105 (
117 self.gc_print_stats.then(|| GcStatsPrinter {106 self.gc_print_stats.then_some(GcStatsPrinter {
118 collect_before_printing_stats: self.gc_collect_before_printing_stats,107 collect_before_printing_stats: self.gc_collect_before_printing_stats,
119 }),108 }),
120 (!self.gc_collect_on_exit).then(|| LeakSpace {}),109 (!self.gc_collect_on_exit).then_some(LeakSpace {}),
121 )110 )
122 }111 }
123}112}
addedcrates/jrsonnet-cli/src/stdlib.rsdiffbeforeafterboth

no changes