Readme for hgom-0.5.3

HGom

An haskell clone of the original java Gom code generator.

Compilation

To compile hgom, install cabal-install and type the following.

cabal configure
cabal build

The hgom binary is generated in dist/build/hgom.

Installation

cabal install

Generate developer documentation

By default, cabal generates no documentation since only the executable is exported. Developers still can generate the modules' documentation as follows.

cabal haddock --executables \
--html-location='http://hackage.haskell.org/packages/archive/$pkg/latest/doc/html' \
--hyperlink-source 

Only exported symbols are documented. Add --internal for unexported symbols documentation.

The documentation index is then dist/doc/html/hgom/hgom/index.html.

Running hgom

Run hgom --help to get some basic help. You can test the behaviour of hgom by running it as follows. Some examples are valid files, other ones demonstrate hgom error messages.

hgom examples/simple.gom
hgom examples/big.gom
hgom examples/many_errors.gom
...

Test

The test suite is compiled only if the test flag is set. For instance, run

cabal configure -ftest
cabal build
./dist/build/hgom/hgom --test "-a n"

or

cabal install -ftest
hgom --test "-a n"

where n is the number of generated random inputs for each test case.

For other arguments to the --test option, try hgom --test "--help".

Code Coverage

Code coverage can be tested as follows.

cabal build --ghc-options "-fhpc -fforce-recomp"
cd test/coverage
./coverage.sh

The documentation is generated in test/coverage/html.

Benchmark

There is some benchmark in test/bench that generates bigger and bigger gom files and runs hgom and gom on them, measuring the gom/hgom ratio concerning the number of generated lines (using sloccount) and the elapsed time.

cd test/bench
make

It takes some time. The generated files can be plotted using gnuplot for instance.

Differences with gom

Better

Worse

Different