From guillaume.yziquel at citycable.ch  Sat Jan  9 02:04:11 2010
From: guillaume.yziquel at citycable.ch (Guillaume Yziquel)
Date: Sat, 09 Jan 2010 02:04:11 +0100
Subject: [Rd] PROTECT and OCaml GC.
In-Reply-To: <4B47D439.8090304@citycable.ch>
References: <4B11B75C.9070806@citycable.ch>
	<8ec76080911281625q5d5b8824hefb14af9b23d29f0@mail.gmail.com>
	<4B11C55E.2060909@citycable.ch>
	<F11B6C18-26EC-41F8-9EEB-A614D16945AC@r-project.org>
	<4B12C417.1050308@citycable.ch>
	<65D411CD-34C3-4B89-8FF0-98C9BD7613FB@r-project.org>
	<4B47D439.8090304@citycable.ch>
Message-ID: <4B47D60B.8090007@citycable.ch>

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/



[Rd] PROTECT and OCaml GC.
Guillaume Yziquel