Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Not-So-Foreign
   Functions
    Calling Ruby from
         Smalltalk
Martin McClure
2011 ESUG
Why Foreign
Functions?
Shared library call
Distributed object system




   Shared library call
Distributed object system

    Is there an
 in-between way?
   Shared library call
Distributed object system

Multi-language VM

   Shared library call
Multi-language VM
MagLev: Ruby and Smalltalk
     in the same VM
How does that work?
How does that work?
    An object...
How does that work?
    An object...
  ...is an object...
How does that work?
    An object...
  ...is an object...
  ...is an object...
How does that work?
     A class...
How does that work?
     A class...
   ...is a class...
How does that work?
     A class...
   ...is a class...
   ...is a class...
How does that work?


     BUT...
How does that work?
    A message...
How does that work?
    A message...
  ...is Smalltalk...
How does that work?
    A message...
  ...is Smalltalk...
    ...or is Ruby.
How does that work?
     A class...
How does that work?
       A class...
...may define different
   Ruby and Smalltalk
      methods...
How does that work?
     A class...
How does that work?
      A class...
...may have different
  Ruby and Smalltalk
      names...
How does that work?
     A class...
How does that work?
      A class...
...may have different
  Ruby and Smalltalk
    superclasses.
Selector Supplements
● Environment ID
● Number/type of sent


  arguments
Selector Supplements
● Default send environment =
  compile environment
● Must override this default
Onward
 to the
 Demo
Thanks to:
 Peter McLain
Tim Felgentreff
rubygems.org
>25000 gems
maglev-gem install mailfactory
What's Next?
●   Name “RubyService”?
●   You tell us...
?
Martin McClure
2011 ESUG
Not So Foreign Functions
Upcoming SlideShare
Loading in …5
×

of

Not So Foreign Functions Slide 1 Not So Foreign Functions Slide 2 Not So Foreign Functions Slide 3 Not So Foreign Functions Slide 4 Not So Foreign Functions Slide 5 Not So Foreign Functions Slide 6 Not So Foreign Functions Slide 7 Not So Foreign Functions Slide 8 Not So Foreign Functions Slide 9 Not So Foreign Functions Slide 10 Not So Foreign Functions Slide 11 Not So Foreign Functions Slide 12 Not So Foreign Functions Slide 13 Not So Foreign Functions Slide 14 Not So Foreign Functions Slide 15 Not So Foreign Functions Slide 16 Not So Foreign Functions Slide 17 Not So Foreign Functions Slide 18 Not So Foreign Functions Slide 19 Not So Foreign Functions Slide 20 Not So Foreign Functions Slide 21 Not So Foreign Functions Slide 22 Not So Foreign Functions Slide 23 Not So Foreign Functions Slide 24 Not So Foreign Functions Slide 25 Not So Foreign Functions Slide 26 Not So Foreign Functions Slide 27 Not So Foreign Functions Slide 28 Not So Foreign Functions Slide 29 Not So Foreign Functions Slide 30 Not So Foreign Functions Slide 31 Not So Foreign Functions Slide 32 Not So Foreign Functions Slide 33
Upcoming SlideShare
Pharo Roadmap
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

Not So Foreign Functions

Download to read offline

ESUG 2011, Edinburgh

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Not So Foreign Functions

  1. 1. Not-So-Foreign Functions Calling Ruby from Smalltalk Martin McClure 2011 ESUG
  2. 2. Why Foreign Functions?
  3. 3. Shared library call
  4. 4. Distributed object system Shared library call
  5. 5. Distributed object system Is there an in-between way? Shared library call
  6. 6. Distributed object system Multi-language VM Shared library call
  7. 7. Multi-language VM MagLev: Ruby and Smalltalk in the same VM
  8. 8. How does that work?
  9. 9. How does that work? An object...
  10. 10. How does that work? An object... ...is an object...
  11. 11. How does that work? An object... ...is an object... ...is an object...
  12. 12. How does that work? A class...
  13. 13. How does that work? A class... ...is a class...
  14. 14. How does that work? A class... ...is a class... ...is a class...
  15. 15. How does that work? BUT...
  16. 16. How does that work? A message...
  17. 17. How does that work? A message... ...is Smalltalk...
  18. 18. How does that work? A message... ...is Smalltalk... ...or is Ruby.
  19. 19. How does that work? A class...
  20. 20. How does that work? A class... ...may define different Ruby and Smalltalk methods...
  21. 21. How does that work? A class...
  22. 22. How does that work? A class... ...may have different Ruby and Smalltalk names...
  23. 23. How does that work? A class...
  24. 24. How does that work? A class... ...may have different Ruby and Smalltalk superclasses.
  25. 25. Selector Supplements ● Environment ID ● Number/type of sent arguments
  26. 26. Selector Supplements ● Default send environment = compile environment ● Must override this default
  27. 27. Onward to the Demo
  28. 28. Thanks to: Peter McLain Tim Felgentreff
  29. 29. rubygems.org >25000 gems
  30. 30. maglev-gem install mailfactory
  31. 31. What's Next? ● Name “RubyService”? ● You tell us...
  32. 32. ? Martin McClure 2011 ESUG

ESUG 2011, Edinburgh

Views

Total views

476

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×