The core module interacts with the virtual machine, to the point that, at times, the virtual machine itself refers to it. For example, while the exceptions can be of any types, the exceptions internally generated by the machine are instance of the Error class, which is part of the core module.
However, the core module is not automatically linked in the VM. Every embedding application must create an instance of the core module, and then link it to the VM it uses; this allow to override also the functions that are in this module to, in example, trace their calls or change their behavior.
Scripts lanuced from the falcon command line tools are granted to have access to the core module contents as they are described in this manual.
Some of the functions that are provided in the core module, as printl, are a common hook for embedders. In the case of printl, which provides a common and comfortable simple output for scripts, embedders usually redirect it to their own functions to intercept script output request and redirect them. In some cases, embedders may may find useful to disable some functionalities, i.e. removing file/directory functions.
The core module also provides many functions that duplicate operator functionalities. Array partitioning and string concatenations are some example. Those duplicate functions are meant both because they are usually more flexible than the pre-defined operators and because it is then possible to pass those functions as function parameters, or to save those functions in variables; of course, operators cannot be used that way.
However, operators are faster than function calls, so, when possible, use the operators rather than the functions. Functions duplicating operators are mean to be used when operators cannot possibly be employed, or when the limited functionalities of the operators are not enough.