[rkward-cvs] SF.net SVN: rkward: [2126] trunk/rkward
tfry at users.sourceforge.net
tfry at users.sourceforge.net
Thu Oct 25 17:25:59 UTC 2007
Revision: 2126
http://rkward.svn.sourceforge.net/rkward/?rev=2126&view=rev
Author: tfry
Date: 2007-10-25 10:25:59 -0700 (Thu, 25 Oct 2007)
Log Message:
-----------
Fix for watching symbols in R 2.3 and earlier
Modified Paths:
--------------
trunk/rkward/ChangeLog
trunk/rkward/TODO
trunk/rkward/rkward/rbackend/rpackages/rkward/DESCRIPTION
trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R
Modified: trunk/rkward/ChangeLog
===================================================================
--- trunk/rkward/ChangeLog 2007-10-25 15:24:59 UTC (rev 2125)
+++ trunk/rkward/ChangeLog 2007-10-25 17:25:59 UTC (rev 2126)
@@ -1,3 +1,4 @@
+- Fixed: Crash on simple assignments in globalenv() with R < 2.4.0
- Fixed: Meta information (labels) did not get shown correctly in the data editor
- Add command line option "--debugger" for debugging purposes
- Fixed: Pressing the add button in a varslot with no object selected could crash RKWard
Modified: trunk/rkward/TODO
===================================================================
--- trunk/rkward/TODO 2007-10-25 15:24:59 UTC (rev 2125)
+++ trunk/rkward/TODO 2007-10-25 17:25:59 UTC (rev 2126)
@@ -141,6 +141,13 @@
- likely, package environments should try to fetch vignettes, when "updating"
Internal stuff:
+ - Workspace browser / code completion
+ - we might make this a bit less pro-active:
+ - only objects directly on the search path need to be fetched at once
+ - children of these objects do not need to be investigated until we first try to access a child of the object.
+ - i.e. RContainerobject::children() should handle fetching the child structure (numChildren() should probably be populated pro-actively).
+ - isParentOf() should not be affected, as this can only be true for a child object that has previously been investigated
+ - need to make sure, completions are not blocking
- Handling fonts:
- http://sourceforge.net/mailarchive/forum.php?thread_id=31631211&forum_id=12970
- Look at package odfWeave, and find out, how to use this
Modified: trunk/rkward/rkward/rbackend/rpackages/rkward/DESCRIPTION
===================================================================
--- trunk/rkward/rkward/rbackend/rpackages/rkward/DESCRIPTION 2007-10-25 15:24:59 UTC (rev 2125)
+++ trunk/rkward/rkward/rbackend/rpackages/rkward/DESCRIPTION 2007-10-25 17:25:59 UTC (rev 2126)
@@ -1,6 +1,6 @@
Package: rkward
Title: Provides some helper functions for the RKWard frontend
-Version: 0.4.8
+Version: 0.4.8.1
Author: Thomas Friedrichsmeier and the RKWard Team
Description: Most of the functions in here are really only needed for the internal communication between RKWard and R. There are also a few functions, which allow access to RKWard or RKWard specifics. Most is not implemented, yet.
Maintainer: RKWard-devel mailing list <rkward-devel at lists.sourceforge.net>
Modified: trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R
===================================================================
--- trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R 2007-10-25 15:24:59 UTC (rev 2125)
+++ trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R 2007-10-25 17:25:59 UTC (rev 2126)
@@ -167,26 +167,47 @@
}
}
-".rk.make.watch.f" <- function (k) {
- # we need to make sure, the functions we use are *not* looked up as symbols in .GlobalEnv.
- # else, for instance, if the user names a symbol "missing", and we try to resolve it in the
- # wrapper function below, evaluation would recurse to look up "missing" in the .GlobalEnv
- # due to the call to "if (!missing(value))".
- get <- base::get
- missing <- base::missing
- assign <- base::assign
- .rk.do.call <- rkward::.rk.do.call
- invisible <- base::invisible
-
- function (value) {
- if (!missing (value)) {
- assign (k, value, envir=.rk.watched.symbols)
- .rk.do.call ("ws", k);
- invisible (value)
- } else {
- get (k, envir=.rk.watched.symbols)
+if (compareVersion (paste (R.version$major, R.version$minor, sep="."), "2.4.0") >= 0) {
+ ".rk.make.watch.f" <- function (k) {
+ # we need to make sure, the functions we use are *not* looked up as symbols in .GlobalEnv.
+ # else, for instance, if the user names a symbol "missing", and we try to resolve it in the
+ # wrapper function below, evaluation would recurse to look up "missing" in the .GlobalEnv
+ # due to the call to "if (!missing(value))".
+ get <- base::get
+ missing <- base::missing
+ assign <- base::assign
+ .rk.do.call <- rkward::.rk.do.call
+ invisible <- base::invisible
+
+ function (value) {
+ if (!missing (value)) {
+ assign (k, value, envir=.rk.watched.symbols)
+ .rk.do.call ("ws", k);
+ invisible (value)
+ } else {
+ get (k, envir=.rk.watched.symbols)
+ }
}
}
+} else {
+ # see above, but '::' operator was more picky in R < 2.4
+ ".rk.make.watch.f" <- function (k) {
+ get <- base::get
+ missing <- base::missing
+ assign <- base::assign
+ .rk.do.call <- get (".rk.do.call", envir=as.environment ("package:rkward"))
+ invisible <- base::invisible
+
+ function (value) {
+ if (!missing (value)) {
+ assign (k, value, envir=.rk.watched.symbols)
+ .rk.do.call ("ws", k);
+ invisible (value)
+ } else {
+ get (k, envir=.rk.watched.symbols)
+ }
+ }
+ }
}
".rk.watch.symbol" <- function (k) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the rkward-tracker
mailing list