Warning: This is the manual of the legacy Guile 2.0 series. You may want to read the manual of the current stable series instead.

Previous: , Up: Evaluation Model   [Contents][Index]


6.25.1.3 Frames

Scheme Procedure: frame? obj
C Function: scm_frame_p (obj)

Return #t if obj is a stack frame.

Scheme Procedure: frame-previous frame
C Function: scm_frame_previous (frame)

Return the previous frame of frame, or #f if frame is the first frame in its stack.

Scheme Procedure: frame-procedure frame
C Function: scm_frame_procedure (frame)

Return the procedure for frame, or #f if no procedure is associated with frame.

Scheme Procedure: frame-arguments frame
C Function: scm_frame_arguments (frame)

Return the arguments of frame.

Scheme Procedure: frame-address frame
Scheme Procedure: frame-instruction-pointer frame
Scheme Procedure: frame-stack-pointer frame

Accessors for the three VM registers associated with this frame: the frame pointer (fp), instruction pointer (ip), and stack pointer (sp), respectively. See VM Concepts, for more information.

Scheme Procedure: frame-dynamic-link frame
Scheme Procedure: frame-return-address frame
Scheme Procedure: frame-mv-return-address frame

Accessors for the three saved VM registers in a frame: the previous frame pointer, the single-value return address, and the multiple-value return address. See Stack Layout, for more information.

Scheme Procedure: frame-num-locals frame
Scheme Procedure: frame-local-ref frame i
Scheme Procedure: frame-local-set! frame i val

Accessors for the temporary values corresponding to frame’s procedure application. The first local is the first argument given to the procedure. After the arguments, there are the local variables, and after that temporary values. See Stack Layout, for more information.

Scheme Procedure: display-application frame [port [indent]]
C Function: scm_display_application (frame, port, indent)

Display a procedure application frame to the output port port. indent specifies the indentation of the output.

Additionally, the (system vm frame) module defines a number of higher-level introspective procedures, for example to retrieve the names of local variables, and the source location to correspond to a frame. See its source code for more details.


Previous: , Up: Evaluation Model   [Contents][Index]