diff options
| author | Maxime Dénès | 2014-04-09 15:36:10 -0400 |
|---|---|---|
| committer | Maxime Dénès | 2014-04-09 15:36:10 -0400 |
| commit | 286ab375eb8a56de0becd7600ca249c91667e1c7 (patch) | |
| tree | a71a8fb8dc4b6fd86b95caf40936e1b8ea38c0b3 /kernel/nativelambda.ml | |
| parent | d6f0694465ba46e07d895124e6ecb676e23ee8e8 (diff) | |
Fix exponential behavior in native compiler with retroknowledge.
Diffstat (limited to 'kernel/nativelambda.ml')
| -rw-r--r-- | kernel/nativelambda.ml | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/nativelambda.ml b/kernel/nativelambda.ml index acf1154660..8ea28ddff1 100644 --- a/kernel/nativelambda.ml +++ b/kernel/nativelambda.ml @@ -647,9 +647,11 @@ and lambda_of_app env sigma f args = let cb = lookup_constant kn !global_env in (try let prefix = get_const_prefix !global_env kn in + (* We delay the compilation of arguments to avoid an exponential behavior *) + let f = Retroknowledge.get_native_compiling_info + (!global_env).retroknowledge (mkConst kn) prefix in let args = lambda_of_args env sigma 0 args in - Retroknowledge.get_native_compiling_info - (!global_env).retroknowledge (mkConst kn) prefix args + f args with Not_found -> begin match cb.const_body with | Def csubst -> |
