NAME
Cif - Introduction to the compiler information file (CIF)
library routines
IMPLEMENTATION
All Sun SPARC systems
DESCRIPTION
CIFs are generated by the Sun SPARCompiler Fortran 90 com-
piler. They contain information about the Fortran source
code. Depending on the options you select on the compiler
command, a CIF can contain some or all of the following:
Information about compiler options and the characteristics
of the machine for which the source code was compiled Infor-
mation about procedures Compiler messages Information about
loops and statement types, and about procedures called in
the source code Cross-reference information for each label,
variable, procedure name, procedure argument, and symbolic
constant in the source code
CIFs do not contain dynamic information, such as run-time
trace information.
The compilers generate information that applies only to
source code, as CIFs have language dependent structures as
appropriate.
CIFs are designed to be used with programming tools. Using
a set of library routines and the cif.h header file, you can
write your own programs in the C programming language to
retrieve information from the C or Fortran CIFs. Records
are converted to a structure format before they are returned
by the Cif_Getrecord(3) routine.
CIFs are initially ASCII, but when passed through cifconv(1)
or when the Cif_Cifconv(3) routine is used, they are con-
verted to sorted binary. The following are some of the
benefits of a sorted binary CIF: Smaller Faster to read
Additional selective queries: Cif_Filedir(3),
Cif_Getunitdir(3), and Cif_Recgroup(3) Ordered
The cif.h file contains the following: Symbolic constants
for all record types and the values contained in the record
fields Structure declarations Library routine prototypes
Symbolic constants for all CIF status values
Versions
CIFs that are written by F90 1.0 have CIF library version 2
format. To use any CIF reading tool with these new com-
pilers, it is necessary to relink (or, optionally, recom-
pile). There are two levels to using the new version 2
CIFs. If the tool's functionality is satisfactory,
relinking is all that is required. However, in order to
take advantage of the new records that the new CIFs provide,
the symbolic constant CIF_VERSION will need to be defined as
2 in the source file prior to the inclusion of cif.h, and
then compiled (#define CIF_VERSION 2).
Since libcif 2.0 is a superset of libcif 1.0, it includes
the logic to handle both version 1 and version 2 CIFs. The
version 2 library recognizes a version 1 code even if a ver-
sion 2 CIF is being read (generated by a new compiler) and
will pass back only version 1 records. The version 1
library, however, will not handle version 2 CIFs. The
library assumes that version 1 CIFs are used unless the sym-
bolic constant CIF_VERSION has the value 2.
The CIF environment has three parts: the tool, the library,
and the CIF generated by the compiler. The CIF is deter-
mined by the version of the compiler. The latest library is
version 2. It also accepts version 1 CIFs. The tool deter-
mines which version is used by the value of the symbolic
constant CIF_VERSION.
A summary of combinations of the three parts follows:
Library to
CIF-version which linked Tool Status
______________________________________________
1.0 1.0 1.0 Okay
1.0 1.0 2.0 Won't work
1.0 2.0 1.0 Okay
1.0 2.0 2.0 Okay
2.0 1.0 1.0 Won't work
2.0 1.0 2.0 Won't work
2.0 2.0 1.0 Okay
2.0 2.0 2.0 Okay
Associated headers
cif.h
Associated functions
Binary format only functions
Cif_Getfiledir(3) Retrieves the file directory
Cif_Getunitdir(3) Retrieves the unit directory
for the requested unit
Cif_Recgroup(3) Retrieves all the records of a
particular type that belong to
a single unit
Binary and ASCII format functions
Cif_Close(3) Closes a CIF
Cif_Duplicate(3) Duplicates a CIF structure
Cif_Errstring(3) Gets a string describing an
error condition
Cif_Free(3) Frees all memory associated
with a CIF structure
Cif_Getpos(3) Returns the current position
of a CIF
Cif_Getrecord(3) Gets the next record
Cif_Memmode(3) Selects the memory management
mode
Cif_Msginsert(3) Inserts message arguments into
message text
Cif_Open(3) Opens a CIF
Cif_Release(3) Frees memory that is associ-
ated with a CIF
Cif_Setpos(3) Sets the current position of a
CIF
ASCII to binary conversion
cifconv(1) CIF reformatter
SEE ALSO
Cif_Close(3), Cif_Duplicate(3), Cif_Errstring(3),
Cif_Free(3), Cif_Getpos(3), Cif_Getrecord(3),
Cif_Memmode(3), Cif_Msginsert(3), Cif_Open(3),
Cif_Release(3), Cif_Setpos(3) for information about general
CIF library routines
Cif_Getfiledir(3), Cif_Getunitdir(3), Cif_Recgroup(3) for
information about binary CIF library routines
cifconv(1) for information about ASCII to binary format
conversion in the
Compiler information file CIF Compiler information Compiler
listings
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |