Commit Graph

546 Commits

Author SHA1 Message Date
Jeremie Dimino b401284b84 Restore .merlin-exists trick
This is needed so that command don't depend on the contents of the .merlin
2018-01-19 22:54:05 +00:00
Jeremie Dimino 8b11b494d2 Fix Path.pp 2018-01-19 22:44:30 +00:00
Jeremie Dimino 92c7927432 Fix Path.explode 2018-01-19 22:43:40 +00:00
Jérémie Dimino 5651eb80b5
Better behavior when aliases have targets (#426)
Ignore the targets and report a warning.
2018-01-19 22:17:11 +00:00
Jeremie Dimino 92f9ce4edb Fix the order of files in (diff file.ml file.ml.ppx-corrected)
The generated correction must come after for promotion to work.
2018-01-19 15:32:29 +00:00
Jérémie Dimino 9dd5ab74e4
[WIP] Load rules lazily (#370)
* Change jbuilder to load rules lazily

Rules are now loaded on a per directory basis as needed. This speed up
the start up time on large workspaces.

Does various refactoring as well.

* Simplify the handling of META files

We no longer generate a META.foo.from-jbuilder file. Nobody is using
this feature and it's making the new code more complicated.
2018-01-19 08:50:06 +00:00
Jérémie Dimino b06aad431e
Replace promote actions by diff actions + promote command (#421)
* Remove (promote ...) and (promote-if ...)
* Remove `--promote ...`
* Add (diff ...) and (diff? ...)
* Add `jbuilder promote` and `--auto-promote`
* Fix #423
2018-01-18 11:32:20 +00:00
hhugo 9347d4a767 tailrec split_lines (#416) 2018-01-17 13:34:53 +00:00
Jérémie Dimino 314da72d3c
Better signature for Artifacts.file_of_lib (#418) 2018-01-16 13:40:04 +00:00
Jérémie Dimino 49edf8ed65
Accept correction files produced by ppx_driver (#415)
* Accept correction files produced by ppx_driver so that [@@deriving_inline] works
* Change promote-if so that it doesn't promote the file when the source file doesn't exist in the source tree
2018-01-16 12:28:02 +00:00
Jeremie Dimino d4dec9b4f5 Change the default of --promote from check to copy
As said in the PR. I forgot to push the commit.
2018-01-15 14:55:17 +00:00
Jeremie Dimino ce901a4731 Fix the build 2018-01-15 13:50:08 +00:00
Jérémie Dimino af5d7f5e6f
Report better errors for globs pointing to non-existing directories (#413)
Fix #412
2018-01-15 13:28:32 +00:00
Jérémie Dimino eab1ff6c7b
Add promote actions and include stanzas (#402)
Add a promote action that allows to copy over generated files as
source files and an include stanza allowing to include a file in a
jbuild file.
2018-01-15 13:24:25 +00:00
Christophe Troestler f8617b5721 Let "concat" or "split" be a quality of the variable (#336)
* Let variables say whether they are Concat or Split

To concatenate the contents of a split variable, put it in a string:
"${var} ".

Fixes #300

See also https://github.com/janestreet/jbuilder/issues/408

* Issue a deprecation warning for ${!...}

* Treat ${CC}, ${<}, ${^} and ${read-lines:...} as split vars

* Change ${!^} into ${^} for this project jbuild rules
2018-01-15 09:32:40 +00:00
Jérémie Dimino d3410e0659 Refactor alias handling
* Improve documentation of alias module
* Add add_alias helper function to help create rules in alias
2018-01-13 19:51:24 +08:00
Jérémie Dimino a1026f46d1 Add action helpers
Add constructor functions for Actions
2018-01-13 19:51:18 +08:00
Jérémie Dimino e28344a24b
Do not use the transitive closure in generated META files (#405) 2018-01-12 16:41:23 +00:00
Rudi Grinberg 92d4cbb7be
Merge pull request #404 from janestreet/make-lint-standard
Make lint alias standard
2018-01-12 15:46:26 +08:00
Rudi Grinberg 6bd46a76f8 Make lint alias standard 2018-01-11 16:20:19 +08:00
Rudi Grinberg 3776acd8d2 Fix c_compiler parsing for OCaml >= 4.06.0 (#393) 2018-01-10 16:54:25 +00:00
Rudi Grinberg ca1c8dd897 Add -null option to linters
Since the omp driver doesn't support this option yet, we must add it
conditionally. This is a temporary workaround.
2018-01-10 22:45:50 +08:00
Rudi Grinberg 1fc0ef0ab1 Add lint rules 2018-01-10 22:45:50 +08:00
Rudi Grinberg 6d2152e7b1 Add Alias.add_{stamp,action}_dep
These functions will be useful to construct alias elsewhere
2018-01-10 22:45:50 +08:00
Rudi Grinberg bfbfc0bf30 Change lint option to be the same as preprocessing 2018-01-10 22:45:50 +08:00
Rudi Grinberg 66fc8db600 add lint alias 2018-01-10 22:45:49 +08:00
Rudi Grinberg 897c1e2e5e Add helper functions
* Path.Set.sexp_of_t
* Module.iter
* List.last
2018-01-10 22:45:31 +08:00
Jeremie Dimino 469079f9c6 Connect usexp errors to the error reporter
Fix #384
2018-01-09 09:55:01 +00:00
Rudi Grinberg 1ff8a7989c Cross compilation support
In a host/target setup, all binaries that are built (including preprocessors)
are ran using the host *for* building targets. Final target artifacts are
compiled using the target toolchain
2018-01-01 22:34:41 +08:00
Jeremie Dimino 6e64156913 Add target support
* Create targets from findlib toolchains by reading findlib configs
* Define targets inside workspace files
* Set cross compilation targets with -x argument
2018-01-01 22:34:41 +08:00
Jeremie Dimino afb602d7ef Add add_install_prefix function
To control installation prefix
2018-01-01 21:48:25 +08:00
Jeremie Dimino 86dc606fef Add Utils.install_file
Determines the .install depending on the toolchain for x compilation
2018-01-01 21:48:25 +08:00
Jeremie Dimino 5d451e7034 Add cstr_record 2018-01-01 21:48:25 +08:00
Jeremie Dimino e06c060121 Add module to parse findlib config
Necessary to read toolchains
2018-01-01 21:48:25 +08:00
Rudi Grinberg 1a8c328b2d Make is_directory work when dir doesn't exist 2018-01-01 21:48:25 +08:00
Rudi Grinberg 829b85ec44 Add Path.drop_prefix 2018-01-01 21:48:25 +08:00
François Bobot 9ec6b22066
Merge pull request #379 from janestreet/usexp
Replace the S-expression Parser by Usexp
2017-12-22 14:56:22 +01:00
David Allsopp 9d3c0b649c Fix copy# for Microsoft C compiler
Microsoft CL doesn't support #n and requires the more strictly correct
directive #line

Signed-off-by: David Allsopp <david.allsopp@metastack.com>
2017-12-22 08:16:09 +01:00
Jeremie Dimino 3e525d8eec Vendored usexp and switch to it 2017-12-21 13:13:47 +00:00
Rudi Grinberg bbb6108924 Fix Path.descendent
It was broken for local paths with equal length
2017-12-20 09:06:12 +00:00
Rudi Grinberg 2f8d95cdeb
Merge pull request #373 from rgrinberg/reason-preprocess-fix
Reason preprocess fix
2017-12-18 23:25:10 +08:00
Jeremie Dimino 18d8cb847d Fix the test added in the previous commit 2017-12-18 13:30:49 +00:00
Rudi Grinberg 4570020ce7 Fix reason preprocessing
and previously failed test
2017-12-18 20:52:52 +08:00
Anton Bachin eb05f4f643 Place module list on its own line
The markup emitted by Jbuilder treated module lists as inline elements
that can appear inside a line. However, neither ocamldoc nor odoc render
module lists as inline elements. They are instead block elements, that
are laid out vertically, like lists or paragraphs. Correspondingly, odoc
now rejects inline module list markup.

A side effect of the (rejected) misconception is that there was a stray
period appearing on its own line in every module list generated by
Jbuilder. This is now fixed.
2017-12-16 14:27:36 -06:00
Anton Bachin 0aa6faa145 odoc: don't generate raw HTML and level 1 headings
This page generation code really should be moved to odoc, however.
2017-12-16 14:07:51 -06:00
Xavier Clerc 2be876cb49 Availability of "num" depends on the OCaml version (#358) 2017-12-11 13:05:20 +00:00
Rudi Grinberg a0c2ed942b
Merge pull request #343 from rgrinberg/fix-ppx-recompile
Fix incremental compilation with ppx's
2017-12-02 21:27:04 +08:00
François Bobot 13fed1f1ce
Merge pull request #339 from rgrinberg/fix-jbuilder-exec-utop
Fix jbuilder exec from sub dirs & utop
2017-12-01 13:41:21 +01:00
Rudi Grinberg 785beeafac
Add option to force running tests (#320)
Option to force running tests

The mechanism allows for forcing any alias, but only forcing tests is exposed to the user. Aliases are forced by deleting all the alias files that belong to a particular alias. The option for forcing tests is called --force.
2017-11-28 19:03:22 +08:00
Rudi Grinberg 6f498db212 Fix incremental compilation with ppx's
Same fix as 6a3c51c358 but also for ppx's
2017-11-27 21:14:24 +08:00