Extended Features of Viivi kernel
-
Multiple natural languages are supported in a parallel way
by operating character data through the JVM internal Unicode.
Characters of the current locale language can be used in symbols and strings.
The message-language to show states and errors/warnings
is determined automatically from the current locale language.
(In case of Japanese locale, for example, HIRAGANA, KATAKANA, and KANJI characters can be used
in symbols and strings and the messages are shown in Japanese.)
Viivi potentially supports
all the languages that the JVM Unicode supports.
No matter how many kinds of the message-language are supported,
the memory consumption does not increase.
(Currently only English and Japanese are supported as the message-language.
The message languages will be added hereafter.)
-
Equipped with a unique debug trace system (improved later to VITSE)
which visualizes evaluating processes (even continuations as well!)
The background image
of the (OLD) top page
is a screen snapshot of an example for the debug trace output).
-
Not only files but also network-ports can be used as I/O ports.
Network ports can also be treated as regular files,
regardless of their internal structure like sockets.
-
The evaluation environment can be flexibly customized at the boot time
with the configuration files
(
viivi.vcnf
and .viivirc
)
and argument-commands.
Equivalent customization can be performed at runtime using a procedure
viivi-set!
.
-
Sequential input sources and output destinations
can be specified on the command line.
-
Customizable for conventional Scheme codes
widely existing all over the world
(e.g.,
those call
eval
with only one argument,
those call continuation without arguments,
those expect newly bound values returned from
define
/set!
, and etc.).
-
When multiple ellipsises "..." appear in series within a list or a vector
in a macro pattern,
the macro pattern matching is investigated based on
the principle of the maximum length matching.
-
The transcript output is written in a format
that can be used as an input to the interpreter.
It enables to redo the same evaluations later or on another network host.
-
Introduced a "base-level"
which enables to create evaluation environment of
an arbitrary combination of predefined object groups
(syntaxes, procedures, and etc.) classified in R5RS.
On a base level,
individual predefined objects can be added and removed.
This is a feature assumed for the purpose
to generate a subset environment of R5RS
and to conduct experiments in the environment.
-
Length of a circular list is defined as the negative of the number
of the actual elements on the list.
(e.g., the length of
#0=(10 20 30 . #0)
is -3
.)
-
When an error occurs, detailed error information is displayed.
When a problem is likely to occur
(for example, a symbol bound to a predefined procedure is
re-bound to something else, or,
a circular list is given as an argument to a procedure
expecting a proper list as the argument),
then a warning is displayed.
Contact
Exhibited on 2010/10/24
Updated on 2022/03/02
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.