Hi Everyone,
I started on a series to learn by reversing a native Ruby gem. Part 4 is
now published! This does a deep dive into the makefile that you would
use during development and also how it can be made to work properly also
on Windows.
Part 4 -
https://notepad.onghu.com/2023/learning-by-reversing-s1-e4-native-gems/
The first 3 parts are also online on my blog:
* Part 1 - This covers the background to the gem we explore
Link:
https://notepad.onghu.com/2023/learning-by-reversing-s1-e1-native-gems/
* Part 2 - This goes into the details of how ruby loads the native gem
and extension (and includes a nice sequence diagram of how all the bits
happen together)
Link:
https://notepad.onghu.com/2023/learning-by-reversing-s1-e2-native-gems/
* Part 3 - How do we ensure that we have everything and that it actually
gets built at installation?
Link:
https://notepad.onghu.com/2023/learning-by-reversing-s1-e3-native-gems/
Future posts are planned to go into details like:
* The interface between Ruby and C
* Running the specs and the performance benchmark
* Enhancements:
- Providing an executable
- A gem that also works on JRuby
- Making the gem ractor friendly
- Patching an existing gem rather than a new module
Comments on the posts or the plans welcome. I'm @onghu on Twitter or
@onghu@ruby.social on Mastodon if you're on either.
Best regards,
Mohit.