2 * Copyright (c) Facebook, Inc. and its affiliates.
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the "hack" directory of this source tree.
9 module type RemoteServerApi
= sig
12 (* Called by the worker to load the naming tabe base when first initializing *)
13 val load_naming_table_base
:
14 naming_table_base
:Path.t
option -> (naming_table
, string) result
16 (* Called by the worker to load the naming table before type checking *)
17 val load_naming_table_changes_since_baseline
:
19 naming_table
:naming_table
->
20 naming_table_diff
:Naming_table.changes_since_baseline
->
21 (naming_table
, string) result
23 (* Called by the worker to type check a list of files.
24 The state filename is where the type checker should save its state that
25 changed as a result of type checking the files
26 (i.e., the dependency graph) *)
31 Relative_path.t list
->
32 state_filename
:string ->
36 type 'naming_table work_env
= {
39 ctx
: Provider_context.t
;
44 naming_table_base
: 'naming_table
;
46 server
: (module RemoteServerApi
with type naming_table
= 'naming_table
);
50 (ctx
: Provider_context.t
)
54 ~
(init_start_t
: float)
57 ?
(timeout
= (600 : int))
58 (server
: (module RemoteServerApi
with type naming_table
= 'naming_table
)) :
59 'naming_table work_env
=
67 naming_table_base
= None
;
73 let go _
= failwith
"not implemented"