Feature enhancement requests

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Mon Aug 16 1999 - 04:32:25 MEST


Hello ROOT Team,

Here is a small list, a wish list if you will, of some feature
enhancements that I wish ROOT would support.  These are features that,
as a ROOT user, would make my experience with ROOT more productive and
enjoyable.

Would you mind commenting on these please?  Perhaps you are already
working on implementing these features.  Or, perhaps you have
specifically chosen not to implement them.  Either way, knowing your
position on these features would be helpful.

  1) Put the ROOT libraries into a namepsace.

     Besides all of the other tremendous benefits of namespaces, this
     would also allow the ROOT community to more easily share source
     code.  It also allows for selectively replacing bits of the ROOT
     libraries with "fixed", "newer" or just "experimental"
     replacements.

  2) Instrument the ROOT libraries to optionally use exceptions.

     Keep the error reporting mechanism currently used by ROOT
     (i.e. procedural style return codes), but add an option (either
     compile time or run time) which enables the use of exceptions.

  3) Provide versioned interfaces to the ROOT libraries.

     This would provide guaranteed binary backward compatibility so that
     "old code" doesn't have to be recompiled with each new release of
     the ROOT libraries.  For those times when a version of ROOT wants
     or needs to break binary backward compatibility, then this action
     is guaranteed to be caught at link time, not at run time.

  4) Provide a ROOT testsuite in the ROOT distributions (for both the
     binary and source distributions).

     This testsuite would be different from the files in ROOT's
     "tutorials" and "test" subdirectories, although these files would
     be a good place to start.

     This testsuite should tell the user what is being tested for, what
     the user should expect from the test, and finally the results of
     the test.

     Users should be encouraged to run a "make check" before a "make
     install".  A table of testsuite results for specific configurations
     (e.g. hardware, OS, compiler, etc.) should be posted at the ROOT
     web site.

  5) Change the run-time "specify by character string" type resolution
     mechanism to a template based mechanism.

     For example, why not let a TTree dispatch on an object's type
     (using the compiler), instead of forcing the user to specify an
     objects type as a string?

I realize that some of these feature enhancements would take quite a bit
of work to implement.  However, they would make ROOT more robust, easier
to use, and more user friendly.

--
Matthew D. Langston
SLD, Stanford Linear Accelerator Center
langston@SLAC.Stanford.EDU



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:38 MET