diff options
| author | letouzey | 2001-10-24 06:50:03 +0000 |
|---|---|---|
| committer | letouzey | 2001-10-24 06:50:03 +0000 |
| commit | 53b680024f0f4d68796cdcacc162b57409a1ca14 (patch) | |
| tree | 975c015c014608669dbb52c0de3f1e069e741c24 | |
| parent | 69bf012d0d2a71ed19fc89b31073747f85f9a11d (diff) | |
Patch de goption.ml pour faire marcher les options synchrones. Passage des options d'extraction en synchrone
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2137 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | contrib/extraction/table.ml | 26 | ||||
| -rw-r--r-- | library/goptions.ml | 5 |
2 files changed, 12 insertions, 19 deletions
diff --git a/contrib/extraction/table.ml b/contrib/extraction/table.ml index bca08db34e..b798d13e43 100644 --- a/contrib/extraction/table.ml +++ b/contrib/extraction/table.ml @@ -53,31 +53,21 @@ let refs_of_vargl = List.map reference_of_varg (*s AutoInline parameter *) -let auto_inline_ref = ref true - -let auto_inline () = !auto_inline_ref - let auto_inline_params = - {optasyncname = "Extraction AutoInline"; - optasynckey = SecondaryTable ("Extraction", "AutoInline"); - optasyncread = auto_inline; - optasyncwrite = (fun b ->auto_inline_ref := b)} + {optsyncname = "Extraction AutoInline"; + optsynckey = SecondaryTable ("Extraction", "AutoInline"); + optsyncdefault = true } -let _ = declare_async_bool_option auto_inline_params +let auto_inline = declare_sync_bool_option auto_inline_params (*s Optimize parameter *) -let optim_ref = ref true - -let optim () = !optim_ref - let optim_params = - {optasyncname = "Extraction Optimize"; - optasynckey = SecondaryTable ("Extraction", "Optimize"); - optasyncread = optim; - optasyncwrite = (fun b ->optim_ref := b)} + {optsyncname = "Extraction Optimize"; + optsynckey = SecondaryTable ("Extraction", "Optimize"); + optsyncdefault = true } -let _ = declare_async_bool_option optim_params +let optim = declare_sync_bool_option optim_params (*s Table for custom inlining *) diff --git a/library/goptions.ml b/library/goptions.ml index 94fb126681..77ce794ce2 100644 --- a/library/goptions.ml +++ b/library/goptions.ml @@ -205,6 +205,7 @@ type option_value_ref = module Key = struct type t = option_name let compare = Pervasives.compare end module OptionMap = Map.Make(Key) +let sync_value_init_tab = ref OptionMap.empty let sync_value_tab = ref OptionMap.empty let async_value_tab = ref OptionMap.empty @@ -224,7 +225,7 @@ let (inOptVal,_) = let freeze_sync_table () = !sync_value_tab let unfreeze_sync_table l = sync_value_tab := l -let init_sync_table () = sync_value_tab := OptionMap.empty +let init_sync_table () = sync_value_tab := !sync_value_init_tab let _ = Summary.declare_summary "Sync_option" { Summary.freeze_function = freeze_sync_table; @@ -263,6 +264,8 @@ let declare_sync_option (cast,uncast) or List.mem_assoc (nickname key) !ident_table then error "Sorry, this option name is already used"; sync_value_tab := OptionMap.add key (name,(cast default)) !sync_value_tab; + sync_value_init_tab := + OptionMap.add key (name,(cast default)) !sync_value_init_tab; fun () -> uncast (snd (OptionMap.find key !sync_value_tab)) type 'a value_function = unit -> 'a |
