Package: R.oo
=============

Version: 1.2.0 [2006-07-14]
o BUG FIX: update(R.oo) would throw an error and the package was 
  detached.  

Version: 1.1.9 [2006-06-14]
o Added method getEnvironment() to class Object, which will return
  the environment where the Object's members are stored.
o Now ll() does not assign variables in the lookup environment, which
  means it will work with sealed environments too.

Version: 1.1.8 [2006-05-30]
o Added isBeingCreated() to Class in order to check if the constructor
  was called to create the static instance or just any instance.
o Removed setClassS3() which has been deprecated since 2003(!).
o Now the Rdoc tag @allmethods takes an optional argument specifying
  if private, protected or public methods should be listed.

Version: 1.1.7 [2006-05-22]
o Added argument 'addTimestamp=TRUE' to Rdoc$compile().  This makes it
  possible to turn of the timestamp, because timestamps makes diff,
  say the one in Subversion, think there is a real different.
o BUG FIX: Rdoc$compile() did not write the name of the source file 
  in the header (anymore).
o BUG FIX: The code for automatic formatting of replacement methods
  generated an error.

Version: 1.1.6 [2006-04-03]
o This version was commited to CRAN.
o Now the Rdoc compiler recognizes replacement functions and 
  creates the correct Rd \usage{} format for these.

Version: 1.1.5 [2006-03-28]
o Now argument 'properties' of ll() is given by the option 
  "R.oo::ll/properties".  If not set when the package is loaded, 
  it is set to a default value.  See help(ll) for more details. This
  was suggested by Tim Beissbarth, German Cancer Research Center.
o BUG FIX: showHistory() for the Package class was calling itself.
o BUG FIX: Compiling Rdoc comments with invalid keyword tags would
  generate an internal error.  Same for invalid visibility tags etc.

Version: 1.1.4 [2006-02-18]
o Now the Rdoc compiler also escapes Rd filenames for @see and
  @seemethod tags.

Version: 1.1.3 [2006-02-09]
o Removed all usage of NULL environments since they are now
  deprecated in R v2.3.0.
o Added getChangeLog() and showChangeLog() to the Package class.  
  The get- and showHistory(), which are to be made deprecated in
  the future, are now wrappers for these two methods.
o Added Rdoc tag @RdocPackage to generate <pkg>-package.Rd files.
o Now the Rdoc compiler makes sure that the generated Rd files 
  all starts with a letter or a digit.  If not, it adds a 
  default prefix (currently "000").  If not, the new R v2.3.0
  R CMD check may complaint about missing objects.
o Now '...' is added explicitly to setMethodS3() in all Rd examples.

Version: 1.1.2 [2006-01-06]
o Added Rd links to classes listed under "Directly known subclasses:".

Version: 1.1.1 [2005-11-23]
o Added validation of arguments in replacement functions.
o Added RCC validation of arguments in 'picky' methods, e.g. $()".
o BUG FIX: The "$<-" function goes through alternatives where to save
  the new value, e.g. set<Name>(), <name> field, static <name> field etc.
  When a "match" found and the value was assigned, it did not return
  (except for the set<Name>() match), but instead contiued search for
  the rest.  One effect of this was that the new value was always assign
  to the static field too.  The fix make the code run faster too. 
  Thanks Edouard Duchesnay at Service Hospitalier Frdric Joliot, 
  Commissariat  l'Energie Atomique, France for spotting this.  

Version: 1.1.0 [2005-07-18]
o BUG FIX: Rdoc$compile() sometimes generated the error "invalid regular
  expression '\name{[^\}]*}'" (forgot to escape '{' and '}'). Fixed.
  Thanks Lorenz Wernisch, School of Crystallography, University of London 
  of reporting this.
o BUG FIX: getDetails() in Class would list private and protected methods 
  as public.
o BUG FIX: Argument 'enforceRCC' of setMethodS3() was not passed to 
  setGenericS3().
o Added a section on "Defining static fields" to the help page of Object.
o Added argument 'replaceNewline' to getDescription() of Package.
o Now as.character() of Package reports the title, the license, and the
  description, but no longer if the package is part of a bundle. The
  latter was too slow since it had to scan all installed packages.
o Now print() of Class passes '...' to getDetails(), that is, now 
  print(Class, private=TRUE) will work too.
o Added attachLocally() to the Object class.
o Added extend.default(), which can be used to extend any type of object.
o Now pure Object:s are also finalized.  Before only subclasses defined
  via extend(<Object>, "<SubClass>", ...) was finalized.  This was not a
  big deal, because the finalize():er of the Object class is empty anyway.

Version: 1.0.5 [2005-06-03]
o Now the static load() method in Object asserts that the loaded Object
  inherits from the class that the static object, which is used to call
  load(), is of.  Thus, Object$load(...) will load all Object:s, whereas
  MyClass$load(...) will only load objects inheriting from MyClass.
o Rdoc compiler: 
  - Now an RdocMethod tag will not add keyword 'internal' if the class
    starts with a lower case, e.g. 'matrix'.
  - A '@keyword foo' can now be removed with '@keyword -foo'. Order
    is irrelevant, since @keyword:s are added at the very end.

Version: 1.0.4 [2005-05-02]
o Added getDevelUrl() to the Package class.

Version: 1.0.3 [2005-02-28]
o Argument 'appendVarArgs' of setMethodS3() is now ignored if
  a replacement function (named "nnn<-") is defined.

Version: 1.0.2 [2005-02-25]
o setMethodS3(..., abstract=TRUE) generated warnings of type
  "using .GlobalEnv instead of package:<pkg>". Found a way 
  (ad hoc?) to get rid of them. See source code for details.
  This should remove similar warnings from packages loading R.oo.

Version: 1.0.1 [2005-02-20]
o Package now outputs "See ?R.oo for help" when loaded.
o Now using three-digit version numbers, e.g. a.b.c where
  a,b,c in 0,1,...,9. 'a' is updated for major updates, 
  'b' for minor updates and 'c' is for minor revisions.
o Removed require(methods) for R v2.0.0 and above.
o setMethodS3(..., abstract=TRUE) now defines abstract methods
  with '...' as the only argument(s).

Version: 1.00 [2005-02-15]
o Moved to CRAN.

Version: 0.70 [2005-02-15]
o Package now passes R CMD check on R v2.1.0 devel without warnings.
o Added appendVarArgs=TRUE to setMethodS3(), which specifies that
  '...' should be added, if missing.
o Add argument '...' to all methods to make it even more consistent
  with any generic function. This is also done for a few methods
  in the R base packages.


Version: 0.69 [2005-02-11]
o Package now passes R CMD check on R v2.1.0 devel also.
  Had do modify a few lines of code to meet the new stricter regular
  expression patterns.
o Renamed get- & showDescription() to get- & showDescriptionFile() and
  added getDescription() to get the 'Description' field of DESCRIPTION.
o Moving away from trycatch() in favor of tryCatch(). 
  trycatch() remains for a while, but will be made deprecated
  in future version and later probably defunct.
o Added an example to setMethodS3() that is not using Object().

Version: 0.68 [2005-02-09]
o By default, now Rdoc$compile() runs Rdoc$check() at the end.
o Rdoc: Added a first simple test for undefined top-level tags in 
  the generated Rd code. Utilizes tools::Rd_parse(), which might 
  be renamed etc. according to its help page.
o Tag-variables such as @author now search for value in options() too.

Version: 0.67 [2004-10-23]
o BUG FIX: getRdMethods() in Class returned empty \tabular{rll}{} 
  if no methods exist, but this gives an error in R CMD Rdconv.

Version: 0.66 [2004-10-21]
o When using setMethodS3(..., abstract=TRUE) in a package that
  uses lazy loading, which all new packages do by default,
  warnings like "using .GlobalEnv instead of package:utils" will
  be generated the first time the abstract method is accessed.
  This is because eval() is used to create the abstract method;
  we are looking for a way that will not generate these warnings,
  although they are not serious. 
  Example: library(R.colors); print(getColorSpace.Color)
o Made the package compatible with R v2.0.0 too. Had to move example
  file 'Exception.R' from data/ to inst/misc/ and update the help
  example for Rdoc. Update the example of unload() for the Package
  class to load the 'boot' package instead of obsolete 'ts'.
o Added help to more methods.
o Added getEnvironment() to the Package class.
o BUG FIX: Rdoc tags was not be parsed by the Rdoc compiler for 
  deprecated methods.

Version: 0.65 [2004-06-27]
o Substantially improved the loading of all my packages. The Package()
  constructor, which was called when a new package was loaded, was slow
  unnecessarily slow because of an internal call to  installed.packages().
o BUG FIX: getInternalAddress() for class Object was "too" hard coded
  making it not work correctly on for instance Suse Linux. Assumed fixed
  positions of the hexadecimal address of the environment. Now a gsub()
  with a backreference is used. Should be more safe. 
o Added known generic function 'as.vector()'.
o Added documentation to many methods.

Version: 0.64 [2004-04-21]
o Fixed deprecated warning about package.description() that 
  occured R v1.9.0 such that the code still works for older 
  versions of R. This was needed for the Package class.

Version: 0.63 [2004-03-03]
o To anyone using setClassS3(), please use setConstructorS3() instead;
  setClassS3() is deprecated and will be phased out soon!
o Updated trycatch() (and the Exception class) to work with R v1.8.1. 
  If running R v1.8.1, then tryCatch() is used internally. For R v1.7.1
  and before the old trycatch() is used, which will be made deprecated
  later on. Added a throw() for the error class too for rethrowing errors.
o Update the Rdoc compiler to generate correct \name and \alias Rd tags.
o BUG FIX: Package class - from R v1.8.1 we noted that R CMD check made
  installed.packages() return multiple matches of the same package. This
  might have been a problem before too, but R CMD check never complained.

Version: 0.62 [2003-12-31]
o Added an "about" section in the documentation.
o Added showDescription(), getHistory(), showHistory(), getHowToCite()
  and showHowToCite() to the Package class.
o BUG FIX: For some Rdoc types the \keyword{} statement was placed on
  the same line as the previous Rd statement. This sometimes generated
  cluttered Rd index files.

Version: 0.61 [2003-12-16]
o Package: update() does now also reload the updated package by default.
o Exception: Now the throw() method includes the complete stacktrace
  too when generating a error signal. In other words, the user will
  automatically see the stacktrace of the error if the error is not
  caught. Same for stop().
o Rdoc: Added the tag @RdocDocumentation for general documentation.

Version: 0.60 [2003-10-28]
o BUG FIX: "$<-.Class" was incorrectly returning the static object
  instead of itself.
o BUG FIX: The way "$.Object", "$<-.Object", "$.Class" and "$<-.Class" 
  were checking if an attribute exists was not done correctly. Now they
  get the list of names of the attributes and compares to that.
o Added argument 'compress=TRUE' to Object's save() to make it more 
  explicit that compression is supported too. Compression is supported
  by all R systems since R v1.5.0. See ?capabilities.
o BUG FIX: If Object's save() was called with a connection it would
  still interpret it as a filename.
o Now Rdoc tries to create the 'man/' (destPath) directory if missing.

Version: 0.59 [2003-09-19]
o BUG FIX: getMethods() was not sensitive to 'deprecated=TRUE'.
o Rdoc updates: The Rdoc compile does no long list deprecated methods
  by default.

Version: 0.58 [2003-09-03]
o BUG FIX: dimension() would not always be found if ll() was called on
  another package, e.g. ll(envir="methods").

Version: 0.57 [2003-07-18]
o Added Rdoc comments saying that the constructor function must be able
  to be called without any arguments! Thanks Nathan Whitehouse at
  Baylor College of Medicine, Houston for making me aware of the
  missing documentation.
o Rdoc$compile() generated an InternalException when a class
  was not found saying "Not a class". Now it throws an RdocException
  and is more specific saying that the class does not exists.
  Updated the Rdoc comments saying pointing out that the classes and
  methods have to be loaded before calling Rdoc$compile().
  Again, thanks Nathan.

Version: 0.56 [2003-07-07]
o BUG FIX: Forgot to escape '%' in \usage{} in Rdoc, which lead to 
  unbalanced curly brackets when R CMD check * ran.

Version: 0.55 [2003-05-14]
o Slight improvement in the internal generation of get<Name> and set<Name>, 
  which is done by using substr()<-.

Version: 0.54 [2003-05-03]
o Now the Rdoc compiler generates the correct \synopsis and \usage pairs.
  Before they were added either or, but that was a mistake by me. \synopsis
  should be *added* whenever the the \usage statement is not complete.
o BUG FIX: update() of Package did not work. Did by mistake add a package
  argument to update.packages() too. That argument is only used in 
  install.packages though.

Version: 0.54 [2003-04-29]
o Added argument force=FALSE to update() in the Package class.

Version: 0.53 [2003-04-28]
o R.oo: The Rdoc compiler was further improved and made more flexible.
  I am aiming to make it possible for the user to define their own simple
  tags.
o All Rd files are now making use of \link[pkg:name]{label} for refering
  to methods not named according to the label. This is for instance the
  case with all class specific methods. More over, all Rd files for 
  classes has \keyword{classes} and the \usage{} is used where it works
  and otherwise \synopsis{} is used (as recommended on the R help pages).
  All this is automatically taken care of by the Rdoc compiler.

Version: 0.52 [2003-04-23]
o Added almost all missing help pages, i.e. I wrote up *a lot* of Rd
  files. More help is still though for the Rdoc class, which compiles
  Rdoc comments in the source files into Rd files. However, if you want 
  to use Rdoc$compile() already now, see the source files for plenty
  of examples and just run Rdoc$compile() in the same directory.
o Added getDocPath(), update() and unload() to the Package class. With
  update() it is now possible to update a package or its bundle by just 
  typing update(R.oo).
o Added showAndAsk() to the Exception. It will, if tcltk is installed, 
  display a dialog box with the error message. If tcltk is not installed, 
  The message will be printed on the command line and a prompt requesting 
  the user to press enter will be shown. showAndAsk() will give an error 
  if run in a non-interactive mode.
o Spell correction: "c.f." -> "cf."
o BUG FIX: getStaticInstance() of class Class did not recover correctly 
  if static instance was missing.

Version: 0.51 [2003-01-17]
o Added getUrl(), getMaintainer(), getAuthor(), getTitle(), getLicense()
  and getBundle(). Made the output from as.character() more informative.
o Added a caching feature of "$"() to speed up access to members. The 
  first time a member (field, virtual field, static field, method etc) is
  accessed it is done by looking it up one at the time and taking the
  first existing one (in a predefined order). The second time the same
  field is accessed, the name is remembered and "$"() access the right
  member directly. If this works out, "$<-"() will get a similar cache.

Version: 0.50 [2002-12-20]
o Updated try(), which a slight modification to the base::try() for 
  improved exception handling, to have its own internal restart() 
  function (just like base::try()), because restart() has been made
  deprecated from R v1.6.0. This is how the try() in the base package 
  does it.

Version: 0.49 [2002-12-15]
o Added the finalizer method finalize(), which any subclass can override
  and that will be called by the garbage collector just before an object
  is about to be removed from the memory.
o Added default function for equals().
o Added argument 'overwrite=TRUE' and 'conflict=c("error", "warning",
  "quiet")' to setMethodS3().
o COMPATIBILITY FIX: Removed default getClass(), because it was not would
  not work with the methods package.
o Now extend() in class Object removes duplicated class attributes.
o Now it is possible to create methods (also generic) with one (or several) 
  . (period) as a prefix of the name. Such a method should be considered
  private in the same manner as fields with a period are private.
o Added argument 'path=NULL' to save() and load() in class Object. It 
  will remove the need using paste() etc.
o For ll(), replaced "getClass" with "data.class" in the 'properties' 
  argument. Since 'data.class' is almost the same as 'mode', mode was
  also removed.
o SPELL CHECK: "...name name..." in one of setGenericS3()'s error messages.
  Thanks Gordon Smyth, WEHI, Melbourne, for the comment.
o Removed deprecated and obsolete is.interface().
o BUG FIX: The Rdoc class listed too many methods in the "Methods inherited"
# section.
Version: 0.48 [2002-11-23]
o Renamed setClassS3() to setConstructorS3(), since this is what it is
  actually doing. Keeping setClassS3() for backward compatibility but made
  it deprecated.
o Updated setGenericS3() to *always* create generic functions with no
  arguments except "..." to follow the RCC.
o Now $() and $<-() in class Object and Class also gets and sets attribute
  values too, respectively.
o BUG FIX: $<-() of class Class did not work for static fields.
o Added getInstanciationTime(), which returns the time point when the
  object was created.
o BUG FIX: getDetails() would not add a newline after the class name if the
  class did not have a superclass, i.e. for root class Object.
o Updated getField() of class Class to call generic method getField()
  and not getField.Object().

Version: 0.47 [2002-10-23]
o Package named Rx.oo as long as it is a beta package.
o Decided to declare all Rd files for class methods as \keyword{internal}
  which means that they will not show up in the HTML table of contents.
  Only classes and stand-alone functions should be there.
o The package now contains the public classes Object, Exception, 
  RccViolationException. It also contains the internal classes Class,
  Package and Rdoc. The class Class is essential, but Package and Rdoc
  are just utility classes containing useful static methods for development
  purposes etc.
o The idea behind the Rx.oo package are the same as behind "old" R.oo,
  but internally environments are used for emulating references, whereas in
  R.oo a global so called object space was used. However, API-wise not much
  have been changed.
o FYI: R.oo was first published in March 2001 and has undergone several 
  updates, tests and bug fixes. Experience from that project has been
  brought into this package.

Version: 0.46 [2002-10-14]
o Added trial versions of extend() of class Object and class Reference.
  Also added trial version of superMethodS3() to replace faulty NextMethod().
o Added as.Reference() to class Object and class Reference and made the
  constructor accept Reference objects by just returning them again. Before
  an exception was thrown.
o Added argument 'showDeprecated=FALSE' to classinfo() in class Class. This
  has the effected that when typing a name of a class and pressing enter
  at the prompt to display class information, deprecated method are *not*
  shown by default.
o Added the class Class for dealing with static methods, static fields, 
  accessing methods and fields of classes, generating class information etc.
  Since the handling of static methods and fields are now dealt by a specific
  class it means that the access of non-static methods and fields, which
  is done by the Object class, should now be a bit faster due to less 
  overhead.

Version: 0.45 [2002-09-23]
o BUG FIX: setGenericS3() would sometimes believe that a non-function object
  actually was a function and tried to set it as a generic function, which
  resulted in an error exception. 
o Internal updates: Made .ObjectSpace.count an internal variable of 
  the .ObjectSpace environment, meaning that it is harder to delete
  it by mistake.
o relibrary(R.oo) was reloading the .RObjectSpace file too, which is not
  a wanted feature.
o BUG FIX: createClassS3() would throw an error exception if there where
  two packages *loaded* such the name of the first one was the same as the
  beginning of the name of the second one, e.g. R.oo and R.oo2.
o Added internal function getPackagePosition().

Version: 0.44 [2002-09-12]
o Added the functions Q() and Quit() for quiting with the option to save
  the ObjectSpace also.
o Added isGenericS3() and isGenericS4().
o If trying to use delete() to remove a non-existing variable or Object now
  only a warning() is given, before an exception was thrown which was quite
  annoying. delete() works as rm() plus it also deletes objects in 
  ObjectSpace, which means that all calls to rm() can be replaced by calls
  to delete().
o Added the static methods ObjectSpace$save() and ObjectSpace$load() to
  save and load an image of the ObjectSpace.
o BUG FIX: "[[" in class Reference did not work for numeric indices, e.g. 
  ref[[5]]. Strange that I haven't noticed this before.
o Package passes the R CMD check with 5 warnings.

Version: 0.43 [2002-07-09]
o Now "$" and "[[" also searches for fields in attributes(). This is a first
  step towards making use of structure() and friends instead. I've been
  thinking about this from the very beginning, but newer done it. The
  plan is to move away from the internal list() and accept any [R] object
  as the core object. This will also be more consistent with the
  R.methods/S4 strategy.

Version: 0.42 [2002-05-31]
o Removed forgotten debug messages in setGenericS3().

Version: 0.41 [2002-05-26]
o Package now passes the R CMD check with 5 warnings.
o Moved about() from R.base to this package and removed old description().
o Now the package reports its name, version and date if it was succesfully
  loaded.
o Minimized the number of warnings when loading packages.
o Added argument dontWarn to setGenericS3(), which by default is set so
  no warnings are produced for renamed methods in the base package.
o Copied packagePaths() from package R.base to package R.oo, since it
  is required in R.oo and we do not want R.oo to depend on R.base.

Version: 0.40 [2002-05-05]
o BUG FIX: trycatch() didn't with methods created by setMethodS3(). This
  was due to I did (internally)
     object <- try(eval(substitute(object, envir=envir)))
  instead of
     object <- try(eval(substitute(object), envir=envir))
  Hmm, a tricky typo to find since it worked elsewhere.
o The classes Throwable and Exception have been transfer to here from
  the R.lang package. With the trycatch() they are really useful. 
o throw() and trycatch() are now available in both R.base and R.oo.
o Added createClassS3() and internal variable .NewClassesNotCreated.
o "$.Object"() and "$.Reference"() now returns NULL if a field/method etc
  is not found! Before it an error was thrown.
o BUG FIX: Tiny bug fix in message of throw() clause in "$"().

Version: 0.39 [2002-04-21]
o Added a trial version of "[.Reference". Currently, it does not support
  the get<Field name>() idea as described below.
  Maybe a "[<-.Reference" will be added later.
o Added trial version of a new feature for Object/Reference fields. Now,
  if a field does not exists and there is no method with the same name,
  then, if a method named "get<Field name>()" exists, the value of
  get<Field name>(<object>) is returned. This way one can have fields that
  are generated "on the fly" to save memory etc. This new feature required
  that "[[".Object was modified (actually created).
  Example: For an object 'obj' one can get its class by either the 
  classical getClass(obj) or by the new feature obj$Class.
  If this new feature are successful, I will also look at implementing a
  corresponding set<field name>() support.
o BUG FIX: setGenericS3() gave an error if one tried to set a generic
  function with the same name as an [R] object that was *not* a function.
  A simple add of argument mode="function" to the exists() check fixed this.

Version: 0.38 [2002-04-02]
o BUG FIX: clone() in class Reference did not work properly; it gave the 
  wrong internal reference names, which in turn would generate errors such
  as 'Error in get(x, envir, mode, inherits) : variable "Reference.METHODS" 
  was not found' when one tried object$foo() instead of foo(object). Now
  it works again.

Version: 0.37 [2002-03-30]
o IMPROVEMENT: Since library(methods) might be loaded after library(R.oo)
  the function extends() breaks down. Worked this out a little bit by
  detaching and reloading R.oo in function createClass() if it is detected
  that extends() has changed.
o IMPROVEMENT: Forces extends <- function(...) UseMethod("extends")
  The reason for doing this is that if we have anything but '...' that
  argument might be matched by an attribute. Not good!

Version: 0.36 [2002-03-06]
o BUG FIX: When running the OO garbage collector, calling a finalize()
  that used the method super() failed with an exception. Internally,
  the class attributes of the freeable references were lost.
o BUG FIX: extends() and implements() in Rdoc sometime gave errors.
o Added names() to the class Reference.

Version: 0.35 [2002-03-03]
o Added the methods attach() and detach() which works both on
  Object's and Reference's.

Version: 0.34 [2002-02-27]
o Renamed the (still) internal class .Reference to Reference.
o Added the setInterfaceS3() method. Makes it easier to define interfaces.
o Update the examples in the help files to make use of the new
  setClassS3, setInterfaceS3 and setMethodS3.
o Static method buildClass() in class Rdoc now also creates a list of
  methods and saves the result in the file <class>.methods.Rdoc, which
  can be included in the Rdoc comments by @include "<class>.methods.Rdoc".
  Hopefully, this will mean that the list of methods in the help files
  will be more up to date.
o Declared more internal methods as "private".
o BUG FIX: Internal scanForMethods() did not make a difference of functions
  and non-functions, since it basically only looked at the name. For 
  instance would CONST.Foo <- 256 be considered a method in previous 
  versions. This was not a big deal, but it is correct now.

Version: 0.33 [2002-02-26]
o BUG FIX: buildClass() in class Rdoc did not work due to the new
  package "methods". Corrected with one line of code.

Version: 0.32 [2002-01-29]
o Added the arguments 'trial', 'deprecated', 'static', 'protection'
  and 'abstract' to setMethodS3 (and to some extend also to setClassS3).
o Started to make more use of setClassS3 and setMethodS3 internally.

Version: 0.31 [2002-01-21]
o Added createGeneric() to make life easier for class developers.

Version: 0.30 [2002-01-18]
o Added the (optional) argument 'path=NULL' to loadObject().

Version: 0.29 [2002-01-13]
o Bug fix in gco(). [R] v1.4.0 made it crash.
o When obj$foo is evaluated first the field "foo" is searched for and
  secondly the class method "foo" is searched for. Previously, methods
  had higher priority than fields.

Version: 0.28 [2002-01-09]
o Made R.oo compatible with new [R] v1.4.0 and the new package "methods".

Version: 0.27 [2002-01-02]
o Internally renamed the methods, e.g. new(), getClass() and extends(), 
  that conflicted with methods defined in the new [R] package "methods".
  Hopefully these changes makes "methods" run when R.classes is loaded.
o Starting to seperate Object methods and .Reference methods. Eventually
  maybe R.oo Object's could work very similar to "methods" object where
  .Reference is just an add-on to make the Object's referensable.

Version: 0.26 [2001-12-29]
o First steps to make R.classes work *together* with the new library
  "methods". These fixes made R.classes work when "methods" was loaded,
  but "methods" didn't work when R.classes was loaded.
o This version was never released to the public.

Version: 0.25 [2001-08-09]
o Added super(), which provides a simple way to access methods in the 
  super class.

Version: 0.24 [2001-08-07]
o Improved the speed of the garbage collector and it can now also run
  until no more objects are deleted.
o Added support for 'this[[field]]' and 'this[[field]] <- value' when
  this is a reference. Another step away from get- and putObject().
o Introduced the modifers() function instead of old attr(...).
o Updated many of the out-of-date examples in the help pages.

Version: 0.23 [2001-08-04]
o Major break-through in memory and speed efficiency. A lot of expressions
  are now evaluated directly in the object space environment, which means
  that no copying between the object space and the current environment is
  needed. This improvement makes the need for getObject() and setObject()
  much less of interest and they will probably be made obsolete or private,
  which is another step towards a more user friendly oo core.

Version: 0.22 [2001-08-03]
o Improved the error and warning messages for false references.
o delete() can now remove any number of any kind of objects, i.e.
  it is now more consistent to rm().
o Created this HISTORY file. Everything below is recreated from
  from this date and is therefore not complete.

Version: 0.21 [2001-07-29]

Version: 0.20 [2001-07-27]

Version: 0.19 [2001-07-06]
o Renamed the package to R.oo (from com.braju.oo).

Version: 0.15 [2001-05-06]

Version: 0.14 [2001-04-30]
o Bug fixes in garbage collection algorithm.

Version: 0.13 [2001-04-15]
o Now it is possible to add new fields to an object. Even though this
  is not true oo-style, it certainly is helpful. Also, fields (not 
  methods) can be assign new values using regular style 
  'foo$value <- bar', where 'foo' is either the object itself or more
  common the reference to the object.

Version: 0.12 [2001-04-13]
o Now objects "physically" contains only the fields. The methods are
  looked up in an internal static class. Also, by writing the name of
  a class, information about the class is listed.
 
Version: 0.11 [2001-04-11]

Version: 0.10 [2001-04-04]
o Support for static classes. Static methods in static classes can be
  called by 'Foo$myStaticMethod()'. For class developers: a static class
  is created by 'new(Foo(), static=TRUE)' which will not return a
  reference. A static class is only living on object space.

Version: 0.9 [2001-04-02]
o Support for static methods. A static method is declared as 
  'myStatic = METHOD+STATIC' and implemented as 
  'myStatic.myClass <- function(arg1, arg2, ...)'. Note that there
  is no 'this' argument to static classes.

Version: 0.8 [2001-04-01]
o Totally changed the declaration of methods in a class. Previously, 
  one wrote 'myFcn = function() NULL' and now one writes 
  'myFcn = METHOD' where 'METHOD' is predefined constant. This
  allows fields in a class to also contain functions, i.e.
  'myField = sqrt(x)', which was not possible in previous versions.

Version: 0.5 [2001-03-27]
o This is the first public release.

Version: 0.2 [2001-03-16]

Version: 0.1 [2001-03-12]
o The very first version.

Version: 0.0 [2001-03-10]
o The very first attempt to create an object-oriented core for [R].
  At this moment I was a beginner in [R].
