@@ -313,7 +313,7 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
313313 version = nothing , tgrad = false ,
314314 jac = false , p = nothing ,
315315 t = nothing ,
316- eval_expression = true ,
316+ eval_expression = false ,
317317 sparse = false , simplify = false ,
318318 eval_module = @__MODULE__ ,
319319 steady_state = false ,
@@ -327,12 +327,12 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
327327 if ! iscomplete (sys)
328328 error (" A completed system is required. Call `complete` or `structural_simplify` on the system before creating an `ODEFunction`" )
329329 end
330- f_gen = generate_function (sys, dvs, ps; expression = Val{eval_expression },
330+ f_gen = generate_function (sys, dvs, ps; expression = Val{true },
331331 expression_module = eval_module, checkbounds = checkbounds,
332332 kwargs... )
333- f_oop, f_iip = eval_expression ?
334- (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen) :
335- f_gen
333+ f_oop, f_iip = eval_expression ? eval_module . eval .(f_gen) :
334+ (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
335+
336336 f (u, p, t) = f_oop (u, p, t)
337337 f (du, u, p, t) = f_iip (du, u, p, t)
338338 f (u, p:: Tuple{Vararg{Number}} , t) = f_oop (u, p, t)
@@ -352,12 +352,12 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
352352 if tgrad
353353 tgrad_gen = generate_tgrad (sys, dvs, ps;
354354 simplify = simplify,
355- expression = Val{eval_expression },
355+ expression = Val{true },
356356 expression_module = eval_module,
357357 checkbounds = checkbounds, kwargs... )
358- tgrad_oop, tgrad_iip = eval_expression ?
359- (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in tgrad_gen) :
360- tgrad_gen
358+ tgrad_oop, tgrad_iip = eval_expression ? eval_module . eval .(tgrad_gen) :
359+ (drop_expr (RuntimeGeneratedFunction (
360+ eval_module, eval_module, ex)) for ex in tgrad_gen)
361361 if p isa Tuple
362362 __tgrad (u, p, t) = tgrad_oop (u, p... , t)
363363 __tgrad (J, u, p, t) = tgrad_iip (J, u, p... , t)
@@ -374,12 +374,13 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
374374 if jac
375375 jac_gen = generate_jacobian (sys, dvs, ps;
376376 simplify = simplify, sparse = sparse,
377- expression = Val{eval_expression },
377+ expression = Val{true },
378378 expression_module = eval_module,
379379 checkbounds = checkbounds, kwargs... )
380- jac_oop, jac_iip = eval_expression ?
381- (drop_expr (@RuntimeGeneratedFunction (eval_module, ex)) for ex in jac_gen) :
382- jac_gen
380+ jac_oop, jac_iip = eval_expression ? eval_module. eval .(jac_gen) :
381+ (drop_expr (RuntimeGeneratedFunction (
382+ eval_module, eval_module, ex)) for ex in jac_gen)
383+
383384 _jac (u, p, t) = jac_oop (u, p, t)
384385 _jac (J, u, p, t) = jac_iip (J, u, p, t)
385386 _jac (u, p:: Tuple{Vararg{Number}} , t) = jac_oop (u, p, t)
@@ -474,7 +475,7 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
474475 ddvs = map (diff2term ∘ Differential (get_iv (sys)), dvs),
475476 version = nothing , p = nothing ,
476477 jac = false ,
477- eval_expression = true ,
478+ eval_expression = false ,
478479 sparse = false , simplify = false ,
479480 eval_module = @__MODULE__ ,
480481 checkbounds = false ,
@@ -485,12 +486,11 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
485486 error (" A completed system is required. Call `complete` or `structural_simplify` on the system before creating a `DAEFunction`" )
486487 end
487488 f_gen = generate_function (sys, dvs, ps; implicit_dae = true ,
488- expression = Val{eval_expression },
489+ expression = Val{true },
489490 expression_module = eval_module, checkbounds = checkbounds,
490491 kwargs... )
491- f_oop, f_iip = eval_expression ?
492- (drop_expr (@RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen) :
493- f_gen
492+ f_oop, f_iip = eval_expression ? eval_module. eval .(f_gen) :
493+ (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
494494 f (du, u, p, t) = f_oop (du, u, p, t)
495495 f (du, u, p:: MTKParameters , t) = f_oop (du, u, p... , t)
496496 f (out, du, u, p, t) = f_iip (out, du, u, p, t)
@@ -499,12 +499,13 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
499499 if jac
500500 jac_gen = generate_dae_jacobian (sys, dvs, ps;
501501 simplify = simplify, sparse = sparse,
502- expression = Val{eval_expression },
502+ expression = Val{true },
503503 expression_module = eval_module,
504504 checkbounds = checkbounds, kwargs... )
505- jac_oop, jac_iip = eval_expression ?
506- (drop_expr (@RuntimeGeneratedFunction (eval_module, ex)) for ex in jac_gen) :
507- jac_gen
505+ jac_oop, jac_iip = eval_expression ? eval_module. eval .(jac_gen) :
506+ (drop_expr (RuntimeGeneratedFunction (
507+ eval_module, eval_module, ex)) for ex in jac_gen)
508+
508509 _jac (du, u, p, ˍ₋gamma, t) = jac_oop (du, u, p, ˍ₋gamma, t)
509510 _jac (du, u, p:: MTKParameters , ˍ₋gamma, t) = jac_oop (du, u, p... , ˍ₋gamma, t)
510511
@@ -555,7 +556,7 @@ function DiffEqBase.DDEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
555556 expression = Val{true },
556557 expression_module = eval_module, checkbounds = checkbounds,
557558 kwargs... )
558- f_oop, f_iip = (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen)
559+ f_oop, f_iip = (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
559560 f (u, h, p, t) = f_oop (u, h, p, t)
560561 f (u, h, p:: MTKParameters , t) = f_oop (u, h, p... , t)
561562 f (du, u, h, p, t) = f_iip (du, u, h, p, t)
@@ -580,7 +581,7 @@ function DiffEqBase.SDDEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys
580581 expression = Val{true },
581582 expression_module = eval_module, checkbounds = checkbounds,
582583 kwargs... )
583- f_oop, f_iip = (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen)
584+ f_oop, f_iip = (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
584585 g_gen = generate_diffusion_function (sys, dvs, ps; expression = Val{true },
585586 isdde = true , kwargs... )
586587 g_oop, g_iip = (drop_expr (@RuntimeGeneratedFunction (ex)) for ex in g_gen)
@@ -770,7 +771,7 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
770771 checkbounds = false , sparse = false ,
771772 simplify = false ,
772773 linenumbers = true , parallel = SerialForm (),
773- eval_expression = true ,
774+ eval_expression = false ,
774775 use_union = true ,
775776 tofloat = true ,
776777 symbolic_u0 = false ,
0 commit comments