Trace-Output < VITSE < Viivi's Cell < Entrance


Trace-Output

Outline

Viivi implements the unique Trace-Output function, which visualizes the evaluation processes of S-expressions in a natural way.
Each trace-output is basically shown as a trace-line connecting an input S-expression and its evaluation value.
In addition, the procedure calls and the internal side-effects (e.g., binding generations and updates, data-structure modifications, and etc.) are also shown.

S-expressions not to be evaluated (e.g., the first argument symbol for the calls of define and set!, the symbol for the calls of named-let, the first argument for the calls of lambda, and etc.) are not the targets of the Trace-Output.

Marks

In the trace-output, procedure calls and various side-effects do not occur at the timings of the ends (input and output) of the trace-lines.
To distinguish them, therefore, specific marks will be used as follows:


	Procedure Call							* PROCEDURE
	Tail-Recursive Procedure Call				/ PROCEDURE
	(The symbol / is an image of the deeper trace-line joining another shallower trace-line.)

	Generation of a New Binding				○ SYMBOL → VALUE
	Update of an Existing Binding				● SYMBOL → VALUE

	Generation of a New Syntax Binding			△ SYMBOL → VALUE
	Update of an Existing Syntax Binding			▲ SYMBOL → VALUE

	Generation of a New Data Structure			□ NEW-DATA
	Modifycation of an Existing Data Structure		■ OLD-DATA ⇒ NEW-DATA

	Macro Expansion							✕ PRE-EXPAND ⇢ POST-EXPAND

Complex Procedures

For complex-procedure calls, only the trace-lines were shown but their input (S-expressions) and output (evaluation values) were not in the old versions.

In the calls of the complex-procedures, such as apply, for-each, and map, virtual lists enclosed with { }, respectively, are generated for the internal calls of the sub-level procedures and shown in VITSE.
As the result, each of the trace-lines will not be broken in the middle and always has its own input S-expression and the output value.

Continuation Restarts

Continuation restarts, together with its initial-value input, are shown in an easy way for the user to understand.
The pattern of the trace-lines for the continuation restarts is the only one exception for the unbroken trace line. When a continuation restart restarts, all previously continuous lines are interrupted, and the trace-output will switch to that from the generating point of the continuation.
This trace-output pattern is a good representation for the logical structure of the continuation restart.
Even a beginner can intuitively grasp the continuation process which is otherwise told to be hard to understand.

Configurations

The trace-output function is active by default.
To inactivate it, please use the argument-command

	-T false

Items and information of the trace-output can be configured respectively using The argument-commands (-Titem and -Tinfo), the kernel-configuration procedure (viivi-set!), and the kernel setting panel in the IDE.



Trace-Output < VITSE < < Viivi's Cell < Entrance


Contact

Exhibited on 2022/03/02
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.