S
Stuart Trail
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
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