Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 99 lines (78 sloc) 2.905 kB
fccc685 Initial open-source release
MLstate authored
1 (*
2 Copyright © 2011 MLstate
3
4 This file is part of OPA.
5
6 OPA is free software: you can redistribute it and/or modify it under the
7 terms of the GNU Affero General Public License, version 3, as published by
8 the Free Software Foundation.
9
10 OPA is distributed in the hope that it will be useful, but WITHOUT ANY
11 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
13 more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with OPA. If not, see <http://www.gnu.org/licenses/>.
17 *)
18
19 (*
20 Mathieu Sat Oct 30 11:16:54 CEST 2010
21 We need simplicity in design, and identified dependencies.
22
23 I considere all "roots" things as a terrible hack, but I agree that we have not yet
24 a better mechanism.
25 We should e.g. be able to add a toplevel directive in the opa definition of the identifiers
26 for highlighting roots. In that way, the information would be closed to the opa-source code,
27 not hidden in this file.
28
29 @root serialize = ....
30 *)
31
32 let roots_for_s3
33 ~no_server
34 =
35 (* FIXME: use opacapi *)
36 let pass_ei = [
37 Opacapi.OpaType.instantiate_col;
38 Opacapi.OpaType.instantiate_row;
39 ] in
40
41 let pass_resolveRemoteCalls = [
42 Opacapi.OpaTsc.implementation;
43
44 Opacapi.OpaSerialize.serialize;
45 Opacapi.OpaSerialize.serialize_for_js;
46 Opacapi.OpaSerialize.unserialize;
47 Opacapi.OpaSerialize.unserialize_unsafe;
48
49 Opacapi.OpaRPC.serialize;
50 Opacapi.OpaRPC.empty_request;
51 Opacapi.OpaRPC.add_var_types;
52 Opacapi.OpaRPC.add_row_types;
53 Opacapi.OpaRPC.add_col_types;
54 Opacapi.OpaRPC.add_args_with_type;
55 Opacapi.OpaRPC.unserialize;
56 Opacapi.OpaRPC.extract_types;
57 Opacapi.OpaRPC.extract_values;
58 Opacapi.OpaRPC.empty_request;
59
60 Opacapi.OpaRPC.client_send_to_server;
61 Opacapi.OpaRPC.client_async_send_to_server;
62
63 Opacapi.OpaRPC.server_send_to_client;
24f427d [feature] rpc runtime and compiler: implementing asynchronous server-…
Valentin Gatien-Baron authored
64 Opacapi.OpaRPC.server_async_send_to_client;
fccc685 Initial open-source release
MLstate authored
65
66 Opacapi.OpaRPC.fake_stub;
67 Opacapi.OpaRPC.error_stub;
68
69 Opacapi.OpaRPC.client_dispatcher_register;
70 Opacapi.OpaRPC.server_dispatcher_register;
71
72 Opacapi.OpaRPC.client_try_cache;
73 Opacapi.OpaRPC.server_try_cache;
74
75 Opacapi.Opa2Js.to_string
76 ] in
77
78 let pass_FunAction = [
79 Opacapi.FunActionServer.serialize_call ;
80 Opacapi.FunActionServer.serialize_argument ;
81 Opacapi.FunActionServer.serialize_ty_argument ;
82 ] in
83
84 let pass_JavascriptCompilation = [
85 Opacapi.callFA; (* because used in a @js_ident *)
86 Opacapi.Client_code.register_js_code ;
87 Opacapi.Core_server_code.register_server_code;
88 Opacapi.Client_code.register_js_code_elt ;
89 Opacapi.Client_code.register_css_declaration ;
90 ] in
91
92 if no_server then
93 pass_ei
94 else
95 pass_resolveRemoteCalls
96 @ pass_ei
97 @ pass_FunAction
98 @ pass_JavascriptCompilation
Something went wrong with that request. Please try again.