Skip to content

Remove foreign function wrappers#8535

Closed
nikomatsakis wants to merge 2 commits intorust-lang:masterfrom
nikomatsakis:issue-3678-wrappers-be-gone-2
Closed

Remove foreign function wrappers#8535
nikomatsakis wants to merge 2 commits intorust-lang:masterfrom
nikomatsakis:issue-3678-wrappers-be-gone-2

Conversation

@nikomatsakis
Copy link
Contributor

Long-standing branch to remove foreign function wrappers altogether. Calls to C functions are done "in place" with no stack manipulation; the scheme relies entirely on the correct use of #[fixed_stack_segment] to guarantee adequate stack space. A linter is added to detect when #[fixed_stack_segment] annotations are missing. An externfn! macro is added to make it easier to declare foreign fns and wrappers in one go: this macro may need some refinement, though, for example it might be good to be able to declare a group of foreign fns. I leave that for future work (hopefully somebody else's work :) ).

Fixes #3678.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:(

@catamorphism
Copy link
Contributor

@nikomatsakis - bitrotted.

bors added a commit that referenced this pull request Aug 19, 2013
…, r=graydon

Long-standing branch to remove foreign function wrappers altogether. Calls to C functions are done "in place" with no stack manipulation; the scheme relies entirely on the correct use of `#[fixed_stack_segment]` to guarantee adequate stack space. A linter is added to detect when `#[fixed_stack_segment]` annotations are missing. An `externfn!` macro is added to make it easier to declare foreign fns and wrappers in one go: this macro may need some refinement, though, for example it might be good to be able to declare a group of foreign fns. I leave that for future work (hopefully somebody else's work :) ).

Fixes #3678.
@bors bors closed this Aug 19, 2013
@brendanzab
Copy link
Contributor

My goodness sir. Thank you.

@emberian
Copy link
Contributor

Woohoo! 💃

@fillest
Copy link

fillest commented Aug 25, 2013

Sorry for question -- I'm completely new to Rust -- does this mean FFI calls have no overhead now (comparing to ordinary functions)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extern/native function reform

7 participants