Developer Guide Mines Paristech-Books Pdf

Developer Guide Mines ParisTech
24 May 2020 | 18 views | 0 downloads | 61 Pages | 662.90 KB

Share Pdf : Developer Guide Mines Paristech

Download and Preview : Developer Guide Mines Paristech


Report CopyRight/DMCA Form For : Developer Guide Mines Paristech



Transcription

1 Introduction 5,2 Getting PIPS sources 5,2 1 Directories overview 5. 2 2 Building PIPS 6,2 3 Important note 6,2 4 Compiling a specialized version of PIPS 6. 3 Developing environment 8, 3 1 Browsing and documenting the source files with Doxygen 8. 3 2 Developing with Eclipse 8,3 2 1 Workspace Project creation 8. 3 2 2 Missing includes 9,3 2 3 Benefits from Eclipse power 10.
3 2 4 Using team working plugin aka SVN GIT for Eclipse 12. 3 2 5 Building from Eclipse 12,3 3 Developing with the Emacs editor 12. 3 4 Using tags to index source files and to ease access in your text. 3 5 Using cscope to navigate source file 13,3 6 Developing PIPS under SVN 14. 3 6 1 PIPS development branches 14, 3 6 2 Developing in a branch Validate before merging 17. 3 6 3 Creating FULL branches or tags 18, 3 6 4 Understanding the Makefile infrastructure inside the SVN. infrastructure 18,3 7 The nomadic developer 19, 3 7 1 Keeping a local copy of PIPS repositories with svnsync 20.
3 7 2 The git svn gateway 20,3 7 3 The pips git script 22. 4 Coding style and conventions 22,5 Shell environment sh ksh bash csh tcsh 24. 5 1 PIPS architecture PIPS ARCH 24,5 2 ROOT variables 25. 6 PIPS Project directories 26,6 1 The pips directory 26. 6 1 1 The makes subdirectory 26,6 1 2 The src subdirectory 26.
6 1 3 The bin subdirectory 27,6 1 4 The etc subdirectory 27. 6 1 5 The share subdirectory 27,6 1 6 The doc subdirectory 27. 6 1 7 The html subdirectory 28,6 1 8 The runtime subdirectory 28. 6 1 9 The utils subdirectory 28,6 1 10 include 28,6 1 11 lib 28. 7 Makefiles 28,7 1 Global targets 29,7 2 Local targets 29.
7 3 Debugging 31,8 Validation 31,8 1 Validations 32. 8 2 Validation Makefile 32,8 3 Validation output 33. 8 4 Validation scripts 33, 8 4 1 Writing test cases and their validation scripts 34. 8 5 Parallel Validation 36,8 5 1 Intra directory parallel validation 37. 8 5 2 Inter directory parallel validation 37,9 Debugging NewGen macros debug levels 38.
9 1 Debugging PIPS C Source Code for the Compiler 39. 9 2 Launching gdb 39,9 3 Debugging PIPS C Source Code Dynamically 39. 9 4 Debugging and NewGen 40,9 5 Debugging Memory Issues 43. 9 6 Debugging the internal representation in a browser IR Navigator 43. 10 Documentation 44,10 1 Source documentation 44,10 2 Web site 44. 11 Library internal organization 44,11 1 Libraries and data structures 45. 11 2 Library dependencies 45,11 3 Installation of a new phase or library 45.
11 3 1 In the src Libs directory 46,11 3 2 At the root directory 47. 11 3 3 In the src Libs mylib directory 47,11 3 4 In directory src Scripts env 47. 11 3 5 In directory src Documentation pipsmake 48,11 3 6 In directory src Libs pipsmake 49. 11 3 7 In directory src Passes 49,11 3 8 The final touch 49. 11 4 Dealing with a new resource 49,11 4 1 In directory src Documentation pipsmake 50.
11 4 2 In the directory src Libs pipsdbm 50,11 4 3 The final touch 50. 11 4 4 Remark 50, 11 5 Modification or addition of a new NewGen data structure 51. 11 6 Global variables modifications 51,11 7 Adding a new language input 52. 12 Common programming patterns in PIPS 52,12 1 Using NewGen iterators on the RI 52. 13 NewGen 53,13 1 XML DOOM backend 54,14 Development PIPS DEVEDIR 55.
14 1 Experiments 55,15 Linear library 55,16 Organization of a PIPS pass 55. 17 Bug policy 56,17 1 Bug detection 56,17 2 Bug correction 56. 17 2 0 1 Remark 57,17 3 The Validation directories 57. 17 4 Other validation 58,18 Miscellaneous 58,18 1 Changing the dynamic allocation library 59. 1 Introduction, This document aims at presenting PIPS development environment It is not.
linearly organized PIPS is made of several sometimes interdependent compo. nents This paper thus begins with a presentation of PIPS directories Then. the shell environment is described The next two chapters are devoted to two. external tools on which PIPS relies NewGen and the Linear library Section 7. will then present PIPS make file policy Sections 11 and 16 are devoted to PIPS. libraries and passes The next section briefly describes some conventions usu. ally respected when developing in PIPS The last two sections describe the bug. policy of PIPS and some save and restore information. This manual is not exhaustive You can add your own sections and update. existing ones if you find missing or erroneous information. The reader is supposed to be a PIPS user 3 and to have read the reports. about NewGen 1 2 A good understanding of pipsmake mechanisms would. also be helpful,2 Getting PIPS sources, The sources of NewGen Linear and Pips are managed under subversion svn. They are accessible from anywhere in the world by the http protocol at https. scm cri ensmp fr pips html,2 1 Directories overview. There are 5 repositories for the various files, nlpmake common makefiles for Newgen Linear and Pips. newgen Newgen software,linear Linear C3 mathematical libraries. pips PIPS software,validation Pips non regression tests.
There is also private validation directory on another server. The subversion repositories are organised in standard subdirectories as ad. vised for best subversion practices, trunk production version should be stable enough to pass the validation. branches development branches of all or part of the software for each de. veloper Developments are to be performed here and installed joined. merged once finished into trunk, tags tagged revisions Note these tags are not related with the tags described. in section 3 4,Moreover the pips repository includes. bundles group of softwares, bundles trunks convenient extraction at once of all the 3 softwares trunk. versions ready for compilation,2 2 Building PIPS, A crude script setup pips sh on the web site https scm cri ensmp fr.
svn nlpmake trunk makes setup pips sh and in pips trunk makes allows. to download polylib newgen linear and pips and to build a local installation. of the softwares For instance developer calvin can do the following to setup. its own PIPS environment,sh setup pips sh home temp MYPIPS calvin. sh source home temp MYPIPS pipsrc sh, Before you enjoy PIPS do not worry too much about the many error mes. sages that are displayed the header files are being recomputed from the C files. After a while C files should be compiled without errors. In order to rebuild only the PIPS infrastructure just type make into the. PIPS ROOT directory If something has gone wrong for instance because a. software component is missing or outdated it is advised to restart from scratch. by runing make unbuild before trying again, For more information about the PIPS Makefile infrastructure see Sec. tion 3 6 4,2 3 Important note,It is important to realize that. 1 PIPS build is much more efficiently if it is stored on local disks rather. than on remote directories accessed through the network e g via NFS. Hence the home temp directory choice in the above axample. 2 the local copy editions are not saved unless commits are performed. 3 in a standard development commits should not be made directly under. the trunk but rather in development branches see the next section. 4 on some Unises the tmp temporary directories may be cleaned on reboots. which can be triggered by power failures So you could try var tmp that. is usually not cleaned up during the boot phase,2 4 Compiling a specialized version of PIPS.
A specialized version of PIPS which contains only a subset of passes can be. built with the following procedure,For building a special PIPS foo version. First in src Documentation pipsmake create a basic ASCII foo conf. file which includes the list of passes that the specialized version of PIPS. must contain one pass name per line comment lines can be used. Note that this list must be exact other passes even if compiled in will. not be available,At the root of sources type,make PIPS SPECIAL foo compile. Alternatively the PIPS SPECIAL environment variable can be set in order. to work constantly on a specialized version of PIPS. PIPS executables are built with the libraries which contain the required. passes and their dependencies, For a very minimal example try with predefined configurations cmin or. fmin to generate a C or Fortran parser and prettyprinter. When running tpips version the name of the version is printed after. the string special, When PIPS is compiled with every passes the special name is full. The detailed of the specialized version generation are as follow. The compilation first generates from foo conf a new foo deps file which. for each phase associates its containing library This is done by the simple. pass2lib sh As this script relies on basic grep processing the phases. must be declared simply on one line to be found,bool my phase name const string module.
Then a foo libs is generated from both files with pass2libs pl the. script performs a transitive closure on library dependencies The depen. dencies are hardcoded within the script, Note that this dependencies are not that simple First some dependencies. may be hidden that is no include is used in the sources but there is a. direct extern declaration Second some libraries depend on another but. may be compiled without the dependence in some cases thanks to macros. This file is directly used both for defining the list a library to use and to. know the directories which must be explore when compiling PIPS libraries. so that only actually used libraries are compiled, From this file a new pips libs h file is also generated which defines. macros for each library which is included in the built. These macros are used to exclude some includes and functions when com. piling some libraries, The generated pipsmake rc phases h builder map h files only includes. passes defined in the foo conf file, The generated resources h and printable resources h files are not. filtered but currently includes all possible resources. 3 Developing environment, 3 1 Browsing and documenting the source files with Doxy.
To help digging into the sources Doxygen is used to generate an interactive on. line version of the sources that can be seen at http doxygen pips enstb. org PIPS graph The call and caller graphs are useful to figure out what are. the functions used and more subtly what are the functions that call a given. function if you need to verify a function is correctly used or you want to change. a function name, As an experimented user you may need to generate them again The. doxygen make target is propagated downwards down to the various doxygen. directories in the products NewGen Linear and PIPS. To push them on the WWW you can use a make doxygen publish if you. have the right access, The make target doxygen plain or doxygen graph can be used to gener. ate only a documentation without or with call and caller graphs Note that. generating the graph version for PIPS lasts several hours on a 2009 computer. Of course developers in PIPS should use the Doxygen syntax to have a more. useful documentation, Modules and submodules in Doxygen are quite useful to group related objects. and structure concepts in the documentation For an example have a look. to defgroup addtogroup and in newgen src genC genClib c and. the resulting module NewGen quick and intelligent recursion on objects visitor. pattern and its submodules in the documentation Be careful a title group. must be on the same line and cannot be split, A good practice should be to present main useful functions and concepts to. know by a PIPS programmer as modules and submodules. 3 2 Developing with Eclipse, Eclipse is a multi language software development environment comprising an.
integrated development environment IDE and an extensible plug in system. You have to use an eclipse installation with CDT plugin have a look at http. www eclipse org cdt to be able to use eclipse for C C development. 3 2 1 Workspace Project creation, In Eclipse you have workspace and project concept The latter is like a reposi. tory or a subtree of a source location In PIPS it can be a pass whole pips or. linear or newgen or all of them in one shot, A workspace is a set of projects that are usually related loaded in memory. and indexed while working For instance if you want Eclipse to provide some. navigation features in newgen source code while working on PIPS project you. need to have both project in the same workspace, The creation of a project in a workspace is easy and suppose that you already. have PIPS sources somewhere on you hard drive, First use menu File New Project or right click and contextual menu. as shown on the screenshot then give a project name uncheck the checkbox to. enable browsing an existing location and find your PIPS source directory Click. finish and you have now a fresh new PIPS project in Eclipse It may overload. your computer for a little while indexing the whole project you can see the. progression in the status bar down the Eclipse window Index can be rebuild at. any time using right click on project root, You should really repeat this operation for Newgen and Linear project.
3 2 2 Missing includes, Try to open some source files for instance src Libs chains chains c and scroll a. little You ll find some part of the underlined by Eclipse Eclipse ju. developer guide htdoc Warning if you use the HTML version and do some Warning if you use the HTML version and do some copy paste it has been noticed that some characters are changed such as the

Related Books

A Generic Architecture of CCSDS Low Density Parity Check

A Generic Architecture of CCSDS Low Density Parity Check

To cite this version Fabien Demangel Nicolas Fau Nicolas Drabik Fran ois Charot Christophe Wolinski A Generic Architecture of CCSDS Low Density Parity Check Decoder for Near Earth Applications Design Automation amp Test in Europe Conference amp Exhibition 2009 DATE 09 Apr 2009 Nice France pp 1242 1245 inria 00449731 A Generic Architecture of CCSDS Low Density Parity Check

Generic Prescribing Guidelines GMMMG

Generic Prescribing Guidelines GMMMG

use of generic medicines in a way that is less prescriptive and acceptable to patients recognising that there are still more cost savings to be made in this area 2 3 Presently if a specific brand name drug is prescribed in primary care a pharmacist is obliged to supply this even if an equivalent generic version is available

2003 Grand Cherokee

2003 Grand Cherokee

Grand Cherokee Overland 12 Grand Cherokee Limited 16 Grand Cherokee Laredo 20 Pick of the Pride 22 Specifications 23 Standard Optional Features Brilliant Black Grand Cherokee Overland Inca Gold Wrangler Rubicon and Cactus Green Liberty Renegade shown The Jeep legend began in earnest with the Willys MB a 4x4 so vital to the Allies cause in World War II that General Dwight D Eisenhower

KEEWAY 50cc Models

KEEWAY 50cc Models

These 50cc scooters are intended to fit the needs of a wide array of potential riders In order to remain familiar with the proper service procedures authorized technicians should periodically review this manual Please understand that this service manual acts as a general guide for KEEWAY s entire line of 50cc 2 stroke scooters Model

Workbook amp Awake Nations

Workbook amp Awake Nations

Lorem amp Ipsum amp 4 amp INTRODUCTION amp In our text we are introduced to the gifts and offices of the apostle prophet evangelist pastor and teacher also known as Five8Fold

The Teacher s Handbook Education

The Teacher s Handbook Education

The Teacher s Handbook 1 9 The teacher shall make reasonable effort to protect the pupil from conditions harmful to learning or to health and safety 1 10 The teacher shall not intentionally expose the pupils to embarrassment or disparagement 1 11 The teacher shall not use professional relationships with pupils for private advantage

BEST CHURCH PRACTICES Evangelistic and Newcomer Ministry

BEST CHURCH PRACTICES Evangelistic and Newcomer Ministry

evangelism methods an evangelism program in Spanish and checklists for newcomer and outreach events including Sunday and weekday follow ups Documents also provide ideas for invitation and welcome letters and

ST AFF MANUAL YWAM Kyiv

ST AFF MANUAL YWAM Kyiv

invite you over for tea and coffee and genuinely get to know you but also do the same in return We will do our best to make sure you are following God s heart and reaching your full potential while you are with us We have created a new staff packet that in cludes our YWAM Kyiv staff manual Although we have been communicating with you some things may have slipped through the dark holes

GC initiative Field Schools of Evangelism Training

GC initiative Field Schools of Evangelism Training

Evangelism Training for members 1 Lay Bible worker training programme Autumn 2008 2 LIFEdevelopment training February 2009 3 Amazing Facts training programme Resources Russell Burrill s manual on evangelism given to each pastor Ready made evangelistic series such as New Beginnings DVD designed for members to take from house to house to be made

LISTA DE PRECIOS Donuts

LISTA DE PRECIOS Donuts

LISTA DE PRECIOS C digo 02 Nombre PASTILLA DE FRENOS Marca Tech C digo Descripci n Und C M nima Bs 29 10 12 FF 7680 P F VITARA 01 04 DEL CAJA 10 00 77 00 FF 7688 P F HYUNDAI TUCSON 05 07 SANTA FE 01 08 SONA TA 99 06 KIA SPORTAGE