Commit Graph

1443 Commits

Author SHA1 Message Date
Rudi Grinberg 845d3a4713 Update latest syntax to 1.1
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-21 20:39:13 +02:00
Rudi Grinberg 2b72c80fbc Use correct version for error message
Error.deleted_in would use the current version rather than the deleted version
for the error message

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-20 14:02:58 +02:00
Rudi Grinberg 5835e5b64c
Merge pull request #1035 from diml/move-pp-files-back
Move back .pp files to the source directory
2018-07-19 23:00:27 +02:00
Rudi Grinberg eb0cb1d4c8
Merge pull request #1033 from diml/i-must-not-segfault
Exceptions are the little-death that brings total obliteration
2018-07-19 22:40:12 +02:00
Jeremie Dimino 213e093b07 Move back .pp files to the source directory
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-19 15:59:29 +01:00
Jeremie Dimino 0ad983c729 You get a quote from Dune if you can make Dune crash
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-19 12:22:18 +01:00
Rudi Grinberg 1f0bee0cf7 Rename base to common
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-19 13:11:42 +02:00
Rudi Grinberg 14030a8ad5 Remove unused open
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-19 12:14:25 +02:00
Rudi Grinberg 655c10164d Use syntax extension for parsing stanza
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg 78e18716ce Rename Shared_stanaza to Dune_env
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg 78786e09d4 Initialize env_node from Super_context.create
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg a82e783f15 re-arrange short match to go to the top
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg 4860461ba3 Pun inherit_from field
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg b12517debb Move Env stanza to Shared_stanza module
To break dependency cycles. This shared_stanza module doesn't have any
dependencies on actions.

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg 4769f9df9f Plumb through env node
workspace -> context -> super context

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg 61d7e49e07 Move env stanza parsing to Env.t
This will be necessary to allow this stanza in Workspace

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg 20fe7a9d20 Refactor workspace type
Make the opam workspace include the shared fields from a base type

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:34:18 +02:00
Rudi Grinberg c7bd8bc556 Move sandboxed back to Action
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:27:09 +02:00
Rudi Grinberg 1b71d57bba Move promotion to own module
It's not really related to actions

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:27:09 +02:00
Rudi Grinberg bf2d842075 Split executable parts of Action into Action_exec
This is required for breaking the dep cycle between the context and the Action module

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 14:27:09 +02:00
Rudi Grinberg 621c666610 Remove extra is standard check that is already done in Osl.eval
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-18 13:12:50 +02:00
Jeremie Dimino 5dd218c0b8 Switch jbuild.ml to applicative parsing and let%map
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-18 11:02:43 +01:00
Jeremie Dimino 6b0a02bec9 Remove one functor
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-18 10:58:45 +01:00
Jeremie Dimino 881540662a Move all code dealing with scanning directories into its own module
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-18 10:58:45 +01:00
Rudi Grinberg 2690415242 Manual dependency sort in super_context
Code is re-arranged so that evaling the OSL can access the Expander module

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-17 23:10:48 +02:00
Rudi Grinberg e421884bd4 Add signature to Super_context.Env
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-17 23:10:48 +02:00
Jeremie Dimino d94a7fe869 Simplify Build_system.eval_glob
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-17 13:29:49 +01:00
Jeremie Dimino 02ed099693 Make it work during bootstrap
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-17 11:37:22 +01:00
Jeremie Dimino 9734b2e6d0 Make the preprocessor more generic
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-17 11:37:22 +01:00
Jeremie Dimino bad0294db3 Add a textual preprocessor implementing a let%map syntax
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-17 11:37:22 +01:00
Jeremie Dimino c52d0676e8 Fix #1019
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-16 14:04:07 +01:00
Jeremie Dimino 9f7fa5ec68 Fix a typo
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-16 14:04:07 +01:00
Jeremie Dimino c3008af5cf Fix #1008
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-16 08:58:27 +01:00
Rudi Grinberg 2ec21d7b94 Pass extra params to with_expander
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:30:55 +02:00
Rudi Grinberg 62e7684f3b Make the types of expanders uniform everywhere
No labels, and consistent parameter order

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:30:55 +02:00
Rudi Grinberg 0db9356692 Fix code error in expansion
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:30:55 +02:00
Jeremie Dimino b0e39d30f0 Deforest a bit
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-13 15:30:55 +02:00
Rudi Grinberg 39c1cef128 Allow to expand multiple values in OSL
Variables that expand to multiple values will be interpreted correctly as
OSL elements

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:30:55 +02:00
Rudi Grinberg 72bbd06a1d Generalize expansion to be in own module
The result is Super_context.Expander which can be used for expandding OSL as well

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:30:55 +02:00
Rudi Grinberg 6c6a5b7866 Move Resolved_forms to own module
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:30:55 +02:00
Rudi Grinberg d90ca2c343 Little tweaks to Dir_contents
Make the type private and explicitly ignore the mlds field

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
2018-07-13 15:17:19 +02:00
Jeremie Dimino e7e28b2044 Move stanzas_per_dir to super_context.ml
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-13 15:17:19 +02:00
Jeremie Dimino b6108d7091 Move a few functions from gen_rules.ml to simple_rules.ml
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-13 15:17:19 +02:00
Jeremie Dimino 5974be475a Refactor a bit the functions computing directories contents
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-13 15:17:19 +02:00
Jeremie Dimino 3effc2fbdf Make targets_dir argument of SC.Action.run non-optional
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
Jeremie Dimino c0a6438fcc Fix reason support by keeping the original extension
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
Jeremie Dimino e6e4589c47 Small simplification
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
Jeremie Dimino c0f9c32475 Generate all the .pp files in the object directory
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
Jeremie Dimino 4d4eb5919e Change Module.File.name to Module.File.path
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
Jeremie Dimino b8679d2791 Simplify naming of reason ast files
We don't need to preserve the .ml/.mli extension anymore.

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2018-07-12 14:55:38 +01:00
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