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/.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.