t3.hfilesource file

This header defines the t3vm intrinsic function set. These functions provide access to basic features of the Virtual Machine.

Summary of Classes  

(none)

Summary of Global Functions  

t3AllocProp  t3DebugTrace  t3GetGlobalSymbols  t3GetStackTrace  t3GetVMBanner  t3GetVMID  t3GetVMPreinitMode  t3GetVMVsn  t3RunGC  t3SetSay 

Summary of Macros  

T3_H  T3DebugBreak  T3DebugCheck  T3SetSayNoFunc  T3SetSayNoMethod 

Summary of Enums  

(none)

Summary of Templates  

(none)

Global Functions  

t3AllocProp ( )t3.h[129]

Allocate a new property. Returns a new property not yet used anywhere in the program. Note that property ID's are a somewhat limited resource - only approximately 65,000 total are available, including all of the properties that the program defines statically.

t3DebugTrace (mode, ...)t3.h[97]
Debugger trace operations. This provides access to the interactive debugger subsystem, if the VM is running under a debugger. The 'mode' argument determines what the function does and what the additional arguments, if any, are for:

T3DebugCheck - checks to see if an interactive debugger is present. No additional arguments; returns true if a debugger is present, nil if not.

T3DebugBreak - breaks into the interactive debugger, pausing execution at the current code location so that the user can inspect the current machine state and determine how to proceed. No additional arguments; after the user proceeds with execution, the function returns true to indicate that a debugger is present. If no debugger is present, the function simply returns nil, and has no other effect.

t3GetGlobalSymbols ( )t3.h[120]
Get the global symbol table. If a symbol table is available, this returns a LookupTable object; otherwise, it returns nil.

This call will return a valid object value when pre-initialization is running during program building, or when the program has been compiled for debugging. When a program compiled for release (i.e., no debug information) is run under the interpreter, this will return nil, because no symbol information is available.

Note that programs can, if they wish, get a reference to this object during pre-initialization, then keep the reference (by storing it in an object property, for example) so that it is available during normal execution under the interpreter. If the program is compiled for release, and it does not keep a reference in this manner, the garbage collector will automatically delete the object when pre-initialization is completed. This allows programs that wish to keep the symbol information around at run-time to do so, while not burdening programs that don't need the information with the extra memory the symbols consume.

t3GetStackTrace (level, ?)t3.h[143]
Get a stack trace. This returns a list of T3StackInfo objects. Each object represents a nesting level in the call stack. The first element in the list represents the currently active level (i.e., the level that called this function), the second element represents the caller of the first element, and so on.

If 'level' is specified, we'll return a single T3StackInfo object giving the context at the given stack level - 1 is the active level, 2 is its caller, and so on, so 'level' would simply be the index in the returned list when this argument is omitted.

t3GetVMBanner ( )t3.h[70]
Get the VM banner string. This returns a string with the name of the VM, the version number, and a copyright string, in a format suitable for displaying to the user to identify the VM executable.

t3GetVMID ( )t3.h[63]
Get the VM identifier string. This returns the version number as a string, as in '3.0.10'.

t3GetVMPreinitMode ( )t3.h[77]
Get the preinitialization mode flag. This returns true if the VM is running as part of the compiler's pre-initialization phase, nil if it's running as a normal interpreter.

t3GetVMVsn ( )t3.h[57]
Get the VM version number. Returns the version number as an integer value, with the major version in the high-order 16 bits, the minor version number in the next 8 bits, and the patch number ("point release" number) in the low-order 8 bits. For example, version 3.0.10 is encoded as 0x0003000A.

t3RunGC ( )t3.h[34]
Explicitly run garbage collection.

t3SetSay (val)t3.h[48]
Set the default output function or method. The return value is the old function pointer or method, depending on which one is being set with this call. (If 'val' is a function pointer, the return value will be the old function; if 'val' is a property ID, the return value is the old method.)

The special values T3SetSayNoFunc and T3SetSayNoMethod can be passed to the function to remove any existing function or method, respectively, and are returned when appropriate to indicate that there was no previous setting.

Macros  

T3_Ht3.h[17]


T3 intrinsic function set definition

T3DebugBreakt3.h[154]
2
break into the debugger

T3DebugCheckt3.h[151]
1
check to see if the debugger is present

T3SetSayNoFunct3.h[161]
1
t3SetSay() special values. These can be passed in lieu of a function pointer or property ID when the caller wants to remove any existing function or method rather than install a new one.

T3SetSayNoMethodt3.h[162]
2
no description available

Enums  

(none)

Templates  

(none)

TADS 3 Library Manual
Generated on 7/19/2007 from TADS version 3.0.15.1