I installed 112.35.01 and now it works perfectly, both the installation and your solution. I join the working code for mailing list. I also updated the gist. Thanks a lot for your help Leo Le 2015-08-04 10:34, Ben Millwood a écrit : > Make sure you are installing core 112.35.01, not 112.35.00. I believe it contains a fix for the issue you're seeing. If it doesn't, let me know and I'll look into it a little more. > > On 3 August 2015 at 19:54, wrote: > > Thanks for your quick answer. It seems clear enough. > > Unfortunately, I can't install latest version of core, I get this error > > # File "src/iobuf.ml [1]", line 624, characters 17-28: > # Integer literal exceeds the range of representable integers of type int > > I think it's because of my 32bit computer. I will keep your solution in mind until I could get the latest version of core. > > Leo > > PS: Should I report an issue on Github for that ? In opam or core repository ? > > Le 2015-08-03 18:53, Ben Millwood a écrit : > There are a few ways of doing this. The newly-added Applicative interface is worth showing off: > > let shared_params = > let open Command.Param in > return (fun v c rcfile -> > verb := v; > color := c; > rcfile) > <*> flag "-v" (optional_with_default 0 int) ~doc:"..." > <*> flag "-c" (...) ~doc:"..." > <*> ... > > shared_params is now a package of arguments that sets the verb and color refs and then gives you the rcfile (it's only that way to mirror your code; I'd usually prefer to just put all three in a record or something). You can use it in Command.basic as follows: > > let sum = > Command.basic > ~summary:"whatever" > Command.Spec.( > empty > +> shared_params > +> anon ...) > (fun rc ... () -> ...) > > let main () = > Command.run begin > Command.group ~summary:"some stuff" > [ "sum", sum > ; "settings", ... > ] > end > > Let me know if I've omitted too much :) > > On 3 August 2015 at 13:18, wrote: > > Hello everybody, > > I'm trying to use subcommands with the Core library. I would like to factorize several things : > > * A set of common arguments (to set color, verbosity and so on) > * A common way to deal with these arguments > * A pretty way to define subcommands using these common arguments and way to handle it. > > Main problem is that I can't define more arguments to my subcommand. More details in my code, which is joined. You may also find it here (Github gist, could be updated): http://j.mp/1JHlZ6S [2] > > Result of the compilation (corebuild cmd.byte) > > + ocamlfind ocamlc -c -w A-4-33-40-41-42-43-34-44 -strict-sequence -g -bin-annot -short-paths -thread -syntax camlp4o -package bin_prot.syntax -package sexplib.syntax,comparelib.syntax,fieldslib.syntax,variantslib.syntax -package core -o cmd.cmo cmd.ml [3] > File "cmd.ml [3]", line 98, characters 5-44: > Warning 48: implicit elimination of optional argument ?extend > File "cmd.ml [3]", line 49, characters 11-341: > Warning 27: unused variable summary. > File "cmd.ml [3]", line 49, characters 20-341: > Warning 27: unused variable args. > Finished, 3 targets (0 cached) in 00:00:03. > > Thanks for your help > Leo Links: ------ [1] http://iobuf.ml [2] http://j.mp/1JHlZ6S [3] http://cmd.ml