Changeset: 06a701be7a92 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=06a701be7a92 Modified Files: monetdb5/extras/rapi/rapi.c Branch: RIntegration Log Message:
R interpreter now loaded at startup, also prints message if successful diffs (48 lines): diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c --- a/monetdb5/extras/rapi/rapi.c +++ b/monetdb5/extras/rapi/rapi.c @@ -262,7 +262,6 @@ str RAPIeval(Client cntxt, MalBlkPtr mb, char *msg = createException(MAL, "rapi.eval", "NYI"); BAT *b; BUN cnt; - int initstatus = 0; node * argnode; int seengrp = FALSE; @@ -288,14 +287,6 @@ str RAPIeval(Client cntxt, MalBlkPtr mb, // get the lock even before initialization of the R interpreter, as this can take a second and must be done only once. MT_lock_set(&rapiLock, "rapi.evaluate"); - /* startup internal R environment if needed */ - if (!rapiInitialized) { - initstatus = RAPIinitialize(); - if (initstatus != 0) { - throw(MAL, "rapi.eval", "failed to initialise R environment (%i)", - initstatus); - } - } env = PROTECT(eval(lang1(install("new.env")),R_GlobalEnv)); assert(env != NULL); @@ -584,5 +575,21 @@ str RAPIprelude(void) { MT_lock_init(&rapiLock, "rapi_lock"); // set R_HOME for packages etc. We know this from our configure script setenv("R_HOME", RHOME, TRUE); + + if (RAPIEnabled()) { + MT_lock_set(&rapiLock, "rapi.evaluate"); + /* startup internal R environment */ + if (!rapiInitialized) { + int initstatus; + initstatus = RAPIinitialize(); + if (initstatus != 0) { + throw(MAL, "rapi.eval", + "failed to initialise R environment (%i)", initstatus); + } + } + MT_lock_unset(&rapiLock, "rapi.evaluate"); + } + + fprintf(stdout, "# MonetDB/R module loaded\n"); return MAL_SUCCEED; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list