Dear r-devel, I was surprised to see that saveRDS() and readRDS() work quite well with environments, see below:
``` z <- 3 # in global env y <- new.env() y$a <- 1 x <- new.env(parent = y) x$b <- 2 saveRDS(x, "x.RDS") # in a new session x <- readRDS("x.RDS") y <- parent.env(x) x$b #> [1] 2 y$a #> [1] 1 parent.env(y) #> <environment: R_GlobalEnv> z #> Error: object 'z' not found ``` We know that environments by definition cannot be cloned without compromises, and we see above that compromises were made: we did save the first parent, but didn't save or at least restore the global env. I don't see this documented in `?ReadRDS`, did I miss something ? I would like to know what rules are followed, if I had to guess I would think that parents are saved until a "special environment" is reached (such as global env, empty env, package envs, namespaces, imports, datasets), but I'd like clarifications on this point. Thanks, Antoine [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel