packages feed

mercury-api-0.1.0.0: UPGRADING.md

Hopefully I will keep this package up-to-date with the latest version
of Mercury API.  But if you're in the position of needing to update
Mercury API, follow these instructions:

* Unzip the Mercury API zipfile.

* Copy the files from `c/src/api/` in the Mercury API distribution to
  `cbits/api/` in this package.

* Run `dos2unix` on the files you copied, to normalize the line
  endings.  (In the Mercury API distribution, they are a random
  combination of DOS and Unix line endings, often in the same file.)

* Apply the patches from the `cbits/api/patches/` directory.

* Update `mercury-api.cabal` with any additional C files that were
  added in the new release.  Note that not all C files are needed; in
  particular, `serial_transport_tcp_posix.c` and
  `tmr_loadsave_configuration.c` are not needed.  Also, note that the
  files are supposed to be listed in [dependency order][1].  (And
  sadly, to get them in the right order, we have to list all the files
  for both Windows and POSIX, because the files end up in the wrong
  order if some are conditional and some are unconditional.  Yuck!)

* Run `util/generate-tmr-hsc.pl` (no arguments needed), which will
  update the generated files `Enums.hsc` and `Params.hs` based on the
  new `.h` and `.c` files.  (In particular, this will automatically
  pick up new status codes and new parameters.)

[1]: https://ghc.haskell.org/trac/ghc/ticket/13786#comment:3