On 11/19/2009 06:14 PM, Michael Lawrence wrote:
On Thu, Nov 5, 2009 at 9:58 AM, Romain Francois
<romain.franc...@dbmail.com <mailto:romain.franc...@dbmail.com>> wrote:
Hello,
Is it possible to have the effect of UserDefinedDatabase outside of
"attached" environments ? Can I disguise an environment of the
sys.frames() as a UserDefinedDatabase ?
This seems to suggest that it might be possible :
> f <- function(){ e <- environment(); class(e) <-
"UserDefinedDatabase"; ff }
> f()
The UserDefinedDatabase support expects an R_ObjectTable C structure
embedded within an externalptr as the HASHTAB of the environment. So
it's really only possible from C.
Sure. Too bad both environments and user defined database use HASHTAB
with completely different meanings.
What I would want is something like this:
f <- function(){
attachLocally( getSomeUserDefinedDatabaseFromC() )
HELLO
}
and the variable associated with the binding "HELLO" would come
dynamically from the user defined database.
A more concrete example : rJava now has javaImport, that combined with
attach allows dynamic lookup for class names within a set of imported
java package paths:
attach( javaImport( "java.util" ), name = "java:java.util" )
v <- new( Vector )
m <- new( HashMap )
This is nice, but then as usual with attach, you forget to detach, ...
this question is about to find a way to have this instead:
f <- function(){
import( "java.util" )
v <- new( Vector )
v$add( 1 )
v
}
where the "java.util" is no more looked up when f returns.
*** caught segfault ***
address (nil), cause 'unknown'
Traceback:
1: f()
Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
At the moment, it seems to be either lookup using
UserDefinedDatabase or regular lookup. Has anyone tried to combine
both ?
--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/EAD5 : LondonR slides
|- http://tr.im/BcPw : celebrating R commit #50000
`- http://tr.im/ztCu : RGG #158:161: examples of package IDPmisc
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel