Make your own free website on
6.7. The Fundamental Extensions
Here is a description of all “atomic” extensions in Regina:

     Allows calling the built-in function BUFTYPE(), which will
     write out all the contents of the stack, indicating the
     buffers, if there are any. The idea is taken from VM/CMS, and
     its command named BUFTYPE.

     Tells Regina that information should be cached whenever
     possible, even when this will render future execution of the
     OPTIONS instruction useless. Thus, if you use e.g. the OPEN()
     extra built-in function, and you set CACHEEXT, then you may
     experience that the OPEN() function does not disappear from
     the current scope when you set the NOOPEN_BIF extension.

     Whether or not a removal of an extension really do happen is
     unspecified when CACHEEXT has been called at least once.
     Effectively, info cached during the period when CACHEEXT was
     in effect might not be “uncached”. The advantage of CACHEEXT
     is efficiency when you do not need to do a lot of toggling of
     some extension.

[CLOSE protect_BIF]
     Allows the CLOSE() extra built-in function, which allows the
     program to explicitly close a stream.

     Allows calling the built-in function DESBUF(), to remove all
     contents and all buffers from the stack. This function is an
     idea taken from the program by the same name under VM/CMS.

     Allows calling the built-in function DROPBUF(), to removed
     one of more buffers from the stack. This function is an idea
     take from the program by the same name under VM/CMS.

     Allows calling the FIND() extra built-in function, which is a
     compatibility function with VM/CMS. This function is really
     equivalent to POS(), but the parameters are somewhat
     reversed, and some find FIND() more intuitive. Besides, this
     extension helps porting.

     Tells the interpreter that whenever a command clause
     instructs the interpreter to flush the commands output on the
     stack, and simultaneously take the input from the stack, then
     the interpreter will not buffer the output but flush it to
     the real stack before the command has terminated. That way,
     the command may read its own output.  The default setting for
     Regina is not to flush, i.e. NOFLUSHSTACK, which tells
     interpreter to temporary buffer all output lines, and flush
     them to the stack when the command has finished.

     This options tells the interpreter that whenever the
     LINEOUT() built-in function is executed for a persistent
     file, the file will be truncated after the newly written
     line, if necessary. This is the default setting of Regina,
     unless your system does not have the ftruncate() system call.
     The complement option is NOLINEOUTTRUNC.

     Allows calling the built-in function MAKEBUF(), to create a
     buffer on the stack. This function is an idea taken from a
     program by the same name under VM/CMS.

     Adds the extra built-in function OPEN() , which is used for
     explicitly opening streams.

     Makes deeply nested routines be displayed at one line.
     Instead of indenting the trace output at a very long line
     (possibly wrapping over several lines on the screen). It
     displays [...] at the start of the line, indicating that
     parts of the white space of the line has been removed.