{"id":21085849,"url":"https://github.com/zbeekman/pdtoolkit-fork","last_synced_at":"2025-03-14T05:21:29.713Z","repository":{"id":152719986,"uuid":"130234221","full_name":"zbeekman/pdtoolkit-fork","owner":"zbeekman","description":"Fork of pdtoolkit (AKA PDT) available from https://www.cs.uoregon.edu/research/pdt/downloads.php","archived":false,"fork":false,"pushed_at":"2018-04-23T22:13:21.000Z","size":3372,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T00:19:46.999Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zbeekman.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-19T15:12:30.000Z","updated_at":"2018-04-23T22:13:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"712dfb21-ef4b-4cdf-93bd-70adf61701e5","html_url":"https://github.com/zbeekman/pdtoolkit-fork","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Fpdtoolkit-fork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Fpdtoolkit-fork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Fpdtoolkit-fork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbeekman%2Fpdtoolkit-fork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zbeekman","download_url":"https://codeload.github.com/zbeekman/pdtoolkit-fork/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243527328,"owners_count":20305198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T20:36:52.203Z","updated_at":"2025-03-14T05:21:29.693Z","avatar_url":"https://github.com/zbeekman.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Program Database Toolkit (PDT)\nVersion 3.25\n\n=============================================================================\n\nDescription\n-----------\n\nThe Program Database Toolkit (PDT) is a tool infrastructure that provides\naccess to the high-level interface of source code for analysis tools and\napplications.  Currently, the toolkit consists of the C/C++ and Fortran 77/90/95\nIL (Intermediate Language) Analyzers, and DUCTAPE (C++ program Database \nUtilities and Conversion Tools APplication Environment) library and applica-\ntions.  The EDG C++ (or Mutek Fortran 90) Front End first parses a source \nfile, and produces an intermediate language file.  The appropriate IL \nAnalyzer processes this IL file, and creates a \"program database\" (PDB) file \nconsisting of the high-level interface of the original source.  Use of the \nDUCTAPE library then makes the contents of the PDB file accessible to \napplications. This release also includes the Flint F95 parser from Cleanscape \nInc. \n\nSee http://www.cs.uoregon.edu/research/pdt for more information \non PDT.  See doc/converter.txt for a complete listing of what has been \nimplemented in this release of PDT, as well as notes and caveats.\n\n=============================================================================\n\nSummary\n-------\n\nThis directory contains the Program Database Toolkit software.\n\nSubdirectories in this PDT directory include the following.\n\ndoc             documentation\nductape\t\tDUCTAPE\nductape/doc\tDUCTAPE documentation\nductape/inc\tDUCTAPE include files\nductape/lib\tDUCTAPE library source files\nductape/src\ttools that use the DUCTAPE library\nhmtl            documentation\ninclude\t\tfiles copied from ductape/inc\ninclude/kai\tKAI include files\n\nThe following architecture-specific subdirectories are also included.\nThese directories have bin and lib subdirectories for the PDT shell\nscript, executables, and library.\n\nalpha\napple\nhp9000s700\ncrayx1\nlinux\nx86_64\nmips\nmips64\nrs6000\nibm64\nibm64linux\nsgi32\nsgin32\nsgi64\nsolaris2\nsun386i\nhitachi\nWindows\nt3e\n\nThe files in the architecture-specific bin and lib directories include,\nor will include, the following.  The bin and lib directories may be in\na user-specified subdirectory.  (See Installation below.)\n\nbin/cxxparse       shell script that executes edgcpfe and taucpdisp for C++ apps\nbin/cparse         shell script that executes edgcpfe and taucpdisp for C apps\nbin/cxxparse4101   shell script that executes edgcpfe and taucpdisp for C++ apps from EDG v4.10.1\nbin/cparse4101     shell script that executes edgcpfe and taucpdisp for C apps from EDG v4.10.1\nbin/edgcpfe        EDG C++ Front End executable\nbin/taucpdisp      C++ IL Analyzer executable\nbin/edgcpfe4101    EDG C++ Front End executable for EDG v4.10.1\nbin/taucpdisp      C++ IL Analyzer executable for EDG v4.10.1\nbin/f90parse\t   shell script that executes f90fe and pdtf90disp\nbin/f90fe\t   Mutek Fortran 90 Front End executable\nbin/pdtf90disp\t   Fortran 90 IL Analyzer executable\nbin/f95parse\tshell script that executes pdtflint\nbin/pdtflint    Cleanscape Inc. Flint F95 parser\nbin/roseparse   ROSE C/C++ parser\nbin/upcparse    ROSE UPC parser\nbin/pdbconv     DUCTAPE application\nbin/pdbhtml\tDUCTAPE application\nbin/pdbmerge    DUCTAPE application\nbin/pdbtree     DUCTAPE application\nbin/pdbcomment  DUCTAPE application\nbin/xmlgen      DUCTAPE application\nlib/libpdb.a    DUCTAPE library\n\nThe binaries are built for the following platforms.\n\n-----------------------------------------------------\nArchitecture \tPlatform \t   Operating System  \n-----------------------------------------------------\nalpha           Compaq Alpha       Tru64 OSF1 v5.1  \napple           Apple              Darwin MacOS X 10.12.4\narm64_linux     ARM64              Linux Kernel 3.10\ncrayx1          Cray X1            Unicos/MP\nlinux           Intel PIII/ia64    RedHat Linux 6.1/6.2/7.0/7.1/7.2/7.3/8.0/9.x\nppc64           IBM Power4 Linux   SuSE Linux 2.4.21 for pSeries\nibm64linux      IBM Power8 Linux   SuSE Linux 2.4.21 for pSeries\nx86_64          AMD x86_64 Opteron SuSE Linux ES 8 for AMD64, SP2 \nx86_64          Intel EM64T        All Linux flavors for Intel\nmips            SiCortex           MIPS Linux 32 bit\nmips64          SiCortex           MIPS Linux 64 bit\nrs6000          IBM pSeries        AIX 4.3, 5.x\nibm64           IBM pSeries        AIX 4.3, 5.x\nsgi32           SGI R4400 IP22     IRIX 6.5.4\t  \nsgin32          SGI R10000 IP25    IRIX 6.5.4\t  \nsgi64           SGI R10000 IP25    IRIX 6.5.4\t  \nsolaris2        SUN sun4m          Solaris SunOS 5.8\nsun386i         SUN Opteron/x86    Solaris SunOS 5.10\nWindows\t\tMicrosoft Windows  W98/NT/W2K/XP\nt3e             Cray T3E           Unicos MK 2.0.4.61 \nhp9000s700      HP PA-RISC 1.1     HP-UX 10.20 \nhitachi \tHitachi SR8000\t   Hitachi\n\n=============================================================================\n\nInstallation\n------------\n\nIn order to use PDT, you will need to perform configuration.  ./configure\nwill setup the Makefiles so they work with the selected compilers and\noperating system. \n\nNOTE: PDT requires gunzip. Please ensure that gunzip is in your path before\nconfiguring PDT.\n\n(1) Run ./configure.  This scans your system for usable C++ compilers and\nautomatically configures the Makefiles and cxxparse, cparse, and f90parse.\n\nIf you prefer, you can specify a C++ compiler as a command line option to\n./configure. The following switches are understood:\n\n    -ICPC \t\tUse Intel IA-32/IA-64 icpc compiler\n    -GNU                Use GNU C++ under the name \"g++\"\n    -CC                 Use SGI's CC\n    -CC                 Use SUN's CC (v6.2 or better)\n    -CXX                Use Tru64's cxx\n    -C++                Use Apple's c++\n    -XLC or -IBM        Use IBM's xlC\n    -PGI                Use PGI's pgCC (v4.0 or better)\n    -PATHSCALE          Use Pathscale pathCC\n    -KAI or -KCC        Use KAI's KCC\n\nNOTE: To install PDT on Mac OS X, please install gcc using 'brew install gcc' \nand set aliases for g++6 and gcc6 to g++ and gcc respectively. Add gcc bin \ndirectory to your path and then configure using -GNU. \nalias g++6=g++\nalias gcc6=gcc\nexport PATH=/usr/local/Cellar/gcc/6.2.0/bin:$PATH\ngcc -v\nshould show the GNU gcc (and not LLVM/CLANG). \n./configure -GNU\n\nIt is not necessary to specify an architecture, unless you are using PDT\non IBM AIX, where you might want to use ibm64 for 64 bits or on SGI, where you \nmight want to choose among IRIXO32, IRIXN32, and IRIX64 or on IBM Power4 Linux \nwhere you may want to use ibm64linux for 64 bits. By default, rs6000 refers\nto IBM AIX and ppc64 refers to IBM Power4 Linux (32 bits each).\nUse one of the following command line options:\n\n    -arch=ibm64\n    -arch=ibm64linux\n    -arch=IRIXO32\n    -arch=IRIXN32\n    -arch=IRIX64\n    -arch=mips64\n    -arch=arm64_linux\n\nNormally, source files are compiled for optimization (i.e., +K2 for KCC, \n-O2 otherwise). If you want other compiler options, you can pass these to \nconfigure via the -useropt=... command-line switch.\nE.g.,\n\n    ./configure -useropt='-g'\n\nIf you are using older (pre-7.3.0) versions of the SGI CC compiler, you\nmust use the -enable-old-headers option, e.g.,\n\n    ./configure -enable-old-headers\n\nIf you want multiple versions of the DUCTAPE library (to support use of\nmultiple compilers), you must do multiple installations.  During each,\nspecify a different compiler via the command-line option -compdir=...\nfor ./configure, e.g.,\n\n    -compdir=KCC-3.4f\n\nThis will create a subdirectory named \"KCC-3.4f\" that will contain the\nbin and lib directories for the current architecture and the specified\ncompiler.\n\nTo install the PDT in a different directory, use the command-line option \n-prefix=\u003cdir\u003e. For e.g.,\n\n     ./configure -prefix=/usr/local/packages/pdt -compdir=intel\n\nTo use a different name for the architecture directory, use the command-line\noption -exec-prefix=\u003cdir\u003e. For e.g.,\n     \n    ./configure -exec-prefix=sun32\n\nThis will create a /usr/local/packages/pdt/intel directory with include lib and\nbin subdirectories. \n\n\n(2) Type \"gmake\". We recommend GNU gmake over vendor supplied make (especially\n    for Cray T3E users).\n\n(3) Type \"gmake install\" to install binaries in bin and lib subdirectories\n\n(4) [Optional] Type \"gmake clean\" to free up disk space\n\n(5) [Optional] Generate a browsable HTML index of the DUCTAPE interface.\nThis can be done by the following commands (after you extended your $PATH\nenvironment variable as described by the output of the configure script):\n\n    cd ductape/inc\n    ./MakeHtmlDocu\n\nThe HTML index will be placed in the directory ductape/html.\n\n=============================================================================\n\nDescription of the Tools in the bin Directory\n---------------------------------------------\n\nedgcpfe   : Edison Design Group (EDG) C++ Front End.  This parses C and C++\n            source code, and produces an intermediate language (IL) file\n            that is processed by the C and C++ IL Analyzer.\n\n            See http://www.edg.com/ for further information.\n \ntaucpdisp : C++ and C IL Analyzer from PDT.  This processes an IL file produced\n            by the EDG Front End, and creates a program database (PDB) file.\n            The PDB file contains the language interface of the original\n            source code.  The DUCTAPE library libpdb.a makes this high-level \n            program information available to applications.\n\nf90fe     : Mutek Fortran 90 Front End. This parses Fortran 77 and 90\n            source code, and produces an intermediate language (IL) file\n            that is processed by the Fortran IL analyzer.\n\npdtflint  : Cleanscape Inc. Flint Fortran parser. This parses Fortran 77, 90\n            and 95 source code, and produces the PDB file. \n\ncxxparse4101  :\ncparse4101    :\ncxxparse      :\ncparse        :\nf90parse      :\nf95parse      : \nupcparse      :\nroseparse     :\ngfparse48     :\ngfparse       : Shell scripts that execute the right parsers and IL analyzers.\n              Usage:\n\n              cxxparse4101   \u003cc++ file\u003e \u003cc++ flags\u003e\n              cparse4101     \u003cc++ file\u003e \u003cc++ flags\u003e\n              cxxparse       \u003cc++ file\u003e \u003cc++ flags\u003e\n              cparse         \u003cc file\u003e   \u003cc flags\u003e\n              f90parse       \u003cf90 file\u003e \u003cf90 flags\u003e\n              f95parse       \u003cf90 file(s)\u003e \u003cf90 flags\u003e\n              gfparse        \u003cf90 file(s)\u003e \u003cf90 flags\u003e \n              gfparse48      \u003cf90 file(s)\u003e \u003cf90 flags\u003e \n              upcparse       \u003cupc file\u003e \u003cupc flags\u003e \n\n            \u003c### file\u003e is the source file for which a program database (PDB)\n            file is generated. The filename of the PDB file will have the\n            basename of the ### file and the suffix \".pdb\".\n\n            \u003c### flags\u003e are additional flags necessary for your program to\n            compile.  The configure script will determine most, if not all,\n            flags and incorporate these in ###parse.  Local options, such as\n            an application include directory, can be specified here.\n             \n            cxxparse and cparse scripts accept -I\u003cdir\u003e and -D\u003cdefine\u003e flags\n            for include directory and defines respectively.\n\n            f90parse accepts the following flags:\n\n            -F : Fixed form for source. By default, the form is free. In fixed\n                 form positions (columns) 1-5 can be used only for lables, \n                 position 6 is for continuation and a \"C\" or \"*\" is for comment \n                 lines. The main program must fall in positions 7-72.\n\n            -I\u003cdir\u003e : Adds a directory dir to the list of directories searched\n                 for INCLUDE statements.\n           \n            -M\u003cdir\u003e : Specifies a list of directories for searching module \n                 definition files. Members of the list must be separated by \n                 semicolon. While modules are defined or used this option is \n                 mandatory.\n \n            -R : Suppress folding constant expressions but those that either are\n                 public constant values of modules or define parameters of type.\n\n            -r : Issue remarks, which are diagnostic messages even milder than \n                 warnings.\n \n            -U : Case sensitivity for identifiers.\n\n            -u : Disable implicit typing of identifiers. This has the same\n                 effect as IMPLICIT NONE statement as applied to the file.\n\n            -A : Warn about use of non-F90 features, disable features that \n                 conflict with F90. \n\n            -Llfile: Generate raw listing information in the file lfile. This\n                 information is used to generate a formatted listing where each\n                 line begins with a key character that identifies the type:\n                 N  - Normal line\n                 S  - Comment line\n                 R  - Remark diagnostics\n                 W  - Warning diagnostics\n                 E  - Error diagnostics\n                 C  - Catastrophic error diagnostics.\n \n  IMPORTANT NOTE: The Fortran 90 parser included in PDT adheres very strictly\n  *************** to the F90 language specification and does not comply with \n                  extensions to the language typically implemented by vendors.\n                  This includes real*8 or integer*8 types, kind parameters,\n                  and some continuation fields in fixed form. In some cases, \n                  the source must be modified to comply with the standard before\n                  the PDT front-end can parse the program. f95parse may be used\n                  to parse codes that f90parse cannot handle. \n\n            f95parse accepts the following flags:\n\t\n            -v : Verbose flag. In this mode, all error messages and warnings\n                 are displayed. \n            -R free: Specifies free form, -R fixed specifies fixed form for\n                  the Fortran source code. If your Fortran source has a .f file \n                  extension and uses free form, it is important to specify \n                  this flag. By default the parser assumes fixed form for F77.\n                  For other flags that f95parse accepts, please refer to the \n                  etc/flint.hls file.\n            -p : invoke preprocessor.\n            -o\u003cpdbfile\u003e : Specifies the name of the PDB file. Note: there is\n                 no space between -o and the file name. \n\n            You may specify multiple fortran files on the command-line to \n            resolve module dependencies. e.g.,\n\n             % f95parse `find . -name \"*.f90\" -print` -omerged.pdb  \n\n            parses all files with .f90 suffix to produce merged.pdb file.\n\n IMPORTANT NOTE: Currently, f95parse can produce PDB files that have enough \n *************** information for use with the TAU profiling package. However,\n                 it does not have argument and calltree information that may\n                 be needed for other tools such as CHASM. This will be added\n                 in future releases. \n                 The Mutek parser in f90parse could only parse one file at a \n                 time whereas f95parse parses more than one file.\n                  \n            gfparse accepts the following flags:\n            -R free: for free form\n            -R fixed: for fixed form\n            -p: pre-processor \n\t    -v: verbose output\n\nNOTE:\n*****\n\t   Setting the PDT_MOD_DIR environment variable specifies the location \n           of the directory where GNU gfortran .mod module files are stored. \n           If this is not specified, the files are stored in /tmp/pdt-$USER\n\t   directory. See etc/gfortran.txt file for further information on \n           compiler options supported. Now the gfortran based PDT parser emits\n           sufficient information for loop level instrumentation in TAU and also\n           includes type information needed for CHASM. \n\n\n                \npdbconv   : Simple tool that checks the consistency/correctness of a PDB file\n            and converts it to a more verbose, human-readable format.\n            Usage:\n\n              pdbconv [-c | -o \u003coutfile\u003e] [-AGMNPRSTY] \u003cpdbfile\u003e\n\n            Called without any options, pdbconv reads the PDB file \u003cpdbfile\u003e\n            checks it for correctness, and prints it out again in a standard\n            form.  The following options are available:\n\n            -c            Check for correctness only\n\n            -o \u003coutfile\u003e  Write output to file \u003coutfile\u003e\n\n            -A            Convert (A)ll item output to verbose format\n\n            -G            Print only (G)roup items (in verbose format)\n\n            -M            Print only (M)acro items (in verbose format)\n\n            -N            Print only (N)amespace items (in verbose format)\n\n            -P            Print only (P)ragma items (in verbose format)\n\n            -R            Print only (R)outine items (in verbose format)\n\n            -S            Print only (S)ource file items (in verbose format)\n\n            -T            Print only (T)emplate items (in verbose format)\n\n            -Y            Print only t(Y)pe items (in verbose format)\n\npdbhtml   : Produces \"htmlized\" versions of all source and header files\n            contained in the program database file \u003cpdbfile\u003e. It also\n            produces an HTML index of Classes, Templates, Namespaces,\n            and Functions called \"index.html\". Usage:\n\n              pdbhtml \u003cpdbfile\u003e\n\n            Only works for C and C++ sources for now.\n\npdbmerge  : Takes a set of program database files and merges them into one,\n            eliminating duplicate items from different files, in the process.\n            Usage:\n\n              pdbmerge [ [-v] -o \u003coutfile\u003e] \u003cpdbfiles\u003e...\n\n            -v            Verbose.\n\n            -o \u003coutfile\u003e  Write merged database to file \u003coutfile\u003e instead of\n                          cout.\n\n            Note:  Namespace definitions spread over several files are\n            not merged correctly yet.\n\npdbtree   : Prints the source file inclusion tree, class hierarchy (IS-A +\n            HAS-A), and function call graph. Usage: \n\n              pdbtree [-CRS] pdbfile\n\n            -C            Print only the (C)lass hierarchy\n\n            -R            Print only the (R)outine call graph\n\n            -S            Print only the (S)ource file inclusion tree\n\n            Note: Class hierarchy is a DAG, not a tree, and therefore display\n            is bad.\n\npdbcomment: Scans all (non-system) source files related to a PDB file\n            for C, C++, Fortran comments, C/C++ pragmas, and Fortran\n            directives and prints out a new enhanced PDB file containing\n            this additional information. Usage:\n\n              pdbcomment [-o outfile] [-c|-p] [-d] [-D string] pdbfile\n\n            -o \u003coutfile\u003e  Write output to file \u003coutfile\u003e\n\n            -c            Only scan for comments (ignore pragmas)\n\n            -p            Only scan for pragmas (ignore comments)\n\n            -d            Fortran only: Consider lines with a 'D'\n                          in the first column also as comments\n\t\n\t    -v            Verbose mode\n\n            -D string     Fortran only: Scan also for directives\n                          which are marked with the sentinel 'string'.\n                          This option can be specified several times,\n                          once for each directive sentinel to scan for.\n                          Case does NOT matter when specifiying 'string'.\n                          pdbcomment recognizes OpenMP (sentinel $omp)\n                          by default.\n                          \n\nxmlgen    : Converts a PDB file to an XML file.  Usage: \n\t      xmlgen [-c] outfile.xml [file1.pdb file2.pdb ... filen.pdb]\n\n       \t      -c : optional flag.  forces generator to assume C, not C++.\n\n\t    Note: In the current release, support for Fortran is mostly \n            complete. C++ templates or multiple inheritance are not yet \n            supported. \n            The CHASM project [http://sourceforge.net/projects/chasm-interop] \n            at LANL developed xmlgen.\n\n=============================================================================\n\nTypical use of the Binaries\n---------------------------\n\n(1) Generate a PDB file for each compilation unit of your application:\n\n    cxxparse srcfile1.cc -DMY_DEFINES=1 -I../my_includes ...\n    cxxparse srcfile2.cc -DMY_DEFINES=1 -I../my_includes ...\n    cxxparse srcfile3.cc -DMY_DEFINES=1 -I../my_includes ...\n    ...\n\n(2) Generate a PDB file for the whole application:\n\n    pdbmerge -o myapp.pdb srcfile1.pdb srcfile2.pdb srcfile3.pdb ...\n\n(3) Use the htmlizer or tree display:\n\n    pdbhtml myapp.pdb\n    pdbtree myapp.pdb\n\n=============================================================================\n\nWriting your own PDT applications\n---------------------------------\n\nThe DUCTAPE library, lib/libpdb.a, can be used to develop your own PDT\napplication.  Unfortunately, no a lot of documentation about writing\napplications exists yet. A first draft of a DUCTAPE Primer can be\nfound in ductape/html/primer.html.\n\nSee the example programs in the ductape/src directories (especially\npdbconv.cc and pdbtree.cc) on how to use the DUCTAPE library API.  (\"Use \nthe source, Luke!\")  To compile your programs use:\n\n    -I$(PDT_HOME)/include -L$(PDT_HOME)/$(ARCH)/lib -lpdb\n\nIf you have already developed PDT Version 1.3 applications, the\nductape/doc/porting-1.o-to-2.0.txt document gives an overview\nabout the main changes and things which need to be changed so your\napplication can make use of version 2.0 features.\n\n=============================================================================\n\nAcknowledgements\n----------------\n\nThe Program Database Toolkit development team would like to thank the\nfollowing companies for their help: \n\nEdison Design Group (EDG) \nMutek Solutions, Ltd.\n    We would like to thank EDG and Mutek for the use of their respective\n    C++ and Fortran 90 Front Ends, as well as their support, throughout the \n    development of PDT. \n\nCleanscape Inc.\n    We would like to thank Cleanscape for the use of their Fortran 95 Flint \n    parser.\n\nKAI Software, A Division of Intel Americas, Inc.\n    We would also like to thank KAI for letting us distribute their\n    C++ header files with the PDT release. \n    \nROSE compiler group, LLNL\n    We would like to thank the Rose compiler group [http://rosecompiler.org/]\n    for letting us distribute the Rose parser built on the EDG front-end in \n    binary form. \n\nMAQAO group, Intel Exascale Lab, U. Versailles\t\n    We would like to thank the Intel Exascale Lab at U. Versailles for letting \n    us distribute the Maqao binary instrumentation toolkit. \n\nPEBIL group, SDSC PMaC Laboratories, UCSD\n    We would like to thank the PEBIL group at UCSD for letting \n    us distribute the PEBIL binary instrumentation toolkit. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbeekman%2Fpdtoolkit-fork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzbeekman%2Fpdtoolkit-fork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbeekman%2Fpdtoolkit-fork/lists"}