Commit Graph

214 Commits

Author SHA1 Message Date
Jeremie Dimino 81bcd0f3e1 Add a "default" alias defined as follow:
- if "default" is specified by the user explicitely, use this
  definition
- otherwise assume the following definition:

  (alias
   (name default)
   (deps (alias_rec install)))

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 21:50:44 +01:00
Jeremie Dimino 9a9445325d Update changelog
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino 2982567639 Make the default build profile be dev
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-28 11:23:10 +01:00
Jérémie Dimino 0f68e56f64
Remove most useless parentheses from the syntax (#915) 2018-06-27 16:38:05 +01:00
Jeremie Dimino f46a6aae53 Make (diff ...) work on Windows
- make (diff ...) trailing cr on Win32
- add a (cmp ...) action for comparing binary files
- add a test and run it in AppVeyor

Fix #844

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-25 08:14:27 +01:00
Jérémie Dimino 0eb302252e
Improve the syntax of ppx rewriters and flags (#910)
- old syntax: (pps (ppx1 -arg1 ppx2 (-foo x)))
- new syntax: (pps ppx1 -arg ppx2 -- -foo x)

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-25 07:56:35 +01:00
Jeremie Dimino fc968efc4d Update changelog
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-20 16:17:22 +01:00
Jeremie Dimino 58997d9df7 Present menhir as an extension
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-20 16:06:38 +01:00
Jérémie Dimino 94c921f9c4
Rename files_recursively_in to source_tree (#899)
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-20 10:45:54 +01:00
Etienne Millon 96b01c569c Add link_deps field
In some cases, the linking step requires some dependencies. For example,
passing a version script to the linker. The new `(link_deps)` field
uses the dependency DSL already used in other places.

Closes #852

Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-06-13 14:38:47 +02:00
Rudi Grinberg a97d2cfe05 Add a couple of entries to the change log
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 21:28:15 +07:00
Rudi Grinberg 4b0559a926 Update CHANGES
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:58 +07:00
Rudi Grinberg a7ada1ddb9 Update CHANGES for the quoting issue
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 15:35:25 +07:00
Jérémie Dimino bb7827a7b2
Make the output of Dune deterministic in tests (#855)
When the root is not the cwd, print a relative path for the "Entering
..." line rather than an absolute one.

Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-06 16:25:04 +01:00
Jeremie Dimino b5dfb826ef Restore old ppx behavior for directories with jbuild files
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 19:19:10 +01:00
Jeremie Dimino b35fbbd7b2 Abstract the ppx driver system
- remove hard-coded knowledge of ocaml-migrate-parsetree and ppx_driver
- get the exact driver parameters directly from the driver itself

Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 19:19:10 +01:00
Jeremie Dimino 0244797029 Update changelog
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-04 13:57:27 +01:00
Rudi Grinberg 802363e4ec Add CHANGES entry
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-02 18:24:48 +07:00
Jeremie Dimino 9d3117d63e Fix bug exposed by previous commit 2018-05-17 15:48:19 +01:00
Jérémie Dimino bc19e14b35
Add ignored_subdirs stanza (#767) 2018-05-12 15:38:22 +02:00
Jeremie Dimino bffd5407ce Fix #734 2018-05-10 11:31:39 +01:00
Jeremie Dimino ef7a5519aa Fix #761 2018-05-10 11:27:56 +01:00
Jeremie Dimino 7c1e1923a0 Fix #759 2018-05-09 16:32:35 +01:00
Jérémie Dimino e6650a322f
Better error message for #745 (#748) 2018-05-08 16:28:50 +01:00
Jérémie Dimino 4d8ca489be
Add support for environment & build profiles (#419) 2018-05-04 16:49:25 +01:00
Jérémie Dimino b54c438fda
Scan the file-system lazily (#732)
Fix #228
Fix #718
2018-05-01 16:55:31 +01:00
Rudi Grinberg 7b17fa013f Fix #717
Extensions should be removed from the map of basenames to mld paths
2018-04-29 00:52:29 +07:00
Jérémie Dimino 53202d0a09
Make -j default to the number of CPUs (#726) 2018-04-26 16:10:14 +01:00
Jérémie Dimino 2af69cb303
Make sure all_lib_deps_by_context doesn't report invalid contexts (#723) 2018-04-25 15:04:57 +01:00
Rudi Grinberg e467cafed0 Tweak CHANGELOG
Use github handles - those are useful for automatic pings when making making
releases.

Fix some typos
2018-04-18 09:50:29 +07:00
Jeremie Dimino 5228b431e1 Update changelog 2018-04-17 15:51:29 +01:00
Rudi Grinberg 5d9a99d28b Update CHANGELOG 2018-04-17 18:52:42 +07:00
Jeremie Dimino 294d693749 Do not load the user configuration file when INSIDE_DUNE is set 2018-04-12 12:43:14 +01:00
Rudi Grinberg 01326fb312 Fix CHANGELOG entry 2018-04-10 21:49:29 +07:00
Rudi Grinberg bfffb60ed2 Update CHANGELOG for beta 20 2018-04-10 21:43:44 +07:00
Jeremie Dimino 02b04e1eff Update changelog 2018-04-09 06:31:52 +08: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
Rudi Grinberg bc2286215b undo beta20-rc1 releaes 2018-03-24 22:43:50 +08:00
Rudi Grinberg 1c4efab060 Update changelog for rc1 2018-03-24 01:01:08 +08:00
Rudi Grinberg 3b694b0abe Update CHANGELOG for odoc include dir fix 2018-03-24 01:00:57 +08:00
Rudi Grinberg a40a82b1e6 Update CHANGELOG 2018-03-24 00:19:50 +08:00
Rudi Grinberg ab37e8ec22 Update CHANEGLOG regarding missing asm fix 2018-03-22 22:15:05 +08:00
Rudi Grinberg 5d3f015f9b Update CHANGELOG 2018-03-22 22:12:57 +08:00
Jeremie Dimino a6959d3df3 Update changelog 2018-03-22 10:05:46 -04:00
Rudi Grinberg 54b17cc2ee Use the original changelog text but update the credits + PR 2018-03-21 00:35:37 +08:00
Rudi Grinberg a3793d986e Update CHANGES for 1.0+beta19.1 2018-03-21 00:34:19 +08:00
Jérémie Dimino 3f22d9f82b
Do not pass -runtime-variant _pic on Windows (#635) 2018-03-19 19:13:02 -04:00
Rudi Grinberg 9c349d4164 Update CHANGELOG 2018-03-19 02:06:35 +08:00
Rudi Grinberg 019740a115 Update CHANGELOG for next 2018-03-18 20:07:09 +08:00
Rudi Grinberg be0cbf8e8d Update CHANGELOG for documentation feature 2018-03-18 17:47:23 +08:00
Rudi Grinberg 08df147d60 Update CHANGELOG
add beta18.1 and update beta 19
2018-03-14 21:26:05 +08:00
Jeremie Dimino 8559d2f7ff Update changelog 2018-03-14 12:37:26 +00:00
Jeremie Dimino e2adf9d44a Allow to depend on the universe
Fix #255
2018-03-13 19:12:57 +00:00
Rudi Grinberg ad14b4b180 CHANGELOG for beta 19 2018-03-13 03:43:43 +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
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
Jeremie Dimino 8b5e2c4503 Update changelog 2018-03-09 19:55:51 +00:00
David Allsopp b604871aab Limit number of simultaneously opened fds (#578)
Non-optimal solution: only handles the common case.
2018-03-08 18:28:14 +00:00
Jeremie Dimino 7494834b50 Update changelog 2018-03-07 09:41:31 +00:00
Jeremie Dimino 256c3d9969 Update changelog 2018-03-07 09:40:08 +00:00
Jérémie Dimino dfdb6c09f4
Allow to set the library path at configure time (#575)
This allow to drop the dependency on ocamlfind
2018-03-06 14:56:24 +00:00
Jeremie Dimino 2acbc72f76 Update changelog 2018-03-06 12:59:01 +00:00
Jérémie Dimino cd6812f269
Accept and ignore ppx.driver fields (#588) 2018-03-05 17:59:56 +00:00
Jérémie Dimino 4857ed444a
Reduce interleaving in the scheduler (#586) 2018-03-05 17:52:21 +00:00
Jeremie Dimino d1feb062b6 Add a workaround for broken META file for builtin packages
Fixes #563
2018-03-03 11:33:40 +00:00
Jeremie Dimino 1bc7462ca7 Update changelog 2018-03-01 23:41:46 +00:00
Jeremie Dimino 72af61f2a5 Fix PR number in changelog 2018-03-01 07:05:02 +00:00
Jérémie Dimino 4cf7dc558b
Fix generation of the alias module with 4.02 (#549) 2018-02-25 12:58:40 +00:00
Rudi Grinberg 8a81c79531 Update CHANGELOG for beta 18 2018-02-25 02:56:56 +07:00
Jeremie Dimino 41b5017eb2 Fix #534 2018-02-21 13:35:47 +00:00
Rudi Grinberg 6bde0c21b3 beta18 changelog 2018-02-21 11:04:46 +07:00
Jérémie Dimino 9e4cc84370
Refactor library management (#516)
Lib module
----------

We have a new module Lib that replaces Lib, parts of Lib_db and parts
of Findlib. It is used to manage all libraries (internal and
extrernal). Lib.t represent a completely resolved library, i.e. where
all the dependencies have been resolved. Lib.Compile is used to
provide what is necessary to build the library itself. Lib.Meta
provides what is necessary to generate the META file for the library.

We also have library databases represented as Lib.DB.t. A library
database is simply a mapping from names to Lib.t values and and
created from a resolve function that looks up a name and return a
Lib.Info.t. A Lib.Info.t is the same as a Lib.t except that
dependencies are not resolved.

A library database can have a parent database that is used to lookup
names that are not found in the current database. In practice we have
the following hierarchy:

1. For every scope, we have a library database that holds all the
   libraries of this scope. In this DB, a library can be referred by
   either it's name or public name

2. the parent of each of these databases is a database that holds all
   the public libraries of the workspace. In this DB libraries must be
   referred by their public name

3. the parent of this DB is for installed libraries

(1) databases are accessible via Scope.libs
    (Super_context.find_scope_by_{name,dir} sctx xxx)
(2) is accessible via Super_context.public_libs sctx
(3) is accessible via Super_context.installed_libs sctx

The dependencies of a library are always resolved inside the DB it is
part of. When we compute a transitive closure, we check that we don't
have two libraries from two different DB with the same name. So for
instance linting Base should now supported.

Jbuild.Scope_info
-----------------

Jbuild.Scope was renamed Jbuild.Scope_info

Scope module
------------

This replaces Lib_db. A Scope.t is now just a pair of a
Jbuild.Scope_info.t and a Lib.DB.t. Scope.DB.t is an object used to
lookup scopes by either name or directory.

We no longer have an external scope or special anonymous
scope. Instead one should use Super_context.installed_libs or
Super_context.public_libs depending on the context.
2018-02-20 11:46:10 +00:00
Rudi Grinberg a6e6136f3a
Merge pull request #521 from rgrinberg/build-only-public-docs
Change @doc to only build public docs
2018-02-19 19:00:27 +07:00
Rudi Grinberg c067a638a6 Update CHANGES 2018-02-16 20:48:41 +07:00
Christophe Troestler 91b38b6376 Update Changelog 2018-02-15 00:43:08 +01:00
Rudi Grinberg 02abc3ca6e Update CHANGELOG for beta 18 2018-02-14 22:13:43 +07:00
Jeremie Dimino 4400432dbd Update changelog 2018-02-13 17:22:10 +00:00
Jérémie Dimino 2fb65c05ba
Fix #330 (#510) 2018-02-13 12:49:50 +00:00
Jérémie Dimino b3838284c6
Better support for mli/rei only modules (#489) 2018-02-08 10:12:46 +00:00
Jeremie Dimino f515878028 Update Changelog 2018-02-07 12:34:05 +00:00
Jeremie Dimino f4f8f70bf9 update changelog 2018-02-07 12:12:15 +00:00
Jeremie Dimino 31855cdeda Changelog 2018-02-07 11:41:33 +00:00
Jérémie Dimino d4c9eb6ba0
Do not pass -I <stdlib-dir> (#488) 2018-02-06 11:49:44 +00:00
Jérémie Dimino 80c0bfc879
Split calls to ocamldep (#486)
Instead of doing a single call to ocamldep, do one per file. This is
needed to support "menhir --infer".

This should also make compilation go further when there are files with
syntax errors.
2018-02-06 11:48:04 +00:00
Rudi Grinberg e61142e885
Merge pull request #460 from ocaml/fix-promote-tests-on-osx
Fix bad interaction between promotion and incremental builds on OSX
2018-02-01 20:15:18 +08:00
Rudi Grinberg 6dc08a19b9 Update date for beta17 2018-02-01 18:59:00 +08:00
Jeremie Dimino b9c4dd2339 Remove files from the digest cache when promoting them.
This is to avoid problems with incremental compilation on OSX.

Fix #456
2018-02-01 08:23:25 +00:00
Rudi Grinberg 51b9164ff1 Update date for beta 17 2018-01-31 15:37:55 +08:00
Jérémie Dimino 963bb6c044
Always use a bytecode boot.exe (#463)
Fix #446
2018-01-30 14:51:51 +00:00
Jérémie Dimino 437211f74f
Expose the promote mode (#437) 2018-01-25 19:07:46 +00:00
Rudi Grinberg 2c845c11eb Date beta 17 release 2018-01-23 17:46:14 +08:00
David Allsopp 6873478307 Display a warning for bad jbuild-ignore lines (#389)
jbuild-ignore should only refer to directories in the current directory
(unlike .gitignore): referring to subdirectories doesn't work.

Signed-off-by: David Allsopp <david.allsopp@metastack.com>
2018-01-23 09:14:22 +00:00
David Allsopp 61b3e5f189 Use /Fo instead of -o when invoking CL
The -o option in the Microsoft C Compiler is deprecated (and has been for
a very long time). The warning is tedious, so use /Fo instead. The only
problem with this is that "-o foo.obj" must become "/Fofoo.obj" with no
space, which requires a little support in Arg_spec.

Signed-off-by: David Allsopp <david.allsopp@metastack.com>
2018-01-22 12:17:28 +00:00
David Allsopp d2706b448b Remove readonly attribute on Windows before unlink
The legacy DOS readonly attribute is a tedious difference on Windows,
because a user may have permission to delete a file, but unlink fails
because the attribute is set.

Signed-off-by: David Allsopp <david.allsopp@metastack.com>
2018-01-22 11:14:18 +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
Jeremie Dimino ec1a88db98 Update changelog 2018-01-18 11:36:36 +00:00
Jeremie Dimino 878e0ce31f Update changelog 2018-01-16 13:43:02 +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