(root)/trunk/ – Rev 50609
Rev 50608 |
Rev 50611 |
Go to most recent revision |
Last modification |
Compare with Previous |
View Log
| RSS feed
Last modification
- Rev 50609 2009-11-30 01:05:43
- Author: jmc
- Log message:
- Changes to fix efficiency in dispatch, potential recursive loops, and
incorrect signatures, all for S4 methods for primitive functions.
1. A bug in get_primitive_methods prevented all quick dispatch of primitives from
working. Fixing this exposed a problem in quickDispatch in methods
that prevented matching methods with traiiling "missing" in the
signature.
2. A mechanism was added to temporarily turn off all dispatch of methods for
primitives. The code for findInheritedMethods activates the
mechanism. At the moment, this is just for efficiency, but in
principle it could be needed to avoid recursive calls to
findInheritedMethods.
3. The signatures for "$" and "$<-" were modified to remove "name",
since the grammar prevents general objects for this argument.
Some additional changes were tested but not installed to allow a
general signature in methods for "[", "[[" and their replacement
versions. Problems found with the Matrix package for this change. See
the commented calls to DiispatchAnyOrEval in src/main.