From 3488bbc4be0bbea0c1c755ed316d21a190803d68 Mon Sep 17 00:00:00 2001 From: Lucian Wischik Date: Thu, 13 Feb 2020 17:12:03 -0800 Subject: [PATCH] bubble ctx for decls 4/4 Summary: I'm just putting ctx further up the callstack This diff pushes it the remaining way, out of remoteWorker. Reviewed By: arxanas Differential Revision: D19825916 fbshipit-source-id: fb34c150741a2ff759fb57680b9242b12dd09cd3 --- hphp/hack/src/hh_bulk_check.ml | 4 ++-- hphp/hack/src/server/serverApi.ml | 2 +- hphp/hack/src/server/serverInit.ml | 5 ++++- hphp/hack/src/server/serverRemoteInit.ml | 6 +++--- hphp/hack/src/server/serverRemoteInit.mli | 2 +- hphp/hack/src/stubs/remoteWorker.ml | 1 + 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/hphp/hack/src/hh_bulk_check.ml b/hphp/hack/src/hh_bulk_check.ml index e2173c35252..1ad65dda3b2 100644 --- a/hphp/hack/src/hh_bulk_check.ml +++ b/hphp/hack/src/hh_bulk_check.ml @@ -76,8 +76,8 @@ let make_remote_server_api () : Ok (ignore naming_table_base) let load_naming_table_changes_since_baseline - ~naming_table ~naming_table_diff = - Ok (ignore (naming_table, naming_table_diff)) + ctx ~naming_table ~naming_table_diff = + Ok (ignore (ctx, naming_table, naming_table_diff)) end : RemoteWorker.RemoteServerApi with type naming_table = unit ) diff --git a/hphp/hack/src/server/serverApi.ml b/hphp/hack/src/server/serverApi.ml index 70cede7303e..7dfe46fa7ec 100644 --- a/hphp/hack/src/server/serverApi.ml +++ b/hphp/hack/src/server/serverApi.ml @@ -131,11 +131,11 @@ let make_remote_server_api Hh_logger.log_duration "Cleaned state associated with changed files" t let load_naming_table_changes_since_baseline + (ctx : Provider_context.t) ~(naming_table : Naming_table.t option) ~(naming_table_diff : Naming_table.changes_since_baseline) : (Naming_table.t option, string) result = Hh_logger.log "Loading naming table changes since baseline..."; - let ctx = Provider_context.get_global_context_or_empty_FOR_MIGRATION () in match naming_table with | None -> Error "Expected naming table base" | Some naming_table -> diff --git a/hphp/hack/src/server/serverInit.ml b/hphp/hack/src/server/serverInit.ml index f0c4ba7cbdb..070fbf2b4c6 100644 --- a/hphp/hack/src/server/serverInit.ml +++ b/hphp/hack/src/server/serverInit.ml @@ -99,6 +99,7 @@ let init These settings cannot be changed during the lifetime of the server. *) Parser_options_provider.set env.popt; Global_naming_options.set env.tcopt; + Provider_backend.set_shared_memory_backend (); let root = ServerArgs.root genv.options in let (lazy_lev, init_approach) = if GlobalOptions.tco_global_inference env.tcopt then ( @@ -114,9 +115,11 @@ let init failwith "Remote init is only supported in check (run once) mode"; let bin_root = Path.make (Filename.dirname Sys.argv.(0)) in let t = Unix.gettimeofday () in + let backend = Provider_backend.get () in + let ctx = Provider_context.empty_for_tool env.tcopt backend in ServerRemoteInit.init genv.workers - env.tcopt + ctx ~worker_key ~check_id ~bin_root diff --git a/hphp/hack/src/server/serverRemoteInit.ml b/hphp/hack/src/server/serverRemoteInit.ml index f434e20eaff..326c6d0007c 100644 --- a/hphp/hack/src/server/serverRemoteInit.ml +++ b/hphp/hack/src/server/serverRemoteInit.ml @@ -8,7 +8,7 @@ let init (workers : MultiWorker.worker list option) - (tcopt : TypecheckerOptions.t) + (ctx : Provider_context.t) ~(worker_key : string) ~(check_id : string) ~(bin_root : Path.t) @@ -16,7 +16,7 @@ let init let (server : (module RemoteWorker.RemoteServerApi with type naming_table = Naming_table.t option)) = - ServerApi.make_remote_server_api workers tcopt + ServerApi.make_remote_server_api workers ctx.Provider_context.tcopt in let (worker_env : Naming_table.t option RemoteWorker.work_env) = RemoteWorker. @@ -30,4 +30,4 @@ let init server; } in - RemoteWorker.go worker_env + RemoteWorker.go ctx worker_env diff --git a/hphp/hack/src/server/serverRemoteInit.mli b/hphp/hack/src/server/serverRemoteInit.mli index 18db0c4c518..39c7fdffdc3 100644 --- a/hphp/hack/src/server/serverRemoteInit.mli +++ b/hphp/hack/src/server/serverRemoteInit.mli @@ -9,7 +9,7 @@ val init : MultiWorker.worker list option -> - TypecheckerOptions.t -> + Provider_context.t -> worker_key:string -> check_id:string -> bin_root:Path.t -> diff --git a/hphp/hack/src/stubs/remoteWorker.ml b/hphp/hack/src/stubs/remoteWorker.ml index 7876da26fb9..c2c5c108188 100644 --- a/hphp/hack/src/stubs/remoteWorker.ml +++ b/hphp/hack/src/stubs/remoteWorker.ml @@ -15,6 +15,7 @@ module type RemoteServerApi = sig (* Called by the worker to load the naming table before type checking *) val load_naming_table_changes_since_baseline : + Provider_context.t -> naming_table:naming_table -> naming_table_diff:Naming_table.changes_since_baseline -> (naming_table, string) result -- 2.11.4.GIT