Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native extensions. How does it work? #95

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

methodmissing
Copy link

Ever seen those nasty configure / make backtraces on gem install or runtime segfaults ? Most of your critical product dependencies are native extensions, yet very few Rubyists understand how they work. With the Ruby VM ecosystem constantly growing, discrepancies between development and production environments and wrapped libraries not always evolving with stable interfaces, things can and will go wrong. I am the author of several bindings that run seamless on different Ruby implementations, cursed a lot to get there and in this talk I would like to touch on :

  • The MRI C api VS foreign function interface (FFI)
  • Basic structure and how extensions are loaded at runtime
  • Plugging into the Ruby objects ecosystem and Garbage Collection
  • Playing well with Threads
  • When things go wrong

Lourens Naudé

Lourens is an independent consultant currently based in sunny Madeira Island, but originally from South Africa. He specializes in backend / platform / domain solutions and is well versed full stack, from VM to high level protocols and known for his offbeat Ruby patches and extensions. Current interests include disruptive communication technology like ZeroMQ / libxs - all modern software is social software and none of that should be hard.

He spends weekdays in the Operations team @ http://www.wildfireapp.com

See http://github.com/methodmissing for Open Source contributions.

Profile picture

@joshk
Copy link
Contributor

joshk commented Mar 29, 2012

Hey Lourens,

Can you not remove the example directory and files in there, as they are examples for others :)

Thx,

Josh

@mostlyobvious
Copy link

+1

4 similar comments
@jasiek
Copy link

jasiek commented Mar 29, 2012

👍

@pzol
Copy link

pzol commented Mar 29, 2012

+1

@pedrocarrico
Copy link

👍

@DouweM
Copy link

DouweM commented Mar 29, 2012

👍

@martinrehfeld
Copy link

+1 for sure

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.

8 participants