PROTECT and OCaml GC.
Guillaume Yziquel a ?crit :
Simon Urbanek a ?crit :
If you have suggestions for extending the API, feel free to post them with exact explanations how in general that extensions could be useful (general is the key word here - I think so far it was rather to hack around your way of implementing it). [And FWIW tryEval *is* part of the API].
Concerning tryEval, I had a look at context.c, and it says:
/* R_tryEval is in Rinternals.h (so public), but not in the API. */
And concerning tryEval, there's one feature I miss: there is error handling capabilities, but to my knowledge, it provides a boolean status back. True or false. Is it possible to get a full error message back, so that it can be analysed and translated to OCaml exceptions?
Now, here's a feature I'd like to implement with the API: In OCaml, there's a library called Lwt. It's a library implementing lightweight, or green, threads. What I want to do is to be able to launch some R code, and have it multithread with other OCaml code, within one single real thread. Therefore I have to implement the commutation context somewhere in the evaluation mechanism of R itself. The API doesn't support that, I guess.
Guillaume Yziquel http://yziquel.homelinux.org/