difftreelog
feat add ability to change OS stack size
in: master
1 file changed
cmds/jrsonnet/src/main.rsdiffbeforeafterboth99 )]99 )]100 max_trace: usize,100 max_trace: usize,101102 #[clap(103 long,104 about = "Required os stack size, probally you shouldn't change it"105 )]106 thread_stack_size: Option<usize>,101107102 #[clap(long, short = "J", about = "Library search dir")]108 #[clap(long, short = "J", about = "Library search dir")]103 jpath: Vec<PathBuf>,109 jpath: Vec<PathBuf>,113 input: String,119 input: String,114}120}121122fn main() {123 let opts: Opts = Opts::parse();124 if let Some(size) = opts.thread_stack_size {125 std::thread::Builder::new()126 .stack_size(size * 1024 * 1024)127 .spawn(|| main_real(opts))128 .unwrap()129 .join()130 .unwrap();131 } else {132 main_real(opts)133 }134}115135116fn main() {136fn main_real(opts: Opts) {117 let opts: Opts = Opts::parse();118 let evaluator = jrsonnet_evaluator::EvaluationState::default();137 let evaluator = jrsonnet_evaluator::EvaluationState::default();119 evaluator.set_max_trace(opts.max_trace);138 evaluator.set_max_trace(opts.max_trace);120 evaluator.set_max_stack(opts.max_stack);139 evaluator.set_max_stack(opts.max_stack);198 std::process::exit(1);217 std::process::exit(1);199 }218 }200 }219 }201}220}202221203fn print_error(err: &LocError, evaluator: EvaluationState, opts: &Opts) {222fn print_error(err: &LocError, evaluator: EvaluationState, opts: &Opts) {204 println!("Error: {:?}", err.0);223 println!("Error: {:?}", err.0);