Jeremie Dimino
b67f17bc22
Make the read/create cmi behavior more robust
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
Jeremie Dimino
7ec7166ae4
Restore PA_CPP in jbuild files
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 16:42:22 +01:00
Jeremie Dimino
66f1a201c0
Fix expansion of %{ocaml_bin}
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 15:27:58 +01:00
Jérémie Dimino
d27377166b
Rename %{root} to %{workspace_root} ( #993 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 15:08:38 +01:00
Jeremie Dimino
8c9c27fdc2
Make package field without a public_name an error in dune files
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 14:35:37 +01:00
Jeremie Dimino
0272733d2a
Make sure not to fail eagerly when we can't setup menhir rules
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 14:35:37 +01:00
Jeremie Dimino
3d389846a8
Use parens_removed_in_dune helper for deps fields
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 14:35:37 +01:00
Jeremie Dimino
3115b657fd
Fix parsing of package field when there is no public_name
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 14:35:37 +01:00
Jeremie Dimino
f748a33aae
Use the correct ppx driver for the compat ppx.exe in jbuild mode
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 14:35:37 +01:00
Etienne Millon
1d594ce5a3
Fix typos in source code
...
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-07-10 13:05:58 +01:00
Etienne Millon
8c3690cdaa
Add List.find_exn
...
Signed-off-by: Etienne Millon <etienne@cryptosense.com>
2018-07-10 13:47:02 +02:00
Jérémie Dimino
d7222ae1a6
Fix detection of dynamic cycles ( #988 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 12:14:40 +01:00
Jeremie Dimino
2ec8236d4e
Remove useless backslash
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 11:43:46 +01:00
Jeremie Dimino
d54b500635
Remove a few unused functions
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 11:43:46 +01:00
Jeremie Dimino
0b2a76c282
Simplify interpret_named
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 11:43:46 +01:00
Jeremie Dimino
bfa73a8cac
Fix shadowing of forms
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 11:43:46 +01:00
Rudi Grinberg
80b3684f9f
Make input-file backwards compatible
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 02:36:13 +07:00
Rudi Grinberg
2d59575a31
Fix meaning of ${<} in jbuild files
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:47:18 +07:00
Rudi Grinberg
77800e669e
Simplify pattern matching with monads
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
eb68a9067d
Simplify Dep_conf.t
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
0b2bda03ed
Refactor percent forms management
...
Use a single map for both variables and percent forms
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
46e8614e90
Hide Pform.t
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
4f7e7188d7
Implemenet variable shadowing
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
abab989e20
Remove extra module path
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
61a80a6bb3
Simplify a bit expand_step2
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
c10a2c254e
Remove a couple of extra begin..end
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
38c0d56ba8
Name the intput file for action preprocessors
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
015b317f43
Introduce a bindings variable for actions
...
We need to know the bindings statically whenever they overwrite existing vars
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
17d4a7c3df
Refactor a bit the parsing code for bindings
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
65e1aa0043
Rename Jbuild.Named to Jbuild.Bindings
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
bfc1b9fd25
Change binding representation to use a list
...
This preserves the order of things
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
0b1abc68bd
Improve error message for %{<}
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
df15d30845
Completely get rid of first-dep
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
04f62ecc03
Get rid of uses of %{first-dep}
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Jeremie Dimino
fd27e371bc
Tweak parsing of bindings
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
8fa41edcff
Parse bindings in the new syntax
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
2b7a7fcdff
Expand named variables in actions
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
1cc0198d9c
Make the tests stanza use named deps
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
7fbe0bc172
Formatting tweaks
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
f121a1546e
Generalize named bindings to Jbuild.Named.t
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
b9be63f4b7
small simplification
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
aab701d4a1
Add error checking for duplicate bindings
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
93b0c618d1
Add syntax for binding dependencies to names
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Rudi Grinberg
4be37dd140
Add a list constructor to Dep_conf.t
...
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-10 01:32:26 +07:00
Jérémie Dimino
e9027b4b11
Improve error message when too many parentheses are used ( #983 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-09 14:32:20 +01:00
Jeremie Dimino
7c345b677f
Forbid Path.append _ (In_build_dir _)
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-09 12:31:39 +01:00
Jeremie Dimino
0ed758ef8a
Fix sandboxing when the build directory is absolute
...
Fix #979
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-09 12:31:39 +01:00
Jeremie Dimino
f46de28e8d
Simplify the code with Option.value
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-09 10:20:04 +01:00
Jeremie Dimino
e05fcb7631
Do not parse dune-project files in ignored directories
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-09 10:20:04 +01:00
Jérémie Dimino
d393630152
Only warn for duplicated fields in jbuild files ( #976 )
...
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-09 10:18:04 +01:00
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