There are are three ways how to add a new function into the VRR
Scheme
interface – write it in Scheme, write it in C with special regard to
Scheme (manual conversion of arguments from Scheme shape, call
the registration function on it) and automatically generate from a common C
function. A small number of functions are created in the second way –
usually functions with complicated argument patterns or with another
complication. They are defined in files in the scheme directory,
particularly scheme/gl_misc.c. They usually have the
gl_
name prefix and arguments of types SCM
. The vast majority of
functions are generated automatically using the snarf script
(written in GNU AWK, located at
build/snarf).