This causes Idris to not emit messages about "Type checking ...." while
in quiet mode, which improves the portability of tests to Windows (due
to the slash facing the other way there). It also makes tests a bit more
robust with regards to their source files changing names.
More documentation to follow, but in brief:
- IO is now a synonym of IO' FFI_C
- IO' is parameterised over an ffi description, which explains which
types are allowed in foreign calls, and what a foreign call target is
(in C, that's a String giving the function name, for example)
- New function "foreign" for building a foreign call, given an ffi
description, call target, and the type of the call. The type is enough
to build a structure which the compiler uses to generate the call.
The type of main now needs to be IO' x (), where x can be any FFI
description.
There is currently only an ffi description for C; Javascript will
follow. FFI_C should also work for the llvm backend (it's really about
the calling convention, not the backend specifically). Small changes
will be needed to the various code generators.
Apparently, Curses was outputting system-specific terminal codes which
caused test cases to fail some places. This test update makes it stop by
not running the interactive REPL.