[ANN] ffi-clang for Ruby

Hi Everyone,

After the release of LLVM 4.0, I wanted to get the Ruby FFI gem
updated and working. It's been a long time since it's last gem
release.

It can do some pretty awesome things (obviously most credit goes to
LLVM). In the examples a basic documentation generator for C++:

% ./docs.rb docs.cpp
Symbol: Test Type: cursor_class_template
Defined at docs.cpp:7
A test class which does nothing.
This is used by `main`.
Symbol: T Type: T cursor_template_type_parameter
Defined at docs.cpp:6

Symbol: Test Type: Test<int> cursor_class_decl
Defined at docs.cpp:11
This is a specialization for integers.
Symbol: Type: cursor_cxx_access_specifier
Defined at docs.cpp:12

Symbol: count Type: int cursor_field_decl
Defined at docs.cpp:14
The number of times it has been incremented.
Symbol: main Type: int (int, char **) cursor_function
Defined at docs.cpp:21
This always fails.
The number of items in `argv`. At least 1.
The command line arguments, with argv[0] being the command used to
execute this program.
Symbol: argc Type: int cursor_parm_decl
Defined at docs.cpp:21

Symbol: argv Type: char ** cursor_parm_decl
Defined at docs.cpp:21

Symbol: test Type: Test<int> cursor_variable
Defined at docs.cpp:22

Anyway, just wanted to share.

Haha, amateur hour, forgot to include the link:

ยทยทยท

On 15 March 2017 at 13:05, Samuel Williams <space.ship.traveller@gmail.com> wrote:

Hi Everyone,

After the release of LLVM 4.0, I wanted to get the Ruby FFI gem
updated and working. It's been a long time since it's last gem
release.

It can do some pretty awesome things (obviously most credit goes to
LLVM). In the examples a basic documentation generator for C++:

% ./docs.rb docs.cpp
Symbol: Test Type: cursor_class_template
Defined at docs.cpp:7
A test class which does nothing.
This is used by `main`.
Symbol: T Type: T cursor_template_type_parameter
Defined at docs.cpp:6

Symbol: Test Type: Test<int> cursor_class_decl
Defined at docs.cpp:11
This is a specialization for integers.
Symbol: Type: cursor_cxx_access_specifier
Defined at docs.cpp:12

Symbol: count Type: int cursor_field_decl
Defined at docs.cpp:14
The number of times it has been incremented.
Symbol: main Type: int (int, char **) cursor_function
Defined at docs.cpp:21
This always fails.
The number of items in `argv`. At least 1.
The command line arguments, with argv[0] being the command used to
execute this program.
Symbol: argc Type: int cursor_parm_decl
Defined at docs.cpp:21

Symbol: argv Type: char ** cursor_parm_decl
Defined at docs.cpp:21

Symbol: test Type: Test<int> cursor_variable
Defined at docs.cpp:22

Anyway, just wanted to share.