Rudi Grinberg
503ebf8a43
Merge branch 'master' into rename-jbuilder-dune
2018-07-09 16:10:32 +07:00
Rudi Grinberg
baf492db11
Allow %{ocaml-config:..} wherever variables are allowed
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-09 09:05:04 +01:00
Rudi Grinberg
0ca157f840
Fix expansion of %{ocaml-config:..}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-09 09:05:04 +01:00
Rudi Grinberg
c616171ed8
Rename more legacy occurrences
...
A few left over cases where ${..} was used instead of %{..}. Also use dune
rather than jbuilder in the error message.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-09 11:40:18 +07:00
Anil Madhavapeddy
23576a4832
configurator: add write_lines function
...
The `write_flags` only works with `(:include` directives, and it
is also useful to be able to write a list of lines so that the
discovered information can be used in variable expansion actions.
For example, ocaml-yaml discovers CFLAGS and then directly has
`(run ${CC} ${read-lines:cflags})` actions that use this new
write_lines function to list cflags instead of s-expressions.
They must be line-by-line or else variable expansion doesnt work
since CFLAGS contain spaces.
Signed-off-by: Anil Madhavapeddy <anil@recoil.org>
2018-07-09 00:00:32 +07:00
Jérémie Dimino
e7bc884d26
Improve compatibility of Configurator.V1.write_flags ( #967 )
...
Make sure the produced file will round-trip with both the Dune and
Jbuilder lexical conventions.
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-08 15:26:18 +01:00
Rudi Grinberg
a2153539e1
Fix error messages when percent macros are used incorrectly
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 17:27:35 +07:00
Rudi Grinberg
ccabeb7181
Hack to fix printing of errors
...
This is a temporary hack until we have a real sexp type
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 17:25:26 +07:00
Rudi Grinberg
bfd246c667
Rename Kind to Var in Pform
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
1fb3af8ae8
Rename var to pform
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
1a9895aec4
Consistent naming for vars and forms
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
7cb068d1eb
Improve error messages for all forms
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
813b8d9dbc
Use correct syntax for error
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
647f68dfe9
Move Super_context.Var into own module
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
1b918ecc74
Improve error message for renamed forms
...
Don't include the payload in these messages
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
78140ca235
Remove the targets helper function
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
c244fa9d08
Share error messages for renamed/since/deleted etc.
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
f95c9e01d5
Simplify some checks with an is_form function
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
44dc0394b8
s/Nothing/No_info/
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
5f783be1b2
Use maps instead of hash tables for variable lookup
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
7b05fc34b6
Add String_with_vars.Var.name
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
9750f84b76
Remove String_with_var.Loc.fail
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
843792ad5d
Switch from maps to tables for variables
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
43b15bf944
Add Var module to Super_context
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
2f86a4d857
Rename the expand family of functions
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
73cc3b1e7c
Simplify Var.t definition
...
Remove all gatd's and the extra record type
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
972406a0dc
Fix static dependencies
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
2a71439c3e
Toyish gadtization to remove a few assert falses
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
6159a2909c
Remove one off function
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
3a7b62a57d
Use the variable for dynamic expansions as well
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
3f7ad78512
Replace more code with the variable system
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
9811031899
Implement a more elaborate variable expansion mechanism
...
That embeds changes across versions
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
8ef6af2675
Add some helpers to String_with_loc
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
54ff98b36d
Rename ROOT to root
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
a0a92d9adb
Introduce a Dir primitive to Value
...
This is like Path but users will know not to infer dependencies from it
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
1a37977f62
Fix error message
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Rudi Grinberg
90cde684e6
Remove uppercase vars in dune files
...
While maintaing them in jbuild files (with proper error messages)
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-08 16:33:18 +07:00
Jérémie Dimino
3348b6a913
Adapt the behavior of dune subst for dune projects ( #960 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-08 09:51:16 +01:00
Rudi Grinberg
b8f11b1f04
Make variable rename errors more consistent
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:48:30 +07:00
Rudi Grinberg
c4545fce18
Get rid of indexed lookups for deps
...
Have %{first-dep} to replace %{<}
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:10 +07:00
Rudi Grinberg
ca342fd840
Fix inverted conditionals for version check
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg
204b21f4fb
Rename %{<} to %{deps[0]} and implement %{deps[i]}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg
97fba5537d
Write lexer to parse %{deps[i]}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg
0195b4bd03
Add some helpers to impldement %{deps[i]}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:46:09 +07:00
Rudi Grinberg
13c12e9def
Rename %{^} to %{deps}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:45:43 +07:00
Rudi Grinberg
a317fb0606
Rename %{@} to %{targets}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:45:43 +07:00
Rudi Grinberg
c290ad288f
Rename scope_root to project_root
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 18:45:43 +07:00
Rudi Grinberg
7707872e54
Test Stanza Proposal ( #822 )
...
Add tests and test stanza
These stanzas are used to easily define tests. If a test has a corresponding .expect file, it will be immediately considered as an expect test.
2018-07-06 18:43:31 +07:00
Rudi Grinberg
a8bd8ffa44
Rename JBUILDER_GEN to DUNE_GEN
...
Technically, we still support JBUILDER_GEN
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-06 15:10:13 +07:00
Etienne Millon
35ff6466de
Remove path-no-dep syntax
...
See #944
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-07-04 10:39:57 +02:00
Etienne Millon
628914fe28
Rename path to dep in dune files
...
See #842
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-07-03 15:59:52 +02:00
Rudi Grinberg
63eb0f2312
Merge branch 'master' into subsystem-versioned
2018-07-03 18:59:02 +07:00
Jérémie Dimino
e6a5ef9508
Add the lib_root and libexec_root install sections ( #947 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-03 10:49:18 +01:00
Rudi Grinberg
7a91a2b23b
Merge branch 'master' into subsystem-versioned
2018-07-03 16:49:05 +07:00
Rudi Grinberg
e09695e116
Relax versions for subsystems
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 16:36:11 +07:00
Rudi Grinberg
8e09749f12
Add missing words to syntax error message
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 16:12:01 +07:00
Rudi Grinberg
aee019577b
Change fallback check to use ?check param
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 16:12:01 +07:00
Rudi Grinberg
dee6c9aa96
Disable fallback in dune files
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 16:12:01 +07:00
Jérémie Dimino
e56fba9a57
Do not use opam-installer to copy files ( #941 )
...
Instead of calling opam-installer, manually parse .install files and copy the files.
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-03 10:10:09 +01:00
Jeremie Dimino
6589464f21
Rewrite lexing of installed dune files
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-03 09:22:57 +01:00
Rudi Grinberg
04ee6b0b2d
Set M.syntax when reading subsystems generated by dune
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
044c78281d
Use parsing context when parsing name, version, raw triple of sub systems
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
0051aeca29
Do not read .dune files twice
...
Reuse the same lexer by pushing back some tokens manually
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
4af1f189f0
Using Syntax.Verison.t to decide how to generate sub system files
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
22cf958b0c
Add dune_version field for libraries
...
This field is necessary to know how to generate .dune files for a particular
library.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
9005ca8998
Simplify error handling
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
01163776ad
s/Dune/lang/
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
f6fe5d20bb
Generate dune file version correctly
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
9c0daa24de
Don't hard code parsing_context for sub systems
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
ba9335badf
Simplify dump_config with Option.map
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
7b12e12571
Share loc variable
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
bedad1f689
Set version when parsing dune files
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
8390af90e4
Simplify versioning matching
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
a4bc260241
Loc.of_lexbuf
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
c906801c69
Parse dune files in a versioned way.
...
We read the first 3 tokens of a dune file and use it recognize if the file was
generated using jbuilder or dune
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
179d23ee38
Expose the type of tokens and lexers
...
This will be necessary for some manual parsing
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Rudi Grinberg
67edb7f89e
Move make_loc to Loc module and rename it to of_lexbuf
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-03 01:01:06 +07:00
Jérémie Dimino
438fef915f
Forbid #require in dune files in OCaml syntax ( #938 )
...
And add run_and_read_lines to replace old use cases of Unix.open_process_in
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-02 08:17:53 +01:00
Rudi Grinberg
f163f6197a
Merge branch 'master' into rename-build-profile
2018-07-02 13:45:00 +07:00
Rudi Grinberg
d19e55bd4d
Rename %{build_profile} to %{profile}
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-02 12:52:48 +07:00
Jeremie Dimino
fc9f3357ab
Allow some part of a Build.t to be lazy
...
This is useful for (alias_rec ...) since at definition site we recurse
through all sub-directories. This is especially relevant now that we
have the default alias which defaults to (alias_rec install).
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 21:50:44 +01:00
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
0a970aba35
Improve error message for undefined aliases
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 21:50:44 +01:00
Jeremie Dimino
30db63ef71
Support @@alias to build an alias non-recursively
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 21:50:44 +01:00
Jeremie Dimino
79f3506922
Add String_with_vars.text_only
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 21:36:26 +01:00
Jeremie Dimino
b4dd6565b2
Add Ordered_set_lang.Unexpanded.fold_strings
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 21:36:26 +01:00
Rudi Grinberg
aa981b3206
Fix error message when workspace file doesn't exist
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-01 01:46:32 +07:00
Rudi Grinberg
989a1c0058
don't use wildcard match where not necessary
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-01 01:46:32 +07:00
Rudi Grinberg
2b307bfe99
Use Option.some_if when checking for workspace file
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-01 01:46:32 +07:00
Rudi Grinberg
db4aed42d6
Add %{build_profile} variable
...
Added for testing but could come in handy elsewhere
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
80c2d61416
Factorize construction of default workspace configuration
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
9ffa579dbf
Restore rule about empty dune-workspace file
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
757400a6a6
Fix error message about unsupported versions
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
3d65c4e378
Version the user configuration file
...
- dune requires the (lang ...) line
- jbuilder accepts it but fallback to the jbuild syntax if it's not
present
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
cdcc520430
Disable old syntax for opam contexts in dune-workspace files
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
d5ae6dede0
Make dune require a (lang ...) line in dune-workspace files
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
7c6ecc821f
Reimplement workspace.ml with the new parsing API
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
19532a8c3d
Generalizes handling of files starting with (lang LANG VER)
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:46:32 +07:00
Jérémie Dimino
6823fb0d43
Restore eof_reached
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-01 01:46:32 +07:00
Jeremie Dimino
d6c35e01df
Split xxx-workspace file between jbuilder and dune
...
- jbuilder only looks for jbuild-workspace files
- dune only looks for dune-workspace files
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-01 01:45:02 +07:00
Jérémie Dimino
e706421893
Add function to parse version header from sexp files
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-01 01:34:33 +07:00
Nathan Rebours
23717d1fd6
Drop findlib:x syntax in dune and display an error ( #887 )
...
Signed-off-by: Nathan Rebours <nathan@cryptosense.com>
2018-06-29 21:35:41 +01:00
Jérémie Dimino
7e79e2870d
Make the set language more future proof ( #930 )
...
- forbid list starting by an atom not starting with - or :
- allow to avoid the toplevel parentheses in dune files
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-29 21:11:47 +01:00
Jérémie Dimino
793a0b7c17
Fix the build on 4.02 by emulating -no-keep-locs ( #927 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-29 07:40:02 +01:00
Rudi Grinberg
8185337876
Merge branch 'master' into persistent-build-files
2018-06-29 11:07:22 +06:30
Rudi Grinberg
79224ff194
Add name to Vfile_kind functor
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 22:42:55 +06:30
Rudi Grinberg
ef5a2144dd
Add magic to to_out_string
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 22:40:00 +06:30
Jeremie Dimino
473dd9b440
Change the default build profile to dev during bootstrap
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-28 12:40:27 +01:00
Rudi Grinberg
3177404741
Remove extra module from Vfile_kind functor
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 18:02:50 +06:30
Rudi Grinberg
2071ac1072
Implement Vfile_kind in term of Persistent
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 18:01:06 +06:30
Rudi Grinberg
aa22671b2f
Remove Make_full from file_kind signature since it's unused
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 17:15:34 +06:30
Rudi Grinberg
bc09b8fc81
Change Action.Promotion to use Utils.Persistent
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 17:15:34 +06:30
Rudi Grinberg
4738b6df89
Make promoted files a set
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 17:15:34 +06:30
Rudi Grinberg
2a80d034fa
Use Util.Persistent to reimplemented promoted files store
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 17:15:34 +06:30
Jeremie Dimino
af6f003d13
Refactor ordered_set_lang.ml
...
- use the new s-expression parsing API
- simplify the types and the parsing
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-28 11:26:42 +01:00
Jeremie Dimino
f9f5503e81
Change the signature of Of_peek.peek
...
It is always used the same way: `peek raw`, and sometimes preceded by
a `eos`. Remove the old `peek` and add:
- `peek_exn` which is the same the old `peek raw`
- `peek` which returns `None` if the end of sequence is reached
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-28 11:26:42 +01: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
Jeremie Dimino
16d34f4a07
Add Which_program to know whether we are dune or jbuilder
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-28 11:23:10 +01:00
Jérémie Dimino
9585c8f79d
Move ocamldep output files to the object directory ( #918 )
...
- this avoid the need for the "already_used" business
- this will make it easier to support multi-dir libraries without copy_files
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-28 09:46:20 +01:00
Rudi Grinberg
ec14661a01
Update tests for new variables syntax
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 09:48:35 +06:30
Rudi Grinberg
2257a2057b
Add templates to Usexp.t directly
...
Templates are now directly in dune's sexp language. The syntax is change to %{}
from ${} and $(). Old templates are still supported in jbuild files.
Other changes in this PR:
* Removal of ! patterns in variables
* Strict expansion for templates in dune files. Missing vars are now an error
* Using the correct syntax to parse included files in dune
* Improvements to the tests
* Syntax aware pretty printing of sexps. Now you must pass Dune vs. Jbuild to
print sexps
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-28 09:46:10 +06:30
Jérémie Dimino
0f68e56f64
Remove most useless parentheses from the syntax ( #915 )
2018-06-27 16:38:05 +01:00
Jeremie Dimino
daa4be3dd8
Add Stanza.file_kind
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-25 08:14:27 +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
Rudi Grinberg
467cecfccc
Add sexp conversion to univeral maps
...
Very useful for debugging
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-21 23:06:39 +06:30
Rudi Grinberg
f35d068836
Move Jbuild.syntax to Stanza module
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-21 12:54:27 +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
Jeremie Dimino
74c008ea62
Implement automatic edition of the dune-project file for extensions
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-20 16:06:38 +01:00
Rudi Grinberg
c723150026
Merge branch 'master' into faster-bootstrap
2018-06-20 21:09:17 +06:30
Rudi Grinberg
9883c4450b
Add jsoo boot file
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:36:04 +06:30
Rudi Grinberg
98f055dbed
add menhir.boot.ml
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:32:57 +06:30
Rudi Grinberg
8597f599d0
Add inline_tests.boot file
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:31:52 +06:30
Rudi Grinberg
5a46dc1998
Add jbuild_lexer.boot to speed up bootstrap
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:21:40 +06:30
Rudi Grinberg
15ffc107ff
Add mli's to {dune,jbuild}_lexer
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:21:23 +06:30
Rudi Grinberg
d6778a50a2
Rename Lexer0 to Lexer_shared
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:16:12 +06:30
Rudi Grinberg
cd6d5dba53
Simplify jbuild lexer and move types around
...
The types should exist in the lexer module where they're used
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 20:00:35 +06:30
Rudi Grinberg
1e5dc322e2
Remove some legacy stuff from the new dune lexer
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 19:50:58 +06:30
Rudi Grinberg
d7ab3d962c
Harmonize names in dune and jbuild lexers
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 19:50:50 +06:30
Rudi Grinberg
e3aa13424d
Split dune and jbuild lexers
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 19:29:16 +06:30
Rudi Grinberg
f180470158
Remove outdated comment about atoms
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
7d2c7d9579
Parameterize sexp_tests on dune and jbuild syntax
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
8a87b5b5bf
Move validation to a `print` function
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
a1d714f9d4
Fix definition of is_valid_jbuild
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
99fbac26ab
Remove constructor side validation
...
And make the tests reflect back Invalid_argument
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
5618be7ab0
Fix 4.02.3 compat
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
46eba2ef98
Improve validation of jbuild atoms
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
ad3a95655d
Dune & Jbuild validation for atoms
...
Atoms can now be constructed and pretty printed with a syntax = Jbuild | Dune.
The syntax controls validation that will be used to make sure we are printing
something/reading valid
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 18:23:23 +06:30
Rudi Grinberg
a033ddb894
Merge branch 'master' into fix-lexer-include
2018-06-20 18:22:11 +06:30
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
Rudi Grinberg
7d33cb2275
Select lexer based on dune vs jbuild
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-20 15:38:55 +06:30
Jeremie Dimino
7c5624b448
Add support for declaring when syntactic elements are deleted/removed/renamed
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
3c15e3d041
Add Sexp.kind
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
43f274b323
Refactor syntax versioning management
...
Now, the version of the main language as well as the version of
extensions is passed through the user context of sexp parsers.
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
2d1765285a
Add Sexp.Of_sexp.capture
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
ff46b30a78
Add Sexp.Of_sexp.set_many
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
aed6513b05
Add Univ_map.superpose
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
0e6986c2f2
Add Univ_map.singleton
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:27 +01:00
Jeremie Dimino
3e2567d2c7
Get rid of the old 'let v1 = ...' names
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:00 +01:00
Jeremie Dimino
5d1d3a2eae
Pass the project through the user context
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:00 +01:00
Jeremie Dimino
0c6edde131
Add a user context to Of_sexp.t
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:26:00 +01:00
Jeremie Dimino
4922faf18a
Fix 4.02 build
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 16:20:28 +01:00
Jérémie Dimino
d483768b93
Move universal maps from Fiber to Stdune ( #892 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 11:32:10 +01:00
Jeremie Dimino
14e6b1e038
Reduce the number of of_sexp_error... functions
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 11:29:27 +01:00
Jeremie Dimino
30d20d6143
Use a single S-expression parser monad
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-19 11:29:27 +01:00
Rudi Grinberg
f7b3e8af7d
Fix 4.02 compatibility
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-19 11:29:27 +01:00
Rudi Grinberg
065e2bb26f
Make Sexp.Of_sexp.t abstract
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-19 11:29:27 +01:00
Rudi Grinberg
63c1703045
Simplify the dune atom char set
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-19 15:41:41 +07:00
Rudi Grinberg
8432ee42cf
Separate atom_char for jbuild and dune files
...
Dune files have a more strict definition of atoms
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-19 01:14:19 +07:00
Rudi Grinberg
19908abf4d
Add '%' back to the atom char set
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-19 00:59:48 +07:00
Rudi Grinberg
5dcefb2e5b
Forbid '%' from appearing in atoms
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-18 18:31:56 +07:00
Rudi Grinberg
bafb710a5b
Remove duplication between Atom.is_valid and should_be_atom
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-18 18:31:56 +07:00
Rudi Grinberg
eb148da6ec
Use extension parameter in error message
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-15 12:27:02 +07:00
Jérémie Dimino
3c74bf07e8
Use the same monad to parse all list of S-expressions ( #882 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-14 08:51:27 +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
Jeremie Dimino
5d6e919f04
Turn warning about modules being used multiple times into errors
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-13 11:51:41 +01:00
Jeremie Dimino
de26077d28
Get rid of compatibility symlinks for Dune directories
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-13 11:51:41 +01:00
Jeremie Dimino
6abe76c4e7
Get rid of link_executables in dune files (unused)
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-13 11:51:41 +01:00
Jeremie Dimino
e05c81ac56
Get rid of Jbuild.Provides (unused)
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-13 11:51:41 +01:00
Jeremie Dimino
86b130560e
Store the project directory in Jbuild.Library.t
...
There is no risk of confusion about the interpretation of the root
field anymore since it has type Path.Local.t.
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-12 12:09:11 +01:00
Jeremie Dimino
f24cf5d110
Make Dune_project.t private
...
To ensure we can't mutate the mutable fields and that the value is
shared, which is important for the profile_file field for instance.
To make sure we don't confuse the root field for a path in the build
directory, change its type to Path.Local.t.
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-12 12:09:11 +01:00
Jeremie Dimino
250b940c32
Start of support for languages and extensions
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-12 12:09:11 +01:00
Jérémie Dimino
8727eb6c3c
Strengthen the lexing of escape sequences ( #872 )
...
Things like \a are no longer allowed. Before they would be interpreted
as a literal \a. This will allow to introduce new escape sequences in
the future if needed.
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-11 16:21:31 +01:00
Jérémie Dimino
58a47e4ff8
Set dune language version to 1.0 ( #873 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-06-11 16:17:22 +01:00
Etienne Millon
673397a1b9
Display the installable modes
...
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-06-07 15:40:45 +02:00
Etienne Millon
9c2e4f14e0
Display an error when no installable mode is found
...
If an executable is only available as a shared object for example,
Dune cannot install it. In that case, it displays an error message.
However, it is still possible to build a private one explicitly.
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-06-07 15:17:34 +02:00
Rudi Grinberg
cbc3464a85
Merge branch 'master' into doc-private
2018-06-07 20:09:41 +07:00
Rudi Grinberg
eda3088a49
Move stanzas to toplevel value
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
724acc8c7c
Allow libraries in a package to reference each other in odocs
...
This allows for circular dependencies for libraries in the same package
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
c842c76036
Rename typ to source
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
da43480dfc
Fix html generation for private libs
...
private-doc should collect html rather than odoc aliases
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
794b2c696b
Remove unused html_alias field
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
20d9b509a1
Setup html rules for libraries and not just their parent pacakge
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
c28bc3d75a
Simplify odoc generation
...
Separate package from html docs
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
8740554ebf
Rename to_html to setup_html
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
acac3e29b3
Do not silently ignore closure errors
...
cc @diml
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
a70ccb6d8b
Move types outside of gen functor
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
2c424063ab
Remove polymorphic variant that is of questionable use
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 17:59:43 +07:00
Rudi Grinberg
08c46dff28
Merge branch 'master' into no-private-module-name
2018-06-07 17:51:36 +07:00
Rudi Grinberg
bc53047a95
Merge branch 'master' into remove-concat-or-split
2018-06-07 00:13:09 +07:00
Rudi Grinberg
0c048ac0c5
Remove module private type
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-07 00:02:21 +07:00
Rudi Grinberg
eff7a24390
Add an intern option to control ordering
...
There are 2 ways to order interned strings:
* Fast but "random"
* Slow but respects the original order
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:48:11 +07:00
Rudi Grinberg
7d8a7e94aa
Fix incorrect concatenation for multivalues in quoted context
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
6ebff9d388
Move Value.t list functions to Value.L
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
c96df4dc15
Inline expand_var
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
9cc8ff920a
Special case t.items = [Text _] and t.items = []
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
243f3437f2
implement expand in terms of partial_expand
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
774306c396
Remove old usage for Var_expansion in ppx driver
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
9221b1ed6c
Change echo to be variadic
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
ff173b98d8
Share quote handling in partial and normal expansion
...
The partial expansion had a bug in its condition for a 1 element value list.
This fixes the bug by implementing the condition once and for all.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
589943df60
Simplify String_with_vars
...
Make it expand only to Value.t since the string only version wasn't really used.
Variable expansions are now Value.t list. Which also gives the flexibility for a
value to expand to a collection of more than 1 value.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
bab65e989d
Allow for proper expansoin of vars in super contexts
...
Multivalues are no longer allowed when unquoted, and paths are no longer
needlessly converted.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
588129d582
Move Var_expansion to own module
...
These variables can occur outside actions so such expansions shouldn't live
under Var_expansion.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
cadee0e661
Write explicit interface for Expand_to
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
eab7c46bdb
Add flag to allow/disallow multivalue expansions
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:42:33 +07:00
Rudi Grinberg
9545d9a854
Add length function to exapnsions
...
This is useful for an error message that includes the number of items we've
expanded to.
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:41:57 +07:00
Rudi Grinberg
731b61b0b9
Improve the error message with invalid strings
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:41:57 +07:00
Rudi Grinberg
8351fcb466
Move the multivalue error to a function
...
Since it's used more than once
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:41:57 +07:00
Rudi Grinberg
bb58cf8599
s/false/true/
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:41:57 +07:00
Rudi Grinberg
c1d6faef79
Remove Concat_or_split
...
Thie property will now be determined from the context
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 23:41:57 +07:00
Rudi Grinberg
b3870f78b1
Merge branch 'master' into path-table
2018-06-06 23:39:36 +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
Rudi Grinberg
2a85cbe074
Merge branch 'master' into path-table
2018-06-06 22:24:18 +07:00
Jérémie Dimino
0fafebe9be
Fix generation of the ppx key for jbuild directories ( #860 )
...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-06 16:17:40 +01:00
Rudi Grinberg
6ada532b10
type specialize (=)
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 22:15:53 +07:00
Rudi Grinberg
2350bb1161
Use polymorhic equality
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 19:23:13 +07:00
Rudi Grinberg
d4e8e6dbd4
Change all path indexed tables to Path.Table
...
This will allow to experiment with faster hashing for paths
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 13:54:24 +07:00
Rudi Grinberg
3ab6be3cc2
Add a functorized hashtable with all the functions we expect to stdune
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 13:54:11 +07:00
Rudi Grinberg
3ad4c06f4a
Add Path.Table module
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-06 13:28:14 +07:00
Jeremie Dimino
ec6ca4be67
Refactor handling of backend selection errors + add tests
...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 19:19:10 +01:00
Jeremie Dimino
84f1f9b82b
Add a hint for ppx rewriters that are not compatible
...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 19:19:10 +01:00
Jeremie Dimino
cc5e8443c4
Improve the code for building and installing the compat ppx.exe program
...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 19:19:10 +01:00
Jeremie Dimino
adcf44942f
Add a warning for with_lib_deps
...
I just spent an hour debugging a stupid bug caused by this...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 19:19:10 +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
ed583b7651
Add List.assoc
...
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
Jérémie Dimino
9358bd5d64
Make Module.t private and add Module.make ( #853 )
...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-05 18:38:27 +01:00
Jeremie Dimino
5b01ed8246
Add support for block strings
...
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-04 13:57:27 +01:00
Jeremie Dimino
b7afc006ee
Drop support block and sexp comments in Dune files
...
They are almost never used and they complicate the language. The
parsing of jbuild files in unchanged.
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-04 13:57:27 +01:00
Rudi Grinberg
be7e3d6dfc
Implement --build-dir and change Path.t to use symbolic paths
...
The motivation for this change is implement the --build-dir feature. This
feature lets us control the build directory which previously always defaulted to
_build. To accomplish this, Path.t had to be modified to be:
External of External.t | In_source_tree of Local.t | In_build_dir of Local.t
To represent the 3 kinds of paths dune is dealing with. The In_build_dir
constructor in particular, is relative to Path.root or some external path.
A few other refactorings had to be done to support this transition:
* The workspace is now "settable". This means that we no longer have to pass it
explicitly when converting local to absolute paths.
* Path.is_local no longer makes sense and is renamed to Path.is_managed.
Roughly, is_managed identifies paths in the build and source directories.
* Path.absoulte has been renamed of_filename_relative_to_initial_cwd
* Path.Local.root is now "." (as opposed to "")
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-02 18:14:44 +07:00
Rudi Grinberg
93070c9a4d
Merge pull request #833 from rgrinberg/return-expand
...
Change return type of string expansions
2018-06-02 12:22:31 +07:00
Rudi Grinberg
52d0f3f552
Change return values of SW expansions
...
The nested either types obscure the meaning of the return values
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-02 12:11:08 +07:00
Etienne Millon
e45e431588
Fix error message when no package is defined ( #836 )
...
Closes #830
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-06-01 14:25:35 +01:00
Rudi Grinberg
576ff5293e
Re-indent string_with_vars with ocp-indent
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-01 19:48:19 +07:00
Jeremie Dimino
f0e448dc36
Strengthen the parsing of the (lang ...) line
...
It now has to be the first line of the dune-project file and the
lexical conventions are stricter than the rest of the syntax.
This will allow making changes to the lexical conventions of the
language in the future.
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-01 08:42:45 +01:00
Jeremie Dimino
39e74826f4
Simplify the parser
...
Replace the current generated parser by an ocamllex lexer + a simple
parser.
The new code is:
- much simpler and smaller
- shouldn't cause ocamlopt to stack overflow anymore on BSD systems
- slightly slower but not that much
Signed-off-by: Jeremie Dimino <jdimino@janestreet.com>
2018-06-01 08:42:45 +01:00
Rudi Grinberg
2e86529ece
Merge branch 'master' into little-cleanups
2018-06-01 02:37:09 +07:00
Rudi Grinberg
f07dff5696
Merge branch 'master' into sexpable
2018-06-01 02:33:54 +07:00
Rudi Grinberg
f9a215921b
Wait for deps and sdeps at once
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-06-01 01:28:14 +07:00
Etienne Millon
e97d0c5ad6
Rename Path.readdir to Path.readdir_unsorted ( #828 )
...
As `Sys.readdir`, it returns entries in an nondeterministic order.
This can cause problems if caller relies on the list being sorted.
See #820 .
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-05-31 14:52:10 +01:00