Cint : C++ interpreter Frequently Asked Questions Digest 14 Oct 2002 at CERN Masaharu Goto.

Slides:



Advertisements
Similar presentations
Chapter 10 Code Optimization. A main goal is to achieve a better performance Front End Code Gen Intermediate Code source Code target Code user Machine-
Advertisements

Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
Exceptions, Templates, And The Standard Template Library (STL) Chapter 16.
Copyright © 2012 Pearson Education, Inc. Chapter 16: Exceptions, Templates, and the Standard Template Library (STL)
Status and Future of CINT Reflex as Reflection Database Object-Oriented CINT Multi-Threading Masaharu Goto, Agilent Philippe Canal, Fermilab Stefan Roiser,
Creating Computer Programs lesson 27. This lesson includes the following sections: What is a Computer Program? How Programs Solve Problems Two Approaches:
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering 3 October 2007.
WSN Simulation Template for OMNeT++
LAUNCHXL2-RM57L – Project 0
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
© 2004 The MathWorks, Inc. 1 MATLAB for C/C++ Programmers Support your C/C++ development using MATLAB’s prebuilt graphics functions and trusted numerics.
Topic #10: Optimization EE 456 – Compiling Techniques Prof. Carl Sable Fall 2003.
CINT Retrospect ROOT Workshop Mar 2013 Agilent Technologies Masaharu Goto.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
G.Sirri – INFN Bologna videconf Fiducial Mark Finding with ESS 1/6 VersionDateBinarySourceConfigNote zip same as 62 Recommended.
Review Security Hardening IPTables SELinux. Today Installations and updates – Rpm command and packages Apache “Issue Ownership”
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
EMSOFT’02 Silicomp Research Institute JCOD 1 JCOD A Lightweight Modular Compilation Technology For Embedded Java Bertrand Delsart :
Basics of Java IMPORTANT: Read Chap 1-6 of How to think like a… Lecture 3.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
16 October Reminder Types of Testing: Purpose  Functional testing  Usability testing  Conformance testing  Performance testing  Acceptance.
Controlling Execution Programming Right from the Start with Visual Basic.NET 1/e 8.
The Linux Operating System C. Blane Adcock Bryan Knehr Kevin Estep Jason Niesz.
Making Good Code AKA: So, You Wrote Some Code. Now What? Ray Haggerty July 23, 2015.
CINT C++ Interpreter update ROOT2001 at Fermi-Lab Masaharu Goto.
Installing CompuCell3D from source. Why you might want to install from source? 1.There are no binaries for your platform (e.g. gentoo linux) 2.You want.
A Technical Validation Module for the offline Auger-Lecce, 17 September 2009  Design  The SValidStore Module  Example  Scripting  Status.
INFSO-RI Enabling Grids for E-sciencE Strategy for gLite multi-platform support Author:Eamonn Kenny Meeting:SA3 All Hands Meeting.
Simulating the Nonlinear Schrodinger Equation using MATLAB with CUDA
Tao Ma Department of Electrical and Computer Engineering Mississippi State University gcc compatiblility October 19, 2006.
TAKE – A Derivation Rule Compiler for Java Jens Dietrich, Massey University Jochen Hiller, TopLogic Bastian Schenke, BTU Cottbus/REWERSE.
 Control Flow statements ◦ Selection statements ◦ Iteration statements ◦ Jump statements.
Chapter 3 Templates. Objective In Chapter 3, we will discuss: The concept of a template Function templates Class templates vector and matrix classes Fancy.
Copyright © 2009 – Curt Hill Standard Template Library An Introduction.
Introduction to Computers Lesson 13A. home Computer Program A set of instructions or statements, also called code, to be carried out by the computer’s.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
Confirmed Status 1 STL - People are happier. More support is desirable. Script compiler - Made progress, but not quite there. Need more effort. Thread.
Analysis experience at GSIAF Marian Ivanov. HEP data analysis ● Typical HEP data analysis (physic analysis, calibration, alignment) and any statistical.
CSCI-383 Object-Oriented Programming & Design Lecture 30.
1 Software Project n Design and implement an assembly for SIC/XE The test data look like Figure 2.5. and are generated by MS Notepad. The possible OPCODE.
20 October 2005 LCG Generator Services monthly meeting, CERN Validation of GENSER & News on GENSER Alexander Toropin LCG Generator Services monthly meeting.
GNU Make Computer Organization II 1 © McQuain What is make ? make is a system utility for managing the build process (compilation/linking/etc).
Today… Preparation for doing Assignment 1. Invoking methods overview. Conditionals and Loops. Winter 2016CMPE212 - Prof. McLeod1.
Duke CPS Iterators: Patterns and STL l Access a container without knowing how it’s implemented ä libtapestry: first, isDone, next, current iterators.
What is New in Core Fons Rademakers 1. Library Reorganization Split off from libCore: libRIO libNet libMath (soon) These libraries are now loaded at run-
1 ENERGY 211 / CME 211 Lecture 14 October 22, 2008.
2001 ROOT Workshop The Summary. Content Most Requested Request already satisfied Build and Distribution Web Page Information and Documentation.
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
Python’s Modules Noah Black.
State of Testing Jason Kenny – ATS committer.
Play Framework: Introduction
James N. Bellinger University of Wisconsin at Madison 3-August-2011
Application Development Theory
Microsoft Connect /17/ :55 PM
Virtual Machine Emulator Tutorial
CMSC 341 Prof. Michael Neary
Gunter Folger Geant4 Genova Workshop 4-July-2001
C Programming Getting started Variables Basic C operators Conditionals
Creating Computer Programs
Advanced Programming in Java
Python Modules.
Perl Programming Dr Claire Lambert
Creating Computer Programs
Problem 1 Given n, calculate 2n
SPL – PS1 Introduction to C++.
Games Development 2 Entity / Architecture Review
Python Modules.
Presentation transcript:

Cint : C++ interpreter Frequently Asked Questions Digest 14 Oct 2002 at CERN Masaharu Goto

On going progress, bug fix Many activities since ROOT2001 –Change ID 1550 to 1723 ???

Frequently Asked Questions STL (dictionary generation) Optimization (bytecode) problems Multi-platform issues –Variable arguments –‘long long’ and ‘long double’ Basics of Cint (from non ROOT users) ???

How STL is implemented in CINT cint stllibdemo vector list deuqe map set algorithm. _vector.h _list.h _deuqe.h _map.h _set.h algo.h. vector list deuqe map set algorithm. prec_stldll_stl vector.dll list.dll deuqe.dll map.dll set.dll. #include Interpretation Dictionary generation Top level cintdlls are generated under this directory and moved to cint/stl/*.dll cintdlls stl makecint

Interpreting STL containers cint/stl/_[container].h are used Derived from 1994 HP implementation –No default arguments template class vector { }; Cint can only interpret simple examples of vector and list

STL dictionary generation Files under cint/lib/prec_stl are used Derived from 1997 ANSI/ISO C++ draft All kinds of STL containers can be compiled with makecint/rootcint –vector,list,deque,map,multimap,set,multiset,queue,stack,v alarray Many compilers have subtle deviation from the standard → #ifdef

STL progress Support new compilers (versions) –gcc 3.0, 3.1/3.2, RedHat 7.2 gcc 2.95 –Borland C++ compiler 5.5 –Intel C++ compiler More ANSI/ISO conformity –Along with new compiler support

STL suggestion Use compiled STL containers –With ROOT, install cintdlls Generic algorithms are interpreted –cint/stl/algo.h Report STL dictionary generation problems –Or, you could debug cint/lib/prec_stl/* by yourself

Optimization (bytecode) problems Class object instantiated in a loop for(int I=0;I<5;I++) { TXxxx a; } –Especially when if() statement is false in the 1 st iteration for(int I=0;I<5;I++) { if(I) TXxxx a; } On going bug fix –Bug fix in cint

Optimization suggestion Use –O0 (optimization off) if speed is not critical Use script compiler if performance is important : Thanks to Philippe Canal Use new/delete for class object if possible

Multi-platform issues There are not many multi-platform issues –Because Cint is made platform independent Few exceptions are –Variable arguments –‘long long’, ‘long double’ –STL (as explained previously) –64bit issues may be sometimes overlooked

Variable arguments Implementation of variable arguments in dictionary is highly platform dependent Progress –va_arg for HP-UX is supported This was the most difficult one Need to debug each platform in face –But, this is not easy Patience, patience, patience …

‘long long’, ‘long double’ Supported by wrapper class –class G__longlong, G__longdouble Supported as an optional DLL component –include/long.dll ← compiled in lib/longlong dir Why not supporting this as basic component of Cint? –Still seeing multi-platform issues. –Investigation needed

Thank you Send your message to Please include following information –Cint version 5.15.xx (different from ROOT version) –CPU, OS, compiler, compiler version