Files
libguestfs/generator
Matthew Booth 02ccef7684 bindtests: Test optargs in test0
Note that this change disables compiling and running the haskell bindtests. The
haskell bindings do not implement optargs, and adding optargs to test0 causes
that method not to be bound in the haskell bindings. This prevents the haskell
bindtests from compiling. These should be re-enabled when optargs are
implemented.
2012-01-20 18:42:40 +00:00
..
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-20 18:42:40 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-18 22:05:02 +00:00
2012-01-20 18:12:38 +00:00

This program generates a large amount of code and documentation for
all the daemon actions.

To add a new action there are only two files you need to change,
'generator_actions.ml' to describe the interface, and
daemon/<somefile>.c to write the implementation.

After editing these files, build it (make -C generator) to regenerate
all the output files.  'make' will rerun this automatically when
necessary.

IMPORTANT: This program should NOT print any warnings at compile time
or run time.  If it prints warnings, you should treat them as errors.

OCaml tips:

(1) In emacs, install tuareg-mode to display and format OCaml code
correctly.  'vim' comes with a good OCaml editing mode by default.

(2) Read the resources at http://ocaml-tutorial.org/

(3) A module called 'Generator_foo' is defined in one or two files
called 'generator_foo.mli' and 'generator_foo.ml' (NB: lowercase first
letter).  The *.mli file, if present, defines the public interface for
the module.  The *.ml file is the implementation.  If the *.mli file
is missing then everything is exported.

Some notable files in this directory:

generator_actions.ml          The libguestfs API.
generator_structs.ml          Structures returned by the API.
generator_c.ml                Generate C API.
generator_<lang>.ml           Generate bindings for <lang>.
generator_main.ml             The main generator program.