Hi all, The "ls" function wears two hats. It allows users to inspect an environment interactively and also serves deeper in code as the accessor for an environment's names/keys. I propose that we separate these two conflicting goals, keeping ls for interactive use and adding names for a quick listing of the hash keys. This involves adding two lines to do_names in attrib.c.
The 'ls' function and its 'objects' synonym appear very frequently in performance-critical code like base/R/namespace.R and throughout the methods package. These functions are currently among the major contributors to execution time in package loading. This two-line addition to attrib.c gives a significant speedup for listing an environment's names/keys (2-60X depending on the 'sorted' argument). It also simplifies the environment API by making it more like the other basic types. We already have $ and [[ after all. Rather than sprinkling sorted=FALSE throughout the methods and base code, let's use names. Would you be open to this change? I have submitted a patch and some timings to the bug tracker as https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=16170 Regards, Pete ____________________ Peter M. Haverty, Ph.D. Genentech, Inc. phave...@gene.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel