my all changes
Merge pull request #385 from galchinsky/orig

Add linker support to -run mode
add @galchinsky to AUTHORS.txt
bindgen: flush output on exit

(output is not flushed automatically anymore, see
b30d925d472024ac62c38bbb5cdfa8ce79c8ee6b)
runtest.py: option to compare out and err with regexp

If out.txt or err.txt first line is '(re)' then the rest is interpteted
as regular expression, against which out or err is matched.
capture backtrace in throw statement

Before this commit program compiled by Clay printed backtrace in
assert function, but when exception is thrown/caught, exception
info is unavaiable. This is a problem when generic exception like
ValueMissing from maybe module is thrown, because virtually any
part of a program may throw this exception.

This commit changes throwValue function to capture backtrace and
store it next to exception. Captured backtrace and throw statement
location is available in the catch block as __exc_bt, __exc_file
and __exc_line variables.

Main function launcher now prints backtrace, and file and line of
throw statement on uncaught exception.

Unlike Java or C#, backtrace is not stored in exception object.
This seems to be more convenient in Clay, because Clay has no
inheritance, there is not base type to store backtrace in.

Backtrace capturing is a relatively fast operation (<1us in my
tests, see https://gist.github.com/3675622). But if this is too
slow for somebody, capturing can be turned off with compiler flag
-Dclay.DisableBacktraceOnThrow.

Unhandled `main` function exceptions is printed to stderr like this:

```
unhandled exception: MyException()
at ./tmp.clay:8
0   tmp                                 0x0001b878 __main__.main() clay + 632
1   tmp                                 0x0001b129 __operators__.callMain(Static[main], Int32, Pointer[Pointer[Int8]]) Int32 clay + 57
2   tmp                                 0x0001b0c2 main + 50
3   libdyld.dylib                       0x991eb725 start + 0
```
resolve import loops involving printer module
resolve import loops in unix modules
link to llvm::Linker on win32 (fixes #387)

bug reported by @farces
core.types: add more C type aliases

Add type aliases like CInt, CUint, CShort, CUShort etc.

Although these types are identical on all platforms supported by
Clay, having these type aliases make C-interoperability better in
situations like this:

```
// Developer is not sure that Short is compatible with C short
libc.printf("%hd\n", Short(1));
// This code is obviously correct
libc.printf("%hd\n", CShort(1));
```

bindgen now generates CInt-like types instead of Int-like types.
bindgen did generate long double incorrectly (size of long double
is different between Windows and other platforms).

See http://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models
Add "newtype" strong typedefs.
Merge remote-tracking branch 'upstream/master' into typedef
formatting
Merge pull request #388 from agemogolk/typedef

Strong typedefs 
Rename baseType to BaseType.
Add NewType? and baseType functions to core/types.
Add initialization check in BaseType.
Add couple of newtype tests.
fix import loop involing strings.encodings.utf8
fix import loop involving io.streams.bytevector
fix circular dependencies in digest module
fix circular dependencies in buffervector module