From 7cfc4e5146be5666419451bdd516f1f3f264d24a Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Sun, 25 Jan 2015 14:42:51 +0100 Subject: Imported Upstream version 8.5~beta1+dfsg --- kernel/retroknowledge.mli | 96 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 30 deletions(-) (limited to 'kernel/retroknowledge.mli') diff --git a/kernel/retroknowledge.mli b/kernel/retroknowledge.mli index 0b1d8c69..9a63deb7 100644 --- a/kernel/retroknowledge.mli +++ b/kernel/retroknowledge.mli @@ -1,6 +1,6 @@ (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) -(* entry -> Cbytecodes.bytecodes val get_vm_decompile_constant_info : retroknowledge -> entry -> int -> Term.constr -(** the following functions are solely used in Pre_env and Environ to implement - the functions register and unregister (and mem) of Environ *) -val add_field : retroknowledge -> field -> entry -> retroknowledge -val mem : retroknowledge -> field -> bool -val remove : retroknowledge -> field -> retroknowledge -val find : retroknowledge -> field -> entry +val get_native_compiling_info : retroknowledge -> entry -> Nativeinstr.prefix -> + Nativeinstr.lambda array -> Nativeinstr.lambda -(** the following function manipulate the reactive information of values - they are only used by the functions of Pre_env, and Environ to implement - the functions register and unregister of Environ *) -val add_vm_compiling_info : retroknowledge-> entry -> - (bool -> Cbytecodes.comp_env -> constr array -> int -> - Cbytecodes.bytecodes -> Cbytecodes.bytecodes) -> - retroknowledge -val add_vm_constant_static_info : retroknowledge-> entry -> - (bool->constr array-> - Cbytecodes.structured_constant) -> - retroknowledge -val add_vm_constant_dynamic_info : retroknowledge-> entry -> - (bool -> Cbytecodes.comp_env -> - Cbytecodes.block array -> int -> - Cbytecodes.bytecodes -> Cbytecodes.bytecodes) -> - retroknowledge -val add_vm_before_match_info : retroknowledge -> entry -> - (bool->Cbytecodes.bytecodes->Cbytecodes.bytecodes) -> - retroknowledge +val get_native_constant_static_info : retroknowledge -> entry -> + constr array -> Nativeinstr.lambda -val add_vm_decompile_constant_info : retroknowledge -> entry -> - (int -> constr) -> retroknowledge +val get_native_constant_dynamic_info : retroknowledge -> entry -> + Nativeinstr.prefix -> constructor -> + Nativeinstr.lambda array -> + Nativeinstr.lambda +val get_native_before_match_info : retroknowledge -> entry -> + Nativeinstr.prefix -> constructor -> + Nativeinstr.lambda -> Nativeinstr.lambda -val clear_info : retroknowledge-> entry -> retroknowledge +(** the following functions are solely used in Pre_env and Environ to implement + the functions register and unregister (and mem) of Environ *) +val add_field : retroknowledge -> field -> entry -> retroknowledge +val mem : retroknowledge -> field -> bool +(* val remove : retroknowledge -> field -> retroknowledge *) +val find : retroknowledge -> field -> entry +(** Dispatching type for the above [get_*] functions. *) +type reactive_info = {(*information required by the compiler of the VM *) + vm_compiling : + (*fastcomputation flag -> continuation -> result *) + (bool->Cbytecodes.comp_env->constr array -> + int->Cbytecodes.bytecodes->Cbytecodes.bytecodes) + option; + vm_constant_static : + (*fastcomputation flag -> constructor -> args -> result*) + (bool->constr array->Cbytecodes.structured_constant) + option; + vm_constant_dynamic : + (*fastcomputation flag -> constructor -> reloc -> args -> sz -> cont -> result *) + (bool->Cbytecodes.comp_env->Cbytecodes.block array->int-> + Cbytecodes.bytecodes->Cbytecodes.bytecodes) + option; + (* fastcomputation flag -> cont -> result *) + vm_before_match : (bool -> Cbytecodes.bytecodes -> Cbytecodes.bytecodes) option; + (* tag (= compiled int for instance) -> result *) + vm_decompile_const : (int -> Term.constr) option; + + native_compiling : + (bool -> Nativeinstr.prefix -> Nativeinstr.lambda array -> + Nativeinstr.lambda) option; + + native_constant_static : + (bool -> constr array -> Nativeinstr.lambda) option; + + native_constant_dynamic : + (bool -> Nativeinstr.prefix -> constructor -> + Nativeinstr.lambda array -> Nativeinstr.lambda) option; + + native_before_match : (bool -> Nativeinstr.prefix -> constructor -> + Nativeinstr.lambda -> Nativeinstr.lambda) option + +} + +val empty_reactive_info : reactive_info + +(** Hook to be set after the compiler are installed to dispatch fields + into the above [get_*] functions. *) +val dispatch_hook : (retroknowledge -> entry -> field -> reactive_info) Hook.t -- cgit v1.2.3