Go to the first, previous, next, last section, table of contents.


Other VLS Interfaces

Other than Lisp shell capability VLS provides two other function interfaces to VSL. One is for sending Lisp data to the current Lisp process for evaluation and the other is for probing the current Lisp process for information. These can be used in Lisp type files or in ELisp code written by the user.

Function: vls-send-lisp-string Action: Given a string argument it sends the string followed by the v:end-expression parameter value to the current Lisp process. Any resulting output will appear in the current Lisp buffer.

Function: vls-lisp-evalue Action: This function is used to probe the current Lisp process for information. Given a string it sends it to the current Lisp process followed by the v:end-expression parameter value. The output of this function does not appear in the current Lisp buffer but instead is parsed by Elisp and returns a single Elisp expression. In other words it probes the current Lisp process, usually with an s-expression, and returns the equivalent Elisp value to be used by Elisp code. If the returned data from the current Lisp process can not be parsed by Elisp an error will be signaled.

An example of using vls-send-lisp-string is in the VLS provided Agroups template for creating actions to evaluate expressions in the current Lisp process, See section VLS Shell Commands in Agroups. An example of using vls-lisp-evalue is used by VLS itself in determining the current package for Lisps that have package systems. There are many reasons why the Lisp types parameters code might want to probe the current Lisp process to get an Elisp value to perform the expected results. For example some Lisp implementation's specific c:top-listener parameter uses this function to determine the break level.


Go to the first, previous, next, last section, table of contents.