Commit Graph

863 Commits

Author SHA1 Message Date
Jeremie Dimino ba439b534d Fix previous commit 2018-03-30 16:47:29 -04:00
Jeremie Dimino cd2cfb44e8 Register a few more dependencies statically
This is needed for "external-lib-deps" and it improves parallelism.
2018-03-30 13:16:23 -04:00
Jeremie Dimino 341de6e50f Fix check for empty libraries 2018-03-30 11:22:53 -04:00
Jeremie Dimino e65213e303 Fix Main.external_lib_deps 2018-03-29 15:33:18 -04:00
Jeremie Dimino c7b9c2cd3e Fix #661: better error when a public library is defined twice 2018-03-29 15:04:14 -04:00
Jeremie Dimino ad00c1509f Fix #657 2018-03-27 17:25:25 -04:00
David Allsopp 808644533f Don't color the whitespace in --display=short 2018-03-24 12:25:27 +00:00
Rudi Grinberg 8fd04e5a9f Use doc_dir rather than dir
dir is the source directory which is useless to us
2018-03-24 00:54:33 +08:00
Rudi Grinberg aea0131b11 Don't pass library include flags to odoc
We should pass directories where we store .odoc files instead
2018-03-24 00:38:34 +08:00
Rudi Grinberg 141e979611
Merge pull request #649 from rgrinberg/PATH-x
Set the target's PATH when cross compiling
2018-03-24 00:13:53 +08:00
Rudi Grinberg 8859a644e9 When executing in the target, use the host's PATH variable 2018-03-23 22:39:06 +08:00
Rudi Grinberg fae5e78fc2 Change Meta.load to return the simplified meta
It's always simplified anyway
2018-03-23 10:12:34 +08:00
Rudi Grinberg 9f3eb956d3 Add Env.update 2018-03-22 22:42:42 +08:00
Rudi Grinberg a83c15b085 Alphabetical listings in odoc
List sub libraries and their modules in alphabetical order
2018-03-22 20:40:46 +08:00
Rudi Grinberg f8225b1e7b Replace blank c compilers with dummy values
This is how we treat the assembler.
2018-03-22 00:03:35 +08:00
Rudi Grinberg 96222ee681 Don't error out when asm is a blank value
Treat it as missing instead
2018-03-22 00:03:35 +08:00
Rudi Grinberg 994fb12651 Tweak order in Map.of_list error (#645)
We should show the key that came earlier in the list first
2018-03-20 14:08:02 -04:00
Rudi Grinberg d2c85e3329 Use dummy value for asm when absent
On bytecode only systems, this parameter may be absent. We use a dummy in such
situations. A dummy value is used so that users do not get immediate erros when
using an absent value.
2018-03-21 00:53:37 +08:00
Jérémie Dimino f5f151dc19
Inspect OCAMLPATH when not using `ocamlfind` (#642) 2018-03-20 12:43:51 -04:00
Rudi Grinberg cc02277095 Handle duplicate environment variables
Fixes #638
2018-03-20 22:02:49 +08:00
Rudi Grinberg 2e636ef43e
Merge pull request #636 from ocaml/fix-path-sep-on-cygwin
Use ; as path separator for OCAMLPATH on Cygwin
2018-03-20 09:22:54 +08:00
Jérémie Dimino a8072f08bc
Rework the sub system select (#632)
Split the select_backends between two functions:
- one for backends that support extensions
- one for backends that support replacement

it might be possible to support both at once, but for now this is
enough and it's simpler.
2018-03-19 20:47:51 -04:00
Jeremie Dimino fae09828af Use ; as path separator for OCAMLPATH on Cygwin
Since this is what ocamlfind expects
2018-03-19 19:25:50 -04:00
Jérémie Dimino 3f22d9f82b
Do not pass -runtime-variant _pic on Windows (#635) 2018-03-19 19:13:02 -04:00
Jeremie Dimino 53ec04adfe fix 2018-03-18 16:32:20 -04:00
Jeremie Dimino bdb03925d1 Add Lib.Compile.compile_and_link_flags 2018-03-18 16:22:56 -04:00
Jeremie Dimino 945583ff43 Add Arg_spec.of_result{,_map} 2018-03-18 16:22:05 -04:00
Jeremie Dimino 09ff33951b Change the type of Build.of_result and add Build.of_result_map 2018-03-18 16:21:59 -04:00
Jeremie Dimino 997d541c50 Make Top_closure more polymorphic 2018-03-18 16:21:46 -04:00
Jeremie Dimino e638c04cb2 Add Jbuild.Lib_deps.of_pps 2018-03-18 16:20:32 -04:00
Jeremie Dimino d15974c4ea Add Option.some 2018-03-18 16:20:19 -04:00
Jeremie Dimino 2c59032181 A file might be part of several packages 2018-03-19 01:24:17 +08:00
Jeremie Dimino c685e8ac6d Remove useless load_dir 2018-03-19 01:24:04 +08:00
Jeremie Dimino b5fad14f16 Less Path.Set.t -> Path.t list conversions 2018-03-19 01:19:41 +08:00
Jeremie Dimino 30c59cc476 Use dynamic dependencies for the package deps 2018-03-19 01:19:31 +08:00
Jeremie Dimino 9043280160 Allow dynamic dependencies for aliases 2018-03-19 01:19:20 +08:00
Jeremie Dimino a55cde2969 fix 2018-03-19 01:19:09 +08:00
Jeremie Dimino 73873b31bc Recursive package deps 2018-03-19 01:18:55 +08:00
Jeremie Dimino 1b8fbfc149 Use an alias name that is less likely to clash with user aliases 2018-03-19 01:18:45 +08:00
Jeremie Dimino 1a4037f8d1 Define the package_install alias at once
This is slightly more efficient that calling `add_alias_deps` for each
file.
2018-03-19 01:17:57 +08:00
Jeremie Dimino ee5dd505fb comment 2018-03-19 01:17:47 +08:00
Rudi Grinberg b187d6e4ba Add the (package ..) dependency type
Add a (package <name>) dependency type which adds a dependency on all the
installable files of a package.
2018-03-19 01:05:55 +08:00
Rudi Grinberg 4a0f4c0ff9 Fix encoding of inline_tests
Encode optional fields as records where optional keys that are None will be
omitted in the resultant sexp. This will match reading the keys back with field_o
2018-03-18 22:48:42 +08:00
Rudi Grinberg 7a26c18e20 New odoc rules 2018-03-18 17:44:08 +08:00
Rudi Grinberg 86768475b2 Install rules for mlds 2018-03-18 17:00:28 +08:00
Rudi Grinberg 25d52d1e3a Add Lib.Map 2018-03-18 13:42:01 +08:00
Rudi Grinberg 0a57a02819 Add documentation stanza 2018-03-18 13:42:01 +08:00
Rudi Grinberg 8f967dbca5
Merge pull request #627 from rgrinberg/pkg-lib-map
Add a map from package names to libraries to super context
2018-03-18 13:25:48 +08:00
Jeremie Dimino 93d33592c6 Fix Atom.is_valid 2018-03-17 14:23:43 +00:00
Jeremie Dimino da7874ebdf Fix Atom.is_valid 2018-03-17 14:23:43 +00:00
Rudi Grinberg 5a5ba64503 Fix 4.02.3 compat in usexp
Do not use Char.equal
2018-03-17 14:23:43 +00:00
Rudi Grinberg f39b302a8d Fix Atom definition of Usexp
Fix the is_valid function to only validate atoms that don't contain spaces,
parens, comment characters.
2018-03-17 14:23:43 +00:00
Rudi Grinberg 9b5ac4060f Add a map from package names to libraries to super context
Will be used for odoc and installation
2018-03-16 13:49:33 +08:00
Jérémie Dimino 69c5a4a79d Implement Lib.package
Gets the opam package of a library for a public or installed library
2018-03-16 11:11:48 +08:00
Jérémie Dimino b59dab57da Include the package in the public status of libraries 2018-03-16 11:11:18 +08:00
Rudi Grinberg 07385a15ed Remove double extending the env with context's env 2018-03-16 01:45:52 +08:00
Rudi Grinberg 68cf393c5f Use Bin.path_sep 2018-03-16 01:45:39 +08:00
Rudi Grinberg 2634477def Change Action to include the context's exec env 2018-03-16 00:44:23 +08:00
Rudi Grinberg 3c7e6adc73
Merge pull request #619 from rgrinberg/install-run-fixes
Tweaks to Actions
2018-03-15 19:10:13 +08:00
Rudi Grinberg db55b4e880
Merge pull request #618 from rgrinberg/scope-encode
Move they '@' scope encoding to common module
2018-03-15 19:09:56 +08:00
Rudi Grinberg 9a1910cf6f Add context for alias actions 2018-03-15 18:25:21 +08:00
Rudi Grinberg bd457ea549 Use Env.t over string array in another place 2018-03-15 18:24:41 +08:00
Rudi Grinberg dea2ac77ca No optional args for context 2018-03-15 18:24:36 +08:00
Rudi Grinberg a62e92a0ee Move they '@' scope encoding to common module
This encoding will also be used by odoc so it's best to share it
2018-03-15 14:50:34 +08:00
Rudi Grinberg 25158fc702 Share Ordered_set_lang.Make(String)(String) 2018-03-15 14:25:04 +08:00
Rudi Grinberg 286f93a963 indentation 2018-03-15 14:24:55 +08:00
Jeremie Dimino 3b1bef8b9c ocamlX_flags --> ocamlX_cflags 2018-03-14 12:02:56 +00:00
Rudi Grinberg 521a36dcef
Merge pull request #603 from diml/universe
Allow to depend on the universe
2018-03-14 13:02:23 +07:00
Rudi Grinberg 28208a1c12
Merge pull request #612 from rgrinberg/rename-result-private-lib
Rename the result private library
2018-03-14 12:59:36 +07:00
Rudi Grinberg 48ca91e013 Move the results lib into Caml
The result name is taken by other libs hence it breaks `jbuilder utop`. Hence we
simply move it our stdlib overlay. The -open flag is used to avoid having to
modify vendored code.
2018-03-14 12:09:20 +08:00
Jeremie Dimino 6fc1e0659a Workaround non-precise mtime on OSX 2018-03-13 19:15:06 +00:00
Jeremie Dimino e2adf9d44a Allow to depend on the universe
Fix #255
2018-03-13 19:12:57 +00:00
Jérémie Dimino 8e4c9fce4c
Import the Sexp parser generator (#608) 2018-03-13 19:06:34 +00:00
Rudi Grinberg d6a6a817f7 Move Io to stdune
This allows configurator to drop the dependency on jbuilder itself
2018-03-13 20:27:07 +07:00
Rudi Grinberg 12511a68ea
Merge pull request #607 from rgrinberg/private-public-overlap-take2
Disallow public/private overlap
2018-03-13 03:39:55 +07:00
Jérémie Dimino ca5c383b3b
Fix locations reported by the parser (#609)
The start position of atoms wasn't saved by the parser.
2018-03-12 18:41:49 +00:00
Jeremie Dimino e57a706960 Use the use-site location for errors from pps 2018-03-12 18:07:05 +00:00
Jeremie Dimino 7e361d596e Let Report_error print the location for Private_deps_not_allowed 2018-03-12 17:58:54 +00:00
Jeremie Dimino 178e26cfd9 Use a more informative name 2018-03-12 17:56:24 +00:00
Jeremie Dimino 69209d7243 Remove extra parentheses 2018-03-12 17:53:00 +00:00
Rudi Grinberg 753badd481 Fix private deps check for ppx runtime dependencies 2018-03-13 00:11:12 +07:00
Rudi Grinberg 0823f9d803 allow_private_deps flag
Flag to guard public dependencies from acquiring private ones
2018-03-12 23:38:48 +07:00
Rudi Grinberg 2f7db648ed
Merge pull request #601 from rgrinberg/env-context
Move env var handling outside of Context.t
2018-03-12 19:13:33 +07:00
Jeremie Dimino f74817e00d Fill the loc field of rules 2018-03-12 12:02:55 +00:00
Jeremie Dimino eef3633d9a Tweak error messages 2018-03-12 18:45:47 +07:00
Rudi Grinberg 4a68db622d Change representation to map from assoc list 2018-03-12 18:45:47 +07:00
Rudi Grinberg 161be3af1c Stage Var.compare 2018-03-12 18:45:47 +07:00
Rudi Grinberg 1f99d0fb70 Simplify Env.get
we already have Var.equal now
2018-03-12 18:45:47 +07:00
Rudi Grinberg f4955cdc22 Remove env_extra from Context.t
Rely on diffing
2018-03-12 18:45:47 +07:00
Rudi Grinberg 79d47ab68e Simplify Env.t
Use assoc list
2018-03-12 18:45:47 +07:00
Rudi Grinberg 26d6b03c66 Make unix representation more efficient
By not allocation a closure on every update
2018-03-12 18:45:47 +07:00
Rudi Grinberg e604c69510 Remove env_extra in Action
It's simply to just use Env.t everywhere. Also, there's no need to have the env
in the execution context since it's not used for anything. Only the env that is
passed directly is used.
2018-03-12 18:45:47 +07:00
Rudi Grinberg f1baaa23a8 Add Env.add
Just add 1 binding to Env
2018-03-12 18:45:47 +07:00
Rudi Grinberg 3193e4902d Make Process.run take Env.t directly 2018-03-12 18:45:47 +07:00
Rudi Grinberg 4b191b2b03 s/Env.get_var/Env.get/ 2018-03-12 18:45:47 +07:00
Rudi Grinberg 206cc69fd9 Simplify Context.create
There's no need for a base_env parameter as it's always Env.initial
2018-03-12 18:45:47 +07:00
Rudi Grinberg 35d4153641 Make Env.t abstract 2018-03-12 18:43:02 +07:00
Rudi Grinberg 8458bf3b15 Move env related functions to Env module 2018-03-12 18:43:02 +07:00
François Bobot feba0827b8 Allow to link executables as static or shared objects (#23)
- Setup the rules to use the `-output-complete-obj` option of OCaml
- Introduce a `best` mode in addition to `byte` and `native`
- Extend the `modes` field of executables to mean "linking modes", and add linking modes for static and shared objects
2018-03-12 11:40:53 +00:00
Jeremie Dimino 5286b42f58 Fix #597 2018-03-10 08:25:45 +07:00