@@ -272,16 +272,27 @@ pub fn cairo_run_fuzzed_program(
272272 . allow_missing_builtins
273273 . unwrap_or ( cairo_run_config. proof_mode ) ;
274274
275- let mut cairo_runner = CairoRunner :: new (
275+ let mut runner_builder = CairoRunnerBuilder :: new (
276276 & program,
277277 cairo_run_config. layout ,
278278 cairo_run_config. dynamic_layout_params . clone ( ) ,
279- cairo_run_config. proof_mode ,
280- cairo_run_config. trace_enabled ,
281- cairo_run_config. disable_trace_padding ,
279+ if cairo_run_config. proof_mode {
280+ RunnerMode :: ProofModeCanonical
281+ } else {
282+ RunnerMode :: ExecutionMode
283+ } ,
282284 ) ?;
283-
284- let _end = cairo_runner. initialize ( allow_missing_builtins) ?;
285+ runner_builder. enable_trace ( cairo_run_config. trace_enabled ) ;
286+ runner_builder. allow_missing_builtins ( allow_missing_builtins) ;
287+ runner_builder. disable_trace_padding ( cairo_run_config. disable_trace_padding ) ;
288+ runner_builder. initialize_builtin_runners_for_layout ( ) ?;
289+ runner_builder. initialize_base_segments ( ) ;
290+ runner_builder. load_program ( ) ?;
291+ runner_builder. initialize_builtin_segments ( ) ;
292+ runner_builder. initialize_builtin_zero_segments ( ) ;
293+ let _end = runner_builder. initialize_main_entrypoint ( ) ?;
294+ runner_builder. initialize_validation_rules ( ) ?;
295+ let mut cairo_runner = runner_builder. build ( ) ?;
285296
286297 let res = match cairo_runner. run_until_steps ( steps_limit, hint_processor) {
287298 Err ( VirtualMachineError :: EndOfProgram ( _remaining) ) => Ok ( ( ) ) , // program ran OK but ended before steps limit
0 commit comments