From: Alex S. <ale...@gm...> - 2012-09-20 19:38:05
|
Hello. I am trying to pass to the CIL executable (cilly.asm.exe) the following new command line parameters that will be "routed" by main.ml to my CIL module: --myArg myString What is the best way of implementing this? In CIL_API.pdf it is mentioned: fd_extraopt : (string * Arg.spec * string) list ; Additional command line options. The description strings should usually start with a space for Arg.align to print the -help nicely. However, I noticed that the Perl cilly driver transforms the command line parameter list it passes to the CIL executable. For example, when giving: bin/cilly --docallgraph app.c --save-temps the driver calls: obj/x86_LINUX/cilly.asm.exe --out ./app.cil.c --docallgraph ./app.i I reversed engineered and worked on the Perl scripts cilly.pm and cilly (subroutine collectOneArgument), but I am wondering: is this the natural way of doing this? (there is also the option I could get myString from an input file, but this is less desired). Thank you. Alex |
From: Gabriel K. <ga...@ke...> - 2012-09-21 08:51:16
|
Hello, > I am trying to pass to the CIL executable (cilly.asm.exe) the following > new command line parameters that will be "routed" by main.ml to my CIL > module: --myArg myString > What is the best way of implementing this? As you found in the documentation, you should use: > fd_extraopt : (string * Arg.spec * string) list ; > However, I noticed that the Perl cilly driver transforms the command line > parameter list it passes to the CIL executable. I don't understand what bothers you exactly, but you shouldn't be concerned about the cilly script at all: it's black magic that "does the right thing" (most of the time). In your case, it should pass --myArg myString from the cilly script to cilly.asm.exe as expected. Did you try with fd_extraopt before diving into cilly.pm? What happened? Kindest regards, -- Gabriel |
From: Alex S. <ale...@gm...> - 2012-09-25 07:53:04
|
Hello. I figured out what is the standard way of handling extra options for a CIL module. For example, the liveness.ml module contains as element of fd_extraopt: "--live_func", Arg.String (fun s -> live_func := s), " Output the variables live at each statement in this function."; To pass argument for the above specification, give, for example: bin/cilly --doLiveness --live_func=main app.c --save-temps (note the "=" sign; note that it's NOT working with "--live_func main"). Best regards, Alex On 9/20/2012 10:37 PM, Alex Susu wrote: > Hello. > I am trying to pass to the CIL executable (cilly.asm.exe) the following new command line > parameters that will be "routed" by main.ml to my CIL module: > --myArg myString > What is the best way of implementing this? > > In CIL_API.pdf it is mentioned: > fd_extraopt : (string * Arg.spec * string) list ; > Additional command line options. The description strings should usually start with a space > for Arg.align to print the -help nicely. > > However, I noticed that the Perl cilly driver transforms the command line parameter list > it passes to the CIL executable. For example, when giving: > bin/cilly --docallgraph app.c --save-temps > the driver calls: > obj/x86_LINUX/cilly.asm.exe --out ./app.cil.c --docallgraph ./app.i > > I reversed engineered and worked on the Perl scripts cilly.pm and cilly (subroutine > collectOneArgument), but I am wondering: is this the natural way of doing this? (there is > also the option I could get myString from an input file, but this is less desired). > > Thank you. > Alex |