Hi list! Its a been a while since I was around here, but I remember it
being the place to ask these sorts of questions, especially since Yarv
has now merged into real Ruby.
How does a proc object get passed when writing a ruby extension in c?
ie
Ruby
a = Proc.new{|z| z*2}
f(a)
C
void f(VALUE a){
switch(TYPE(a)){
…
}
}
None of the usual types match. What is ‘a’ here? There doesn’t seem to
be a struct for Procs in ruby.h. Might it be a pointer to the iseq
struct?
(FTR, I’m mesing around with what is now quite an old build -
yarv-0.4.1, I’m hoping it hasn’t changed much since the merge?)
warm regards,
stu