This is place where we (occassionally) give some indication of projects we are currently working on and thinking of. The hope is to make people aware of new ideas and plans that we have and hopefully We endeavor to do most of our work as add-ons (e.g. packages) to systems, be they Omegahat, R, S-Plus, Perl, Python, etc. For several reasons, this is greatly preferred to adding them directly to the core of the system. Some of the topics described here apply to R and generally the S language (i.e. R and S-Plus), while others apply to Omegahat itself and so on.
  • October
    • New release of RCurl (0.5-3) that handles the SSL error that disrupts R CMD check.
  • September
    • Optional type specification for R functions.
    • RDoc is the restart of an object-based documentation system for R objects, data analysis, tutorials, etc. There is XML support for R documentation files.
    • Updates for the RSPerl and XML packages.
    • Ongoing work on SWIG.
    • RDCOM releases and code generation from Type libraries.
  • August RSWIG
    • This is a module for SWIG to generate bindings to C and C++ code for R. The reason for doing this is so that we can use the gcc translation unit to create the customized typemaps for C/C++ code and use SWIG's facilities for specifying typemaps. We don't want to end up simply with SWIG as we can go further.
    • RDCOM packages and code generation from type libraries.
  • July/August GccTranslationUnit via Perl
  • I have been working on the Perl code to process the Gcc translation unit dump to analyze C/C++ code.
  • July/August RDCOM packages
  • Along with Chris Neff, we have been testing and extending the RDCOMEvents, RDCOMClient, RDCOMServer, and the SWinTypeLibs packages. And Chris is building a high-level interface to Excel from R.
    There are regular pre-releases of the packages available in the Prerelease/ directory.
  • Suffix trees
  • An interface to suffix trees.
  • May Exploration of building Office Add-ins programmed in R via RDCOMServer, RDCOMClient and RDCOMEvent packages and general utilities to Excel and Word.
  • May 24th RSPerl - added support for calling arbitrary R functions from Perl as R::func() (e.g. R::plot()) via AUTOLOAD.
  • May 23rd Updates for SSOAP and RCurl as Windows binaries.
  • May 16th - Windows versions of XML being built as part of the regular CRAN binary builds thanks to Uwe Ligges.
  • May 23rdFinally uploaded an update for RMatlab to handle the case of . in the name of an R element which must be converted to a valid name for a field in a Matlab struct.
  • RMatlab
    The RMatlab package is a bi-directional interface between R and Matlab. It is in the same spirit as the other inter-system interface packages connecting R with, e.g. Perl, Python, Java, ObjectiveC, etc.
  • C processing tools
    Building on ideas reflectance and experience with the Slcc package, we have developed a different approach for reading information from C/C++ code and being able to programmatically generate interfaces to arbitrary routines and data structures and C++ classes. This can also be used to create the native routine registration table. We use gcc/g++ directly to generate the translation unit and then process this in Python.
  • January
    Navigable documents that are super-sets of vignettes and have multiple resolutions at which one can read them.
    Work with Robert Gentleman.
  • January 2003
    Experiment with Qt in R. Access the meta-information from R of Qt classes so that we can find the slots, signals and properties.
  • December 2002 Facilities for reading type information from Windows type libraries, DLLs, and (D)COM objects.
  • December 2002 An extensible distance function that allows one to specify a C routine to use to compute the distances between two records.
    This is an example of passing C routines between packages.
  • November/December 2002 R DCOM client package.
    Object Server in the works.
  • December 2002 A vignette browser that displays the text and code chunks and allows one to interactively control the evaluation of the different code chunks and allows for embedded widgets. The vignettes are written in XML and displayed in HTML.
  • December 2002A package for accessing the Windows registry hierarchy and values from within R.
  • The RGtk package has been separated into a suite of packages so that they can be downloaded and installed separately rather than as a single monolithic collection.
    The collection of packages currently consists of:
    • RGtk
    • RGtkHTML
    • RGtkExtra
    • RGdkPixbuf
    • RGtkBindingGenerator
    Others can be easily created using RGtkBindingGenerator and .defs files describing a library.
  • XML tools for S documents.
    A currently very simple package that starts to allow XML documents containing S code to be easily processed in S. This currently allows one to annotate S code and share the XML file with others who can run the code directly. This is convenient for providing examples of S code, bug reports, etc. More to come in the future.
  • A SOAP package for performing remote calls using HTTP and XML.
    Currently only implements the client side SOAP mechanism but this contains all that is needed to implement a server side mechanism directly in R.
  • R-XLisp interface
    The RXLisp package provides a way to embed XLisp within R. At present, this works only for Unix and issues need to be resolved regarding the dynamic graphics. But the basic idea of the interface should be ok.
    Connecting the R and XLisp event loops, graphics models, etc. are not done.
  • R-Octave interface.
    This provides the initial, basic connection between R and Octave, allowing each system to call functions in the other system. This is very similar to the other inter-system interfaces and the user-level converters, etc. will be added soon. Hopefully, we will also provide a Matlab version also.
  • C-level class system in R
    This will allow developers (not just R-core) to define low-level C-code extensions to R objects, in much the same way as Gtk and X11 use C to provide Object Oriented programming. One will be able to implement methods such as print, length, etc. within these classes and then introduce further methods in sub-classes. This class system can be used to implement arbitrary extensions and provide a single, relatively easy to experiment with different additions or alternative implementations.
    We can use this to implement S4-style method dispatch (i.e. generic functions), object tables, connections, external functions/routines, external data (e.g. matrices in other systems (e.g. Java), hdf5, etc.)
  • R AbiWord plugin
    Embedding R inside AbiWord, the Gnome word processor application will allow us to explore authoring documents that contain text, code, data, etc. Combined with the XML, Sxslt and RGtkViewers package, we are converging on a general and multi-system (e.g. R, S-Plus, Python, Perl, Java, etc.) authoring and processing environment for dynamic and interactive documents.
  • Nested Substitutable Event loop in R
    We have a framework that allows us to create a stack of event loops in R that will handle input sources, GUI events, timers, idle tasks. This provides an abstraction of the event loop and implementations for both the Gtk and Tcl/Tk event loops which allow these to be easily merged together.
    Currently Unix only. Awaiting feedback! This should generalize to Qt and Carbon quite easily. And hopefully Windows will be similar.

  • Duncan Temple Lang <duncan@wald.ucdavis.edu>
    Last modified: Tue May 24 16:46:20 PDT 2005