Dear List, I am learning how to use the R.dll unter Windows to embed an R interpreter into another programming language. What I would like to know, and I have not yet found an answer in the documentation: is there a way to 'reset' the interpreter to bring it to the state that it was directly after the call of the initialization routine? Thanks for any hints, Bernd
Reset an embedded R.dll
6 messages · Bernd Schoeller, Brian Ripley
On Wed, 14 May 2008, Bernd Schoeller wrote:
Dear List, I am learning how to use the R.dll unter Windows to embed an R interpreter into another programming language. What I would like to know, and I have not yet found an answer in the documentation: is there a way to 'reset' the interpreter to bring it to the state that it was directly after the call of the initialization routine?
Call the exit and initialization routines. That will not completely reset things (it will not unload package DLLs for example), but it is the nearest that is provided.
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
On Thu, 15 May 2008 07:15:15 +0200, Prof Brian Ripley
<ripley at stats.ox.ac.uk> wrote:
What I would like to know, and I have not yet found an answer in the documentation: is there a way to 'reset' the interpreter to bring it to the state that it was directly after the call of the initialization routine?
Call the exit and initialization routines. That will not completely reset things (it will not unload package DLLs for example), but it is the nearest that is provided.
Thank you very much, I think that will be sufficient. Last question: Will I need to UNPROTECT_PTR all references held, or will the call to Rf_endEmbeddedR also free protected references? Bernd
On Thu, 15 May 2008, Bernd Schoeller wrote:
On Thu, 15 May 2008 07:15:15 +0200, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
What I would like to know, and I have not yet found an answer in the documentation: is there a way to 'reset' the interpreter to bring it to the state that it was directly after the call of the initialization routine?
Call the exit and initialization routines. That will not completely reset things (it will not unload package DLLs for example), but it is the nearest that is provided.
Thank you very much, I think that will be sufficient. Last question: Will I need to UNPROTECT_PTR all references held, or will the call to Rf_endEmbeddedR also free protected references?
What is a 'reference' here? Rf_endEmbeddedR does what ending an R session does, no more, no less.
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
On Thu, 15 May 2008 06:04:51 -0000, Prof Brian Ripley
<ripley at stats.ox.ac.uk> wrote:
Last question: Will I need to UNPROTECT_PTR all references held, or will the call to Rf_endEmbeddedR also free protected references?
What is a 'reference' here?
Right, my question was imprecise. I meant 'SEXP' (which is a reference/pointer to a SEXPREC, as far as I understand it).
Rf_endEmbeddedR does what ending an R session does, no more, no less.
Ok - my question put differently: Will ending an R session run a full garbage collection, ignoring the 'protected' status of previously protected SEXP? Bernd
Comerge AG, Technoparkstrasse 1, CH-8005 Zurich, Switzerland
On Thu, 15 May 2008, Bernd Schoeller wrote:
On Thu, 15 May 2008 06:04:51 -0000, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
Last question: Will I need to UNPROTECT_PTR all references held, or will the call to Rf_endEmbeddedR also free protected references?
What is a 'reference' here?
Right, my question was imprecise. I meant 'SEXP' (which is a reference/pointer to a SEXPREC, as far as I understand it).
As distinct from the various reference SEXPREC types.
Rf_endEmbeddedR does what ending an R session does, no more, no less.
Ok - my question put differently: Will ending an R session run a full garbage collection, ignoring the 'protected' status of previously protected SEXP?
No. It will run finalizers if they were set up to do so.
Bernd -- Comerge AG, Technoparkstrasse 1, CH-8005 Zurich, Switzerland
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595