A revision of r-devel 2.4.0 is being committed today with changes to method and class management.
The changes are internal but extensive. All packages that use S4 methods and classes need to be reinstalled from source to use the new version. The main effects are to speed up method caching and dispatch, and to fix some problems with selecting inherited methods. The new design is also cleaner, so we can experiment more easily in the future with changes for efficiency or semantics. The change will mostly be noticeable in attaching packages with many methods. The CPU time for attaching package Matrix, for example, goes down by about a factor of 7 compared to R 2.3.1, timed on a Mac G5. The other major change is that now _all_ inherited methods are examined and one of the closest matches is chosen. The old selection took the first candidate found, so the current version is better defined, and will also let us experiment with various tuning & strategies. There is a draft paper describing method selection at http://developer.r-project.org/howMethodsWork.pdf (It's a document in progress, so go back in a few days for a revised version.) If a package uses inheritance for method selection with multiple arguments, there may well be changes in behavior. We found examples in both methods itself and in Matrix that needed attention. John ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel