Skip to content
Snippets Groups Projects
  1. Oct 19, 2012
  2. Oct 18, 2012
  3. Oct 17, 2012
  4. Oct 15, 2012
    • Vassil Vassilev's avatar
      Prepare cling for fixing bug #98146. In principle the bug could be fixed in 10 · adef192d
      Vassil Vassilev authored
      seconds, but I don't like where EvaluateInternal is going.
      At first place it shouldn't do any smart guessing what the transformers would do.
      Second it shouldn't try to attach expression evaluation (storing the result in 
      cling::Value) while preparing for value printing.
      
      To sum up:
      * Simplify the old craft in EvaluateInternal
        - Move the value printing logic into the value printer transformer. 
        - Move the expression evaluation login (mainly coming through the 
      Interpreter::evaluate interface) into separate transformer.
      * Attach the new transformer to the list of transformers (the size of it was 
      increased as well.)
      * Add new compilation option switch that the new transformer will react on.
      * Turn on the switch where necessary.
      * Simplify value printer logic. Now everything is at one place, which makes it
      simpler and easier to debug.
      * Make IncrementalParser::Parse to take compilation options' reference instead of
      constructing it's own.
      * As consequence of the new implementation - two bugs in the testsuite were 
      uncovered. Propose a fix for them.
      * Improve documentation.
      * TODO: There is some code duplication, which will be factored out soon.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@46549 27541ba8-7e3a-0410-8455-c3a389f83636
      adef192d
  5. Oct 05, 2012
    • Axel Naumann's avatar
      Add cling::StoredValueRef: a ref-counted value with automatic storage management. · 6857de82
      Axel Naumann authored
      Update Interpreter to use that instead of cling::Value.
      This fixes an issue where the called neded to guess the return type of the wrapper function, such that for instance Interpreter::Evaluate() has storage for the wrapper's aggregate SRet return value if needed.
      Instead, the Interpreter now allocates the proper storage for return values, and hands out references to it.
      StoredValueRef is tiny (8bytes on 64bit Linux); default allocation is cheap.
      
      Update TCintWithCling and friends; don't pass the returnValue in if the caller does not need it.
      TClingCallFunc: provide storage for fArgs.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@46334 27541ba8-7e3a-0410-8455-c3a389f83636
      6857de82
  6. Oct 03, 2012
  7. Sep 24, 2012
  8. Sep 05, 2012
Loading