Skip to content

Remove foreign function wrappers - #8535

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

nikomatsakis wants to merge 2 commits into
rust-lang:masterfrom
nikomatsakis:issue-3678-wrappers-be-gone-2

Conversation

@nikomatsakis

Copy link
Copy Markdown
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.

Comment thread src/libextra/extra.rs Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

:(

@catamorphism

Copy link
Copy Markdown
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
Copy Markdown
Contributor

My goodness sir. Thank you.

@emberian

Copy link
Copy Markdown
Contributor

Woohoo! 💃

@fillest

fillest commented Aug 25, 2013

Copy link
Copy Markdown

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

@nikomatsakis
nikomatsakis deleted the issue-3678-wrappers-be-gone-2 branch March 30, 2016 16:15
U007D pushed a commit to U007D/rust-mos that referenced this pull request Aug 21, 2026
8535: Fix markdown links r=jonas-schievink a=jonas-schievink

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
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