1
Fork 0

Add AbiSet and integrate it into the AST.

I believe this patch incorporates all expected syntax changes from extern
function reform (#3678). You can now write things like:

    extern "<abi>" fn foo(s: S) -> T { ... }
    extern "<abi>" mod { ... }
    extern "<abi>" fn(S) -> T

The ABI for foreign functions is taken from this syntax (rather than from an
annotation).  We support the full ABI specification I described on the mailing
list.  The correct ABI is chosen based on the target architecture.

Calls by pointer to C functions are not yet supported, and the Rust type of
crust fns is still *u8.
This commit is contained in:
Niko Matsakis 2013-03-13 22:25:28 -04:00 committed by Brian Anderson
parent f864934f54
commit 6965fe4bce
72 changed files with 879 additions and 352 deletions

View file

@ -18,7 +18,7 @@ use core::ptr::addr_of;
use core::vec;
#[abi = "rust-intrinsic"]
extern "C" mod rusti {
extern "rust-intrinsic" mod rusti {
fn move_val_init<T>(dst: &mut T, +src: T);
fn init<T>() -> T;
}