87 lines
4.3 KiB
Plaintext
Executable File
87 lines
4.3 KiB
Plaintext
Executable File
This directory AMMUNITION contains reusable packages on C/C++:
|
|
`allocate', `vlobject', `objstack', `hashtab', `commline', `ticker',
|
|
`position', `errors', `bits', `arithm', `IEEE':
|
|
o allocate
|
|
Allocating and freeing memory with automatic fixing some
|
|
allocation errors.
|
|
o vlobject
|
|
Work with variable length objects (VLO). Any number of bytes
|
|
may be added to and removed from the end of VLO. If it is
|
|
needed the memory allocated for storing variable length object
|
|
may be expanded possibly with changing the object place. But
|
|
between any additions of the bytes (or tailoring) the object
|
|
place is not changed. To decrease number of changes of the
|
|
object place the memory being allocated for the object is
|
|
longer than the current object length.
|
|
o objstack
|
|
Work with stacks of objects (OS). Work with the object on the
|
|
stack top is analogous to one with a variable length object.
|
|
One motivation for the package is the problem of growing char
|
|
strings in symbol tables. Memory for OS is allocated by
|
|
segments. A segment may contain more one objects. The most
|
|
recently allocated segment contains object on the top of OS.
|
|
If there is not sufficient free memory for the top object than
|
|
new segment is created and the top object is transferred into
|
|
the new segment, i.e. there is not any memory reallocation.
|
|
Therefore the top object may change its address. But other
|
|
objects never change address.
|
|
o hashtab
|
|
Work with hash tables. The package permits to work
|
|
simultaneously with several expandable hash tables. Besides
|
|
insertion and search of elements the elements from the hash
|
|
tables can be also removed. The table element can be only a
|
|
pointer. The size of hash tables is not fixed. The hash
|
|
table will be automatically expanded when its occupancy will
|
|
became big.
|
|
o position
|
|
Work with source code positions. The package serves to
|
|
support information about source positions of compiled files
|
|
taking all included files into account.
|
|
o errors
|
|
Output of compiler messages. The package serves output
|
|
one-pass or multi-pass compiler messages of various modes
|
|
(errors, warnings, fatal, system errors and appended messages)
|
|
in Unix style or for traditional listing. The package also
|
|
permits adequate error reporting for included files.
|
|
o commline
|
|
Work with command line. The package implements features
|
|
analogous to ones of public domain function `getopt'. The
|
|
goal of the package creation is to use more readable language
|
|
of command line description and to use command line
|
|
description as help output of program.
|
|
o ticker
|
|
Simultaneous work with several tickers (timers).
|
|
o bits
|
|
Work with bit strings (copying, moving, setting, testing,
|
|
comparison).
|
|
o arithm
|
|
Implementing host machine-independently arbitrary precision
|
|
integer numbers arithmetic. The implementation of the package
|
|
functions are not sufficiently efficient in order to use for
|
|
run-time. The package functions are oriented to implement
|
|
constant-folding in compilers, cross-compilers.
|
|
o IEEE
|
|
Implementing host machine-independently IEEE floating point
|
|
arithmetic. The implementation of the package functions are
|
|
not sufficiently efficient in order to use for run-time. The
|
|
package functions are oriented to implement constant-folding
|
|
in compilers, cross-compilers.
|
|
|
|
There are files with corresponding names and extensions `.h'
|
|
(interface file for C/C++), `.c' (implementation file on C), and
|
|
`.cpp' (implementation file on C++).
|
|
|
|
To install AMMUNITION see file INSTALL in the current directory.
|
|
|
|
There are also shell scripts for testing the package with
|
|
corresponding names and extension `.tst'. Documentation of the
|
|
reusable packages is in files `ammunition.txt', `ammunition.dvi',
|
|
`ammunition.ps', `ammunition.info*', `ammunition*.html',
|
|
`ammunition*.rtf' for C and `ammunition++.txt', `ammunition++.dvi',
|
|
`ammunition++.ps', `ammunition++.info*', `ammunition++*.html',
|
|
`ammunition++*.rtf'.
|
|
|
|
Please send bug reports and comments to vmakarov@fnmail.com
|
|
|
|
Vladimir Makarov
|