BETART Environment Variable

1. Introduction

BETART is used to set various characteristics of the runtime system. The specification consists of a list of entries, separated by ':' (colon). Colon in the beginning and at the end of the BETART value is optional. The specification ignores case except for the case of the string-entry values.
Entries may appear more than once in BETART. The last specification will in this case be used. The semantics of the different BETART entries are given below.
There are three types of entries: boolean-, integer-, and string-entries.
Example of usage (UNIX syntax):
setenv BETART "InfoIOA:IOA=1024:InfoFile=info.dump"
or alternatively
setenv BETART "InfoIOA:IOA#1024:InfoFile=info.dump"

2. General entries

Boolean-entries

The default values for all boolean entries are false. Mentioning the boolean entries in BETART sets its value to true. Boolean entries have the form <entry>, where <entry> is one of:
Info
Print information about heap sizes etc. at startup.
InfoIOA
Print information on garbage collection in the infant object area during execution.
InfoAOA
Print information on garbage collection in the adult object area during execution.
InfoAOAUse
Print information on the amount of memory in the adult object area during execution. At every IOA garbage collection, the following format is used (AOAUSE:<num>:<amount>/<total>), where <num> is the sequence number of the IOAGC, <amount> is the amount of free memory in AOA, and <total> is the total size of AOA.
InfoCBFA
Print information about the callback function area during execution.
InfoHeapUsage
InfoHeap
Print summary of complete heap memory usage at various points during execution. Notice, that this will not be the complete memory usage for the process, since the code and and data segments as well as various internal tables also use memory.
InfoAll
Sets most Info-entries: Info, InfoIOA, InfoAOA, InfoCBFA, InfoHeapUsage.
InfoPersistence
Print a number of statistics on the persistence implementation.
TimeIOA
Measure how much time IOA garbage collection uses in total. For information on how long each IOA GC lasts, use InfoIoa instead. The accuracy depends on the accuracy of the timers of the operating system. Do not enable any Info settings while using TimeIOA, as they may interfere with the timing.
TimeAOA
Measure how much time AOA garbage collection uses in total. For information on how long each IOA GC lasts, use InfoAoa instead. The accuracy depends on the accuracy of the timers of the operating system. Do not enable any Info settings while using TimeAOA, as they may interfere with the timing.
QuaCont
Continue execution after runtime detection of qualification error in reference assignment.
SimpleDump
If a program crashes, a dump file will be created, see [MIA 90-02]. This will contain a simple trace of the runtime stack at the time of the crash and, by default, also a very detailed low-level trace of the stack. By setting SimpleDump only the simple trace will be included in dumps.
NoCatch
NoCatchException
Exceptions/signals raised by the operating system will, by default, be caugt by the BETA runtime system and result in a dump of the current stack. By setting Nocatch (aka NoCatchException) the exception is not caught by BETA but handled in the default way by the operating system.
NoAOAGc
Do not garbage collect the adult object area. This is not useful for long running programs, as the size of AOA will keep increasing until there is no more memory available.

Integer-entries

These have the form <entry>=<value>, or <entry>#<value>, where <entry> is one of the following, and <value> is any positive integer. The default values are noted in parenthesis below:
IOA
The size in Kb of the infant object area (Default: 1024).
IOAPercentage
The minimum free fraction in percent of the infant object area. A value of 0 or close to zero will stress AOA, and high values will slow down the program. Values close to 100 may have ill effects. (Legal range: 0 to 100, but useful range is 3 to 40. default: 10).
IOANumSlices
Number of slices to divide IOA into. Only for MT betarun. If both IOANumSlices and IOASliceSize are set, the one set last will be used.
IOASliceSize
Size of each slice in IOA. Only for MT betarun. If both IOANumSlices and IOASliceSize are set, the one set last will be used.
AOAMinFree
The minimum free area in Kb in the adult object area. If less than this size is free after an AOA garbage collection, then the next allocation in AOA will cause a new block to be allocated. Please note that both AOAMinFree and AOAPercentage is used to determine if this is the case, so it is meaningfull to set both. Setting both very low may result in problems, as that prvents IOA from promoting enough objects. (Legal range: 0 to infinity, default: 1024).
AOAPercentage
The minimum free fraction in percent of the adult object area. If less than this fraction is free after an AOA garbage collection, then the next allocation in AOA will cause a new block to be allocated. Please note that both AOAMinFree and AOAPercentage is used to determine if this is the case, so it is meaningfull to set both. Setting both very low may result in problems, as that prvents IOA from promoting enough objects. (Legal range: 0 to 50, default: 10).
CBFA
The size in Kb of one block in the callback function area (Default: 1).

String-entries

These have the form <entry>=<value>, or <entry>#<value>, where <entry> is one of the following, and <value> is any string. The default values are noted in parenthesis below:
InfoFile
Name of file on which to write all this information (Default: stderr).

BETART
© Mjølner Informatics