Skip to content
Snippets Groups Projects
  1. Mar 28, 2012
  2. Feb 22, 2012
  3. Feb 17, 2012
  4. Nov 17, 2011
  5. Nov 16, 2011
  6. Nov 11, 2011
  7. Nov 10, 2011
  8. Nov 09, 2011
  9. Oct 31, 2011
  10. Oct 24, 2011
  11. Oct 20, 2011
  12. Sep 21, 2011
  13. Jul 28, 2011
  14. Jul 19, 2011
  15. Jul 16, 2011
  16. Jul 15, 2011
  17. Jun 29, 2011
  18. Jun 22, 2011
  19. Jun 13, 2011
    • Philippe Canal's avatar
      From David Dagenhart: · 02d8d542
      Philippe Canal authored
      Implement an option to allow ROOT to use the LZMA compression
      algorithm to compress data instead of the ZLIB compression algorithm.
      LZMA compression typically results in smaller files, but takes more
      CPU time to compress data. To use the new feature, the external XZ
      package must be installed when ROOT is configured and built:
      
      Download 5.0.3 from here http://tukaani.org/xz/
      and make sure to configure with fPIC:
         ./configure CFLAGS='-fPIC'
      
      Then the client C++ code must call routines to explicitly request LZMA
      compression.
      
      ZLIB compression is still the default.
      
      Setting the Compression Level and Algorithm:
      
      There are three equivalent ways to set the compression level and 
      algorithm. For example, to set the compression to the LZMA algorithm
      and compression level 5.
      
      1. TFile f(filename, option, title);
         f.SetCompressionSettings(ROOT::CompressionSettings(ROOT::kLZMA, 5));
      
      OR
      
      2. TFile f(filename, option, title, ROOT::CompressionSettings(ROOT::kLZMA, 5));
      
      OR
      
      3. TFile f(filename, option, title);
         f.SetCompressionAlgorithm(ROOT::kLZMA);
         f.SetCompressionLevel(5);
      
      These methods work for TFile, TBranch, TMessage, TSocket, and TBufferXML. 
      The compression algorithm and level settings only affect compression of
      data after they have been set. TFile passes its settings to its branches 
      only at the time the branches are created. This can be overidden by 
      explicitly setting the level and algorithm for the branch. These classes 
      also have the following methods to access the algorithm and level for 
      compression.
      
         Int_t GetCompressionAlgorithm() const;
         Int_t GetCompressionLevel() const;
         Int_t GetCompressionSettings() const;
      
      If the compression level is set to 0, then no compression will be
      done. All of the currently supported algorithms allow the level to be
      set to any value from 1 to 9. The higher the level, the larger the
      compression factors will be (smaller compressed data size). The
      tradeoff is that for higher levels more CPU time is used for
      compression and possibly more memory. The ZLIB algorithm takes less
      CPU time during compression than the LZMA algorithm, but the LZMA
      algorithm usually delivers higher compression factors.
      
      The header file core/zip/inc/Compression.h declares the function
      "CompressionSettings" and the enumeration for the algorithms.
      Currently the following selections can be made for the algorithm:
      kZLIB (1), kLZMA (2), kOldCompressionAlgo (3), and kUseGlobalSetting
      (0). The last option refers to an older interface used to control the
      algorithm that is maintained for backward compatibility. The following
      function is defined in core/zip/inc/Bits.h and it set the global
      variable.
      
         R__SetZipMode(int algorithm)
      
      If the algorithm is set to kUseGlobalSetting (0), the global variable
      controls the algorithm for compression operations.  This is the
      default and the default value for the global variable is kZLIB.
      
      Note that the LZMA algorithm will only be available if the LZMA
      libraries from the XZ package were available when the ROOT executable
      being used was configured and built. If you are building ROOT and want
      LZMA then you must do something similar to the following if XZ is not
      already installed on your system.
      
        Download XZ version 5.0.3 from http://tukaani.org/xz/
        unwind the tarball
        cd xz-5.0.3
        ./configure CFLAGS='-fPIC'
        make
      
      ROOT was tested with version 5.0.3 of XZ.  It might work with earlier
      versions and will probably work with later versions of XZ.
      
      Then either use "make install" to put the library and headers into
      /usr/local/* so the scripts building ROOT can find them or use
      arguments to the ROOT configure script to point to the proper
      directories containing the XZ library and headers. These are the
      library and the included header (lzma.h includes other headers in the
      lzma subdirectory).
      
        src/liblzma/.libs/liblzma.a
        src/liblzma/api/lzma.h
      
      WARNING: Data compressed with the LZMA algorithm cannot be read by
      ROOT executables that were not built with LZMA support.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@39696 27541ba8-7e3a-0410-8455-c3a389f83636
      02d8d542
  20. May 26, 2011
    • Axel Naumann's avatar
      From Fons: · 1d40edc0
      Axel Naumann authored
      * remove editline directory if it still exists (e.g. out of source).
      * put textinput module in line with the other default ones.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@39414 27541ba8-7e3a-0410-8455-c3a389f83636
      1d40edc0
    • Axel Naumann's avatar
      Replace legacy clib/getline and editline by a new library, textinput, · 1977551b
      Axel Naumann authored
      located at core/textinput/src/textinput. That new library is written
      in C++, standalone (no external dependencies), cross platform
      including Windows, and contains only what we need - unlike
      e.g. editline. It implements almost all bash-like editing commands,
      color highlighting, history etc. It allows for multiple input objects
      and multiple display objects, e.g. GUI and terminal in parallel. It
      can be used as a stand-alone library, too, and will become part of
      cling - which explains the different license and file names (.cpp).
      
      core/textinputs/src/Getline* contains the adapters to ROOT; the
      previous core/editline/enhance.cxx is transformed to
      Getline_color.cxx. This new adapter interfaces with TTabCom directly,
      without going via an extern "C" function pointer, to allow for an
      ostream being passed that will contain all completion options, one per
      line. TApplication now defines a virtual function to be called for tab
      completion; TRint implements it using TTabCom.
      
      One major change is that the user input string is accessible as const
      char* instead of being a char* - the buffer length is unknown
      anyway. This caused changes in callers of Getline(); the history and
      the getline function types needed to change for CINT.
      
      --enable-editline has been deprecated and is inoperable.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@39402 27541ba8-7e3a-0410-8455-c3a389f83636
      1977551b
  21. May 20, 2011
  22. May 06, 2011
  23. Apr 14, 2011
  24. Apr 08, 2011
  25. Mar 15, 2011
Loading