forked from MLstate/opalang
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pass_AddStdlibFiles.mli
57 lines (46 loc) · 1.96 KB
/
pass_AddStdlibFiles.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(*
Copyright © 2011 MLstate
This file is part of OPA.
OPA is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License, version 3, as published by
the Free Software Foundation.
OPA is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
more details.
You should have received a copy of the GNU Affero General Public License
along with OPA. If not, see <http://www.gnu.org/licenses/>.
*)
(**
Loading the standard library.
*)
(**
The stdlib can be loaded in two ways.
1) [of_static_include]
This is the default one, it works as follows:
- A [staticsInclude.of] file is generated by the build system (see
../build_rules.ml), automatically selecting files to be included from the
stdlib directory
- ofile is used to turn the [staticsInclude.of] into [staticsInclude.ml],
embedding all stdlib source as strings (this is done by the generic ofile
build rule)
- the [StaticsInclude] module is included in [opalib.cmxa] and used at
compile-time
- the mechanism in the current module enables to switch between different
(conflicting) versions for some stdlib files
2) [of_basedir]
The second version dynamically looks for the files at opa compile-time (ie ml runtime).
Only use for more easily testing your changes to the stdlib. It uses the [of_basedir]
function below.
*)
type filename = string
(**
Returns all the filenames of the stdlib embedded in the compiler.
cf [build_rules.ml], we access the [StaticsInclude.file_list],
and applying the dynamic filter.
*)
val of_static_include : OpaEnv.opa_options -> filename list
(**
Get all the opafiles from the basedir, and applying the same dynamic filter.
*)
val of_basedir : filename list -> OpaEnv.opa_options -> filename list