Re: [Rd] combine UserDefinedDatabase and regular environments

From: Romain Francois <romain.francois_at_dbmail.com>
Date: Thu, 19 Nov 2009 19:54:28 +0100

On 11/19/2009 06:14 PM, Michael Lawrence wrote:
>
>
> On Thu, Nov 5, 2009 at 9:58 AM, Romain Francois

> <romain.francois_at_dbmail.com <mailto:romain.francois_at_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_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Thu 19 Nov 2009 - 18:58:24 GMT

This archive was generated by hypermail 2.2.0 : Thu 03 Dec 2009 - 07:20:56 GMT