6.7. The Fundamental Extensions Here is a description of all “atomic” extensions in Regina: [BUFTYPE_BIF] 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. [CACHEEXT] 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. [DESBUFprotect_BIF] 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. [DROPBUFprotect_BIF] 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. [FIND_BIF] 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. [FLUSHSTACK] 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. [LINEOUTTRUNC] 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. [MAKEBUF_BIF] 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. [OPEN_BIF] Adds the extra built-in function OPEN() , which is used for explicitly opening streams. [PRUNE_TRACE] 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.