Some Agda Hacking Lore

* Whenever you change the interface file format you should update
  Agda.TypeChecking.Serialise.currentInterfaceVersion.

* When a new feature is implemented it should be documented in
  doc/release-notes/<next-version>.txt. It is also a good idea to add
  test cases under test/succeed and test/fail, and maybe also
  test/interaction. When adding test cases under test/fail, remember
  to record the error messages (.err files) after running make test.

* Run the test-suite, using make test (which does not work properly
  unless you run autoreconf and ./configure first).

  Tests under test/fail can fail if an error message has changed. To
  accept the new error message, touch the corresponding source file.

* Under darcs 2.5 the --test flag is not enabled by default. This can
  be changed by adding the following line to _darcs/prefs/defaults:

    ALL test

* To avoid problems with the whitespace test failing you can add the
  following line to _darcs/prefs/defaults:

    record prehook make fix-whitespace

* Use __IMPOSSIBLE__ instead of calls to error. __IMPOSSIBLE__
  generates errors of the following form:

   An internal error has occurred. Please report this as a bug.
   Location of the error: ...

  Calls to error can make Agda fail with an error message in the *ghci*
  buffer.

Emacs mode

* Load times (wall-clock time) can be measured using
  agda2-measure-load-time.

* If you fix a bug related to syntax highlighting, please add a test
  case under test/interaction. Example .in file command:

    IOTCM "Foo.agda" NonInteractive Direct (Cmd_load "Foo.agda" [])

  If you want to include interactive highlighting directives, replace
  NonInteractive with Interactive.
