1 / 12

Rene Brun 2 May 2005

Rene Brun 2 May 2005. Introduction to the CINT/Reflex workshop. History. 1991: Masa starts development of CINT 1995: Masa presents CINT at CERN 1996: ROOT chooses CINT 1997  Development of rootcint , an extension of makecint , generating the I/O functions and Streamers.

cbauman
Download Presentation

Rene Brun 2 May 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rene Brun 2 May 2005 Introduction to theCINT/Reflex workshop

  2. History • 1991: Masa starts development of CINT • 1995: Masa presents CINT at CERN • 1996: ROOT chooses CINT • 1997 Development of rootcint, an extension of makecint, generating the I/O functions and Streamers. • 2002: LCG chooses to start from scratch with gccxml and lcgdict, SEAL and POOL. • 2003: LCG review recommends convergence between dictionaries. • 2004: Development of Reflex starts. Masa starts a major upgrade of CINT version 6. Pyroot by Wim & Pere • 2005: April: New LCG review supports merge of SEAL and ROOT. • 2005: May workshop

  3. Makecint (since CINT early days) Generates stub functions such that compiled code can be called from interpreted code. CINT DS CINT API X.h makecint CINT XDictcint.cxx

  4. Rootcint (1996) rootcint extends makecint to generate the I/O functions and ShowMembers ROOT meta classes get information from CINT. They contain additional info useful for the I/O and schema evolution. Root meta C++ CINT DS ROOT CINT API X.h rootcint CINT XDictcint.cxx

  5. ROOT and CINT development model • Masa develops CINT as a standalone system with his own code management system. • Every week, cint.tar.gz is sent to CERN and untared in $ROOTSYS/cint • ROOT is a major customer for CINT • But many people using CINT outside ROOT. • We want to preserve this in the future

  6. Why lcgdict ? • In 2002 lcgdict & POOL started • because rootcint/makecint considered to be not powerful enough to parse LHC classes. • because multiple backends are considered, ROOT being only one. • gccxml considered as a robust parser • lcgdict : a python script converting xml code to c++

  7. lcgdict: before Reflex lcgdict API lcgdict XDictlcg.cxx lcgdict DS X.xml Root meta C++ POOL gccxml pylcgdict ROOT CINT API X.h CINT DS POOL uses lcgdict and fills ROOT/CINT structures only when the ROOT storage service is used pylcgdict is developed: python used to call LHC classes. CINT cannot be used for LHC classes.

  8. lcgdict: with Reflex Reflex API lcgdict XDictlcg.cxx Reflex DS X.xml Root meta C++ POOL gccxml pyreflex ROOT CINT API X.h CINT DS POOL uses lcgdict and fills ROOT/CINT structures only when the ROOT storage service is used pyreflex is developed: python used to call LHC classes. CINT cannot be used for LHC classes.

  9. Reflex and Cintex REFLEX API lcgdict XDictlcg.cxx REFLEX DS X.xml Root meta C++ cintex gccxml pyreflex CINT DS ROOT CINT API X.h CINT

  10. Dictionaries : situation today REFLEX API lcgdict XDictlcg.cxx REFLEX DS X.xml Root meta C++ cintex gccxml pyreflex CINT DS ROOT CINT API X.h pyroot rootcint XDictcint.cxx CINT

  11. Proposal • We are proposing to cooperate with Masa for the development of a new API and data structure supporting all the features of the current C++. • This package could be based on a merge of the existing Reflex system with the new version of CINT developed by Masa. • This new package will be distributed with CINT and usable with non-ROOT applications. • This new system will be discussed with the C++ standardization committee, such that the proposed new C++ features will be part of CINT as soon as they are agreed.

  12. Dictionaries : where we would like to go Python CINT Root meta C++ Reflex/Cint DS ROOT CINT/Reflex API new rootcint X.h XDictcint.cxx Gccxml2reflex/cint

More Related