dictionary

Dictionaries in CINT and cling

Hi,

Marcelo asked about how I see the future of dictionaries with cling, if we manage to replace CINT with cling. Given that many people probably don't know what those "dictionaries" really do, I decided to post it! I'll keep it as simple and short as possible.

Cling and Precompiled Headers

Open Questions

We are investigating the use of precompiled headers (PCH) as a replacement of CINT's (and ROOT's) current dictionaries. They contain far more information, all we would every want. Items to be studied are

CINT stub suppression statistics

Tests with traditional setup including stubs (i.e.

CINT stub suppression

Dictionary With Symbol-Based Function Calls

This is an experimental feature of the CINT dictionaries that allows CINT to call a function given the function's symbol, instead of a generated and compiled call wrapper. Since the wrappers do not have to be written, the dictionaries' source code is reduced in a significant way (close to 50%). This will also allow us, in the future, to store all the information about a function in a plain ROOT file instead of having it inside source code_/_object files.

This new feature has to be activated when configuring ROOT.

Generating Reflex Dictionaries

Selecting Types And Members

You can use selection files to tell genreflex what it should generate a dictionary for. If you do not use it, it will generate a dictionary for all types in the files passed at the command line, or when specifying --deep for all types it finds.

The selection file is passed to genreflex with the -s parameters like this: genreflex -s selection.xml header1.h header2.h. It is an XML file with the following structure:

Accessing Reflex Data

Please have a look at the (probably incorrect...) old page until it is updated and migrated. Sorry about that!

Reflex

Purpose

Reflex stores and handles reflection information (types, members, etc). It is written in C++. Its reflection catalog can be queried by a small set of simple API classes. See the chapter Accessing Reflex Data.

Syndicate content