Next: , Previous: , Up: Slave Lisps   [Contents][Index]


18.3.2 Asynchronous Operation Queuing

The routines in this section queue requests with an eval server. Requests are always satisfied in order, but these do not wait for notification that the operation actually happened. Because of this, the user can continue editing while his evaluation or compilation occurs. Note, these usually execute in the slave immediately, but if the interactive buffer connected to the slave is waiting for a form to return a value, the operation requested must wait until the slave is free again.

Function: string-eval string &key :server :package :context
Function: region-eval region &key :server :package :context
Function: region-compile region &key :server :package

string-eval queues the evaluation of the form read from string on eval server server. Server defaults to the result of get-current-server, and string is a simple-string. The evaluation occurs with package bound in the slave to the package named by package, which defaults to Current Package or the empty string; the empty string indicates that the slave should evaluate the form in its current package. The slave reads the form in string within this context as well. Context is a string to use when reporting start and end notifications in the Echo Area buffer; it defaults to the concatenation of "evaluation of " and string.

region-eval is the same as string-eval, but context defaults differently. If the user leaves this unsupplied, then it becomes a string involving part of the first line of region.

region-compile is the same as the above. Server defaults the same; it does not default to get-current-compile-server since this compiles the region into the slave Lisp’s environment, to affect what you are currently working on.

Hemlock Variable: Remote Compile File (initial value nil)
Function: file-compile file &key :output-file :error-file :load :server :package

This compiles file in a slave Lisp. When output-file is t (the default), this uses a temporary output file that is publicly writable in case the client is on another machine, which allows for file systems that do not permit remote write access. This renames the temporary file to the appropriate binary name or deletes it after compilation. Setting Remote Compile File to nil, inhibits this. If output-file is non-nil and not t, then it is the name of the binary file to write. The compilation occurs with package bound in the slave to the package named by package, which defaults to Current Package or the empty string; the empty string indicates that the slave should evaluate the form in its current package. Error-file is the file in which to record compiler output, and a nil value inhibits this file’s creation. Load indicates whether to load the resulting binary file, defaults to nil. Server defaults to get-current-compile-server, but if this returns nil, then server defaults to get-current-server.


Next: Synchronous Operation Queuing, Previous: The Current Slave, Up: Slave Lisps   [Contents][Index]