@@ -187,16 +187,26 @@ pub fn cairo_run_pie(
187187 let allow_missing_builtins = cairo_run_config. allow_missing_builtins . unwrap_or_default ( ) ;
188188
189189 let program = Program :: from_stripped_program ( & pie. metadata . program ) ;
190- let mut cairo_runner = CairoRunner :: new (
190+
191+ let mut runner_builder = CairoRunnerBuilder :: new (
191192 & program,
192193 cairo_run_config. layout ,
193194 cairo_run_config. dynamic_layout_params . clone ( ) ,
194- false ,
195- cairo_run_config. trace_enabled ,
196- cairo_run_config. disable_trace_padding ,
195+ RunnerMode :: ExecutionMode ,
197196 ) ?;
197+ runner_builder. enable_trace ( cairo_run_config. trace_enabled ) ;
198+ runner_builder. disable_trace_padding ( cairo_run_config. disable_trace_padding ) ;
199+ runner_builder. allow_missing_builtins ( allow_missing_builtins) ;
200+ runner_builder. initialize_builtin_runners_for_layout ( ) ?;
201+ runner_builder. initialize_base_segments ( ) ;
202+ runner_builder. load_program ( ) ?;
203+ runner_builder. initialize_builtin_segments ( ) ;
204+ runner_builder. initialize_builtin_zero_segments ( ) ;
205+ let end = runner_builder. initialize_main_entrypoint ( ) ?;
206+ runner_builder. initialize_validation_rules ( ) ?;
207+
208+ let mut cairo_runner = runner_builder. build ( ) ?;
198209
199- let end = cairo_runner. initialize ( allow_missing_builtins) ?;
200210 cairo_runner. vm . finalize_segments_by_cairo_pie ( pie) ;
201211 // Load builtin additional data
202212 for ( name, data) in pie. additional_data . 0 . iter ( ) {
0 commit comments