Newsgroups: comp.sources.unix From: voodoo@hitl.washington.edu (Geoffery Coco) Subject: v26i184: veos-2.0 - The Virtual Environment Operating Shell, V2.0, Part01/16 Sender: unix-sources-moderator@vix.com Approved: paul@vix.com Submitted-By: voodoo@hitl.washington.edu (Geoffery Coco) Posting-Number: Volume 26, Issue 184 Archive-Name: veos-2.0/part01 VEOS is an extendable environment for prototyping distributed applications for unix. The VEOS application programmer's interface is provided by XLISP 2.1 (by David Betz). XLISP provides familiar program control; VEOS provides interprocess message passing and content addressable database access. VEOS (The Virtual Environment Operating Shell) was developed for distributed Virtual Reality applications at The Human Interface Technology Lab in Seattle and has been in use for two years. However, VEOS is by no means limited to these types of applications. VEOS is ideal for applications where hardware resources are not physically proximal or where machine-dependent resources (e.g. software packages, interface devices, etc..) are isolated because of their platform. VEOS is also ideal for prototyping programs which employ coarse grain parallellism. That is, VEOS uses heavyweight sequential processes, corresponding roughly to unix processes. In this way, VEOS can be used to utilize a network of workstations as a virtual multiprocessor. C programmers can build custom VEOS tools which are accessable from XLISP and thus are immediately compatible with other VEOS tools. Lisp programmers can quickly design and run distributed programs which utilize diverse hardware and software resources through these custom tools. HITL Engineers have already built VEOS tools for real-time stereo graphics, sound, position sensing and voice synthesis and input. Many of these tools will also be released in the coming months. VEOS is not an operating system. VEOS is a user-level framework for prototyping distributed applications. Its primary focus is flexibility and ease of use. This design comes somewhat at the expense of real-time performance. This is not to say, however, that VEOS cannot achieve good performance with proper application structuring and tuning. Relying on only the most common unix interface, VEOS is platform independent. VEOS 2.0 has been extensively tested on platforms such as DEC 5000, Sun 4, and Silicon Graphics VGX and Indigo. voodoo@hitl.washington.edu (Geoffery Coco) #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'FERN_LICENSE' <<'END_OF_FILE' X******************************************************************************* X* X* X* FERN 1.0 Copyright (C) 1992 Geoffrey P. Coco, X* Human Interface Technology Laboratory X* X* X* Permission to use, copy, or modify these programs and their documentation X* without fee for educational and research purposes only is hereby granted, X* provided that this copyright notice appears on all copies and supporting X* documentation. For any other uses of this software, in original or modified X* form, including but not limited to distribution in whole or in part, specific X* prior permission must be obtained from HITL. These programs shall not be X* used, rewritten, or adapted as the basis of a commercial software or hardware X* product without first obtaining appropriate licenses from HITL. HITL makes no X* representations about the suitability of this software for any purpose. It is X* provided "as is" without express or implied warranty. X* X* HITL AND GEOFFREY COCO DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, X* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT X* SHALL HITL NOR GEOFFREY COCO BE LIABLE FOR ANY SPECIAL, INDIRECT OR X* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, X* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER X* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE X* OF THIS SOFTWARE. X* X******************************************************************************* END_OF_FILE if test 1514 -ne `wc -c <'FERN_LICENSE'`; then echo shar: \"'FERN_LICENSE'\" unpacked with wrong size! fi # end of 'FERN_LICENSE' fi if test -f 'MANIFEST' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST'\" else echo shar: Extracting \"'MANIFEST'\" \(5181 characters\) sed "s/^X//" >'MANIFEST' <<'END_OF_FILE' X File Name Archive # Description X----------------------------------------------------------- X FERN_LICENSE 1 X MANIFEST 1 X README 1 X VEOS_LICENSE 1 X bin 1 X docs 1 X docs/VEOS_The_Complete_Documentation 14 X docs/xlisp.doc 16 X kernel_private 1 X kernel_private/bin 1 X kernel_private/lib 1 X kernel_private/makefile 3 X kernel_private/src 1 X kernel_private/src/fern 1 X kernel_private/src/fern/fcon.lsp 1 X kernel_private/src/fern/fe.lsp 1 X kernel_private/src/fern/fe_bnd.lsp 5 X kernel_private/src/fern/fe_ext.lsp 5 X kernel_private/src/fern/fe_int.lsp 7 X kernel_private/src/fern/fe_locl.lsp 1 X kernel_private/src/fern/fern.c 5 X kernel_private/src/fern/fern.lsp 2 X kernel_private/src/fern/fgod.lsp 3 X kernel_private/src/fern/fph.lsp 1 X kernel_private/src/fern/fx.lsp 4 X kernel_private/src/fern/load_bal.lsp 1 X kernel_private/src/fern/local.lsp 2 X kernel_private/src/fern/zoot.lsp 1 X kernel_private/src/include 1 X kernel_private/src/include/fern.h 1 X kernel_private/src/include/fern_prims.h 1 X kernel_private/src/include/kernel.h 4 X kernel_private/src/include/world.h 3 X kernel_private/src/include/xv_native.h 2 X kernel_private/src/include/xv_native_prims.h 1 X kernel_private/src/nancy 1 X kernel_private/src/nancy/nancy_fundamental.c 13 X kernel_private/src/nancy/nancy_match.c 8 X kernel_private/src/shell 1 X kernel_private/src/shell/main.c 1 X kernel_private/src/shell/shell.c 4 X kernel_private/src/shell/xv_glutils.c 15 X kernel_private/src/shell/xv_native.c 11 X kernel_private/src/talk 1 X kernel_private/src/talk/shmem.c 3 X kernel_private/src/talk/socket.c 7 X kernel_private/src/talk/talk.c 11 X lib 1 X lisp 1 X lisp/ancestor-maker.lsp 1 X lisp/ancestors 1 X lisp/fern.lsp 1 X lisp/file_io.lsp 1 X lisp/interactive.lsp 1 X lisp/tabula_rasa.lsp 1 X lisp/test_rpc.lsp 1 X src 1 X src/include 1 X src/include/world.h 3 X src/kernel_current 1 X src/kernel_current/fern 1 X src/kernel_current/fern/fcon.lsp 1 X src/kernel_current/fern/fe.lsp 1 X src/kernel_current/fern/fe_bnd.lsp 5 X src/kernel_current/fern/fe_ext.lsp 5 X src/kernel_current/fern/fe_int.lsp 7 X src/kernel_current/fern/fe_locl.lsp 1 X src/kernel_current/fern/fern.c 5 X src/kernel_current/fern/fern.lsp 2 X src/kernel_current/fern/fgod.lsp 3 X src/kernel_current/fern/fph.lsp 1 X src/kernel_current/fern/fx.lsp 4 X src/kernel_current/fern/load_bal.lsp 1 X src/kernel_current/fern/local.lsp 2 X src/kernel_current/fern/zoot.lsp 1 X src/kernel_current/include 1 X src/kernel_current/include/fern.h 1 X src/kernel_current/include/fern_prims.h 1 X src/kernel_current/include/kernel.h 4 X src/kernel_current/include/world.h 3 X src/kernel_current/include/xv_native.h 2 X src/kernel_current/include/xv_native_prims.h 1 X src/kernel_current/nancy 1 X src/kernel_current/nancy/nancy_fundamental.c 12 X src/kernel_current/nancy/nancy_match.c 8 X src/kernel_current/shell 1 X src/kernel_current/shell/main.c 1 X src/kernel_current/shell/shell.c 4 X src/kernel_current/shell/xv_glutils.c 14 X src/kernel_current/shell/xv_native.c 10 X src/kernel_current/talk 1 X src/kernel_current/talk/shmem.c 3 X src/kernel_current/talk/socket.c 8 X src/kernel_current/talk/talk.c 11 X src/machine_specific.mk 1 X src/utils 1 X src/utils/error_check.c 1 X src/utils/makefile 1 X src/utils/xform_prims.c 9 X src/utils/xform_prims.h 1 X src/utils/xv_utils.c 6 X src/utils/xv_utils.h 1 X src/xlisp 1 X src/xlisp/Makefile 1 X src/xlisp/Makefile.basic 1 X src/xlisp/Makefile.machine_specific 1 X src/xlisp/bin 1 X src/xlisp/lib 1 X src/xlisp/xcore 1 X src/xlisp/xcore/c 1 X src/xlisp/xcore/c/COPYRIGHT 1 X src/xlisp/xcore/c/ChangeLog 3 X src/xlisp/xcore/c/Makefile 1 X src/xlisp/xcore/c/osdefs.h 1 X src/xlisp/xcore/c/osptrs.h 1 X src/xlisp/xcore/c/unixstuff.c 6 X src/xlisp/xcore/c/xlbfun.c 9 X src/xlisp/xcore/c/xlcont.c 12 X src/xlisp/xcore/c/xldbug.c 2 X src/xlisp/xcore/c/xldmem.c 8 X src/xlisp/xcore/c/xldmem.h 3 X src/xlisp/xcore/c/xleval.c 10 X src/xlisp/xcore/c/xlfio.c 6 X src/xlisp/xcore/c/xlftab.c 10 X src/xlisp/xcore/c/xlglob.c 2 X src/xlisp/xcore/c/xlimage.c 5 X src/xlisp/xcore/c/xlinit.c 4 X src/xlisp/xcore/c/xlio.c 2 X src/xlisp/xcore/c/xlisp.h 6 X src/xlisp/xcore/c/xljump.c 2 X src/xlisp/xcore/c/xllist.c 9 X src/xlisp/xcore/c/xlmath.c 6 X src/xlisp/xcore/c/xlobj.c 7 X src/xlisp/xcore/c/xlpp.c 2 X src/xlisp/xcore/c/xlprin.c 4 X src/xlisp/xcore/c/xlread.c 9 X src/xlisp/xcore/c/xlstr.c 7 X src/xlisp/xcore/c/xlstruct.c 6 X src/xlisp/xcore/c/xlsubr.c 2 X src/xlisp/xcore/c/xlsym.c 2 X src/xlisp/xcore/c/xlsys.c 2 X src/xlisp/xcore/c/xmain.c 2 X src/xlisp/xcore/doc 1 X src/xlisp/xcore/doc/internals.doc 13 X src/xlisp/xmodules.h 2 END_OF_FILE if test 5181 -ne `wc -c <'MANIFEST'`; then echo shar: \"'MANIFEST'\" unpacked with wrong size! fi # end of 'MANIFEST' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(386 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' X Xsee file docs/VEOS_The_Complete_Documentation for VEOS introduction X Xsee file kernel_private/makefile for build instructions X X[ the file docs/xlisp.ref, at 550KB, was too large to include with the X comp.sources.unix release of this package. xlisp was last posted to X comp.sources.misc in that group's tenth volume. get the manual from X an archive site if you need it. --vix ] END_OF_FILE if test 386 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'VEOS_LICENSE' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'VEOS_LICENSE'\" else echo shar: Extracting \"'VEOS_LICENSE'\" \(1853 characters\) sed "s/^X//" >'VEOS_LICENSE' <<'END_OF_FILE' X******************************************************************************* X* X* X* VEOS 2.0 Copyright (C) 1992 Geoffrey P. Coco, X* Human Interface Technology Laboratory X* X* X* Permission to use, copy, or modify these programs and their documentation X* without fee for educational and research purposes only is hereby granted, X* provided that this copyright notice appears on all copies and supporting X* documentation. For any other uses of this software, in original or modified X* form, including but not limited to distribution in whole or in part, specific X* prior permission must be obtained from HITL. These programs shall not be X* used, rewritten, or adapted as the basis of a commercial software or hardware X* product without first obtaining appropriate licenses from HITL. HITL makes no X* representations about the suitability of this software for any purpose. It is X* provided "as is" without express or implied warranty. X* X* HITL AND GEOFFREY COCO DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, X* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT X* SHALL HITL NOR GEOFFREY COCO BE LIABLE FOR ANY SPECIAL, INDIRECT OR X* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, X* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER X* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE X* OF THIS SOFTWARE. X* X* X* Questions about this software should be addressed to: X* X* Software Support X* Human Interface Technology Laboratory X* FJ-15, University of Washington X* Seattle, Washington 98195 USA X* X* or via email: X* X* veos-support@hitl.washington.edu X* X******************************************************************************* END_OF_FILE if test 1853 -ne `wc -c <'VEOS_LICENSE'`; then echo shar: \"'VEOS_LICENSE'\" unpacked with wrong size! fi # end of 'VEOS_LICENSE' fi if test ! -d 'bin' ; then echo shar: Creating directory \"'bin'\" mkdir 'bin' fi if test ! -d 'docs' ; then echo shar: Creating directory \"'docs'\" mkdir 'docs' fi if test ! -d 'kernel_private' ; then echo shar: Creating directory \"'kernel_private'\" mkdir 'kernel_private' fi if test ! -d 'kernel_private/bin' ; then echo shar: Creating directory \"'kernel_private/bin'\" mkdir 'kernel_private/bin' fi if test ! -d 'kernel_private/lib' ; then echo shar: Creating directory \"'kernel_private/lib'\" mkdir 'kernel_private/lib' fi if test ! -d 'kernel_private/src' ; then echo shar: Creating directory \"'kernel_private/src'\" mkdir 'kernel_private/src' fi if test ! -d 'kernel_private/src/fern' ; then echo shar: Creating directory \"'kernel_private/src/fern'\" mkdir 'kernel_private/src/fern' fi if test -f 'kernel_private/src/fern/fcon.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/fern/fcon.lsp'\" else echo shar: Extracting \"'kernel_private/src/fern/fcon.lsp'\" \(2705 characters\) sed "s/^X//" >'kernel_private/src/fern/fcon.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fcon.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the control flow compenent of the Fern System. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X#| X XThese functions manage fern-entity lisp code flow. They Xcompose the program control component of the Fern System and Xare collectively termed FCON. X XPrimarily, the FCON handles local behavior code management. X X|# X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; FCON Public Functions X;;----------------------------------------------------------- X X X;; pass "name" and '(function-call with args) X(defun fcon-add-react-proc (proc-name func) X (progn X (fcon-delete-react-proc proc-name) X (setf react-procs (append react-procs (list (list proc-name func)))) X )) X X;; pass "name" and '(function-call with args) X(defun fcon-add-persist-proc (proc-name func) X (progn X (fcon-delete-persist-proc proc-name) X (setf persist-procs (append persist-procs (list (list proc-name func)))) X )) X X;; pass name X(defun fcon-delete-react-proc (proc-name) X (setq react-procs X (delete proc-name react-procs :test (lambda (x y) (equal x (car y)))))) X X;; pass name X(defun fcon-delete-persist-proc (proc-name) X (setq persist-procs X (delete proc-name persist-procs :test (lambda (x y) (equal x (car y)))))) X X;;----------------------------------------------------------- X X(defun fcon-ungo (uid) X (vthrow (list uid) (list 'fcon-local-ungo))) X X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; FCON private functions X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X X(defun fcon-init () X (progn X (setq persist-procs () X react-procs ()) X t)) X X;;----------------------------------------------------------- X X(defun fcon-persist () X (progn X ;; update physical boundary from hardware X (fph-perceive) X X ;; do actual persisting X (do-procs persist-procs) X X ;; update hardware from physical boundary X (fph-exude) X )) X X(defun fcon-react () X (do-procs react-procs)) X X;;----------------------------------------------------------- X X X END_OF_FILE if test 2705 -ne `wc -c <'kernel_private/src/fern/fcon.lsp'`; then echo shar: \"'kernel_private/src/fern/fcon.lsp'\" unpacked with wrong size! fi # end of 'kernel_private/src/fern/fcon.lsp' fi if test -f 'kernel_private/src/fern/fe.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/fern/fe.lsp'\" else echo shar: Extracting \"'kernel_private/src/fern/fe.lsp'\" \(3080 characters\) sed "s/^X//" >'kernel_private/src/fern/fe.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fe.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the entity component of the Fern System. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X#| X XThese functions perform all local database operations are Xcollectively termed the FE. X XThe FE maintains the "perc" grouplspace partition. That is, Xall data associated with the Fern System is passed through Xthese functions to the grouplespace. X XInternally, the Fern System uses these functions exclusively. XAnd, in the interest of forward compatibility, Fern Xprogrammers are highly encouraged to use these functions Xexclusively to access Fern's "perc" grouplespace partition. X X|# X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; Load FE Subcomponents X;;----------------------------------------------------------- X X(load "fe_ext") X(load "fe_bnd") X(load "fe_int") X(load "fe_locl") X X;;----------------------------------------------------------- X X X X X;;=========================================================== X;; X;; FE PRIVATE FUNCTIONS X;; X;;=========================================================== X X X;;----------------------------------------------------------- X#| Xall FE functions assume that the partitions are setup like Xthis. That is, for any FE functions to work properly, the X"perc" partition must be fully articulated. X XA full "perc" partition contains the three subpartitions: X"external", "boundary", "internal". Furthermore, those Xsubpartitions must contain their respective sub-partitions. X XAn empty but articulated perception partition looks like: X X("perc" X X (;external X () ;spaces X () ;siblings X () ;filters X ) X X (;boundary X () ;virtual X () ;physical X ) X X (;internal X () ;local X () ;sublings X () ;filters X ) X X ) X X|# X X(defun fe-init () X (progn X ;; setup the "perception" grouplespace partition. X (put-gspace-partition '("perc" X () ;; external X () ;; boundary X () ;; internal X )) X X ;; setup "external" sub-partitions. X (fe-put.ext '(() ;; current spaces. X () ;; siblings among all spaces. X () ;; perceptual filters. X )) X X ;; setup "boundary" sub-partitions. X (fe-put.bndry (list self ;; self uid. X () ;; virtual object-list. X () ;; physical object-list. X )) X X ;; setup "internal" sub-partitions. X (fe-put.int '(() ;; local memory X () ;; the space for the entity's internal world X () ;; the filters for each contained entity X )) X )) X X;;----------------------------------------------------------- END_OF_FILE if test 3080 -ne `wc -c <'kernel_private/src/fern/fe.lsp'`; then echo shar: \"'kernel_private/src/fern/fe.lsp'\" unpacked with wrong size! fi # end of 'kernel_private/src/fern/fe.lsp' fi if test -f 'kernel_private/src/fern/fe_locl.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/fern/fe_locl.lsp'\" else echo shar: Extracting \"'kernel_private/src/fern/fe_locl.lsp'\" \(2295 characters\) sed "s/^X//" >'kernel_private/src/fern/fe_locl.lsp' <<'END_OF_FILE' X; X; local.lsp X; X; Copyright (C) 1992 Washington Technology Center X; X; by Andrew MacDonald at the HITLab X; X; object caching in the local workspace X; X; this is based on fe_bnd.lsp and fe_int.lsp, and manipulates objects X; in perc.int.locl X; X; functions are of the form fe-(put|get|copy).int.locl.(accessors), X; with macros of the form lo-(put|get|copy).(accessors) defined X; for each function X; X;;----------------------------------------------------------- X;; file: fe.lsp X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;=========================================================== X;; Show Local Object Space X;;=========================================================== X X(defun lo-dump () X (pprint (fe-copy.int.locl))) X X(defun lo-empty () X (pprint (fe-xtrct.int.locl))) X X;;=========================================================== X;; Macro Shortcuts X;;=========================================================== X X(defmacro lo-jam-ob (ob) X `(fe-jam.int.locl.ob ,ob)) X X(defmacro lo-put-ob (ob) X `(fe-put.int.locl.ob ,ob)) X X(defmacro lo-copy-ob (ob-name) X `(fe-copy.int.locl.ob ,ob-name)) X X(defmacro lo-get-ob (ob-name) X `(fe-get.int.locl.ob ,ob-name)) X X;---------------------------------------------------------------- X X(defmacro lo-copy-ob-names () X '(fe-copy.int.locl.ob.names)) X X;---------------------------------------------------------------- X X(defmacro lo-jab-attr (ob-name attr) X `(fe-jam.int.locl.ob.attr ,ob-name ,attr)) X X(defmacro lo-put-attr (ob-name attr) X `(fe-put.int.locl.ob.attr ,ob-name ,attr)) X X;---------------------------------------------------------------- X X(defmacro lo-get-attr (ob-name attr-name) X `(fe-get.int.locl.ob.attr ,ob-name ,attr-name)) X X;---------------------------------------------------------------- X X(defmacro lo-copy-attr (ob-name attr-name) X `(fe-copy.int.locl.ob.attr ,ob-name ,attr-name)) X X(defmacro lo-copy-attr-names (ob-name) X `(fe-copy.int.locl.ob.attr.names ,ob-name)) X X(defmacro lo-copy-attr-val (ob-name attr-name) X `(fe-copy.int.locl.ob.attr.val ,ob-name ,attr-name)) X END_OF_FILE if test 2295 -ne `wc -c <'kernel_private/src/fern/fe_locl.lsp'`; then echo shar: \"'kernel_private/src/fern/fe_locl.lsp'\" unpacked with wrong size! fi # end of 'kernel_private/src/fern/fe_locl.lsp' fi if test -f 'kernel_private/src/fern/fph.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/fern/fph.lsp'\" else echo shar: Extracting \"'kernel_private/src/fern/fph.lsp'\" \(2467 characters\) sed "s/^X//" >'kernel_private/src/fern/fph.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fph.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the FPH compenent of the Fern System. X;; X;; creation: March 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X#| X XThese functions provide users of the Fern System with a Xstandardized mechanism for coupling hardware-specific Xinterface code to objects in the 'physical' boundary. They Xrepresent the FPH component of the Fern System. X X|# X;;----------------------------------------------------------- X X X;;=========================================================== X;; X;; FPH PUBLIC FUNCTIONS X;; X;;=========================================================== X X;; pass "name" and '(function-call with args) X(defun fph-add-input-proc (proc-name func) X (progn X (fph-delete-input-proc proc-name) X (setf pre-persist-procs (append pre-persist-procs (list (list proc-name func)))) X )) X X;; pass "name" and '(function-call with args) X(defun fph-add-output-proc (proc-name func) X (progn X (fph-delete-output-proc proc-name) X (setf post-persist-procs (append post-persist-procs (list (list proc-name func)))) X )) X X;; pass name X(defun fph-delete-input-proc (proc-name) X (setq pre-persist-procs X (delete proc-name pre-persist-procs :test (lambda (x y) (equal x (car y)))))) X X;; pass name X(defun fph-delete-output-proc (proc-name) X (setq post-persist-procs X (delete proc-name post-persist-procs :test (lambda (x y) (equal x (car y)))))) X X X;;=========================================================== X;; X;; FPH PRIVATE FUNCTIONS X;; X;;=========================================================== X X X;;----------------------------------------------------------- X X(defun fph-init () X (setq pre-persist-procs () X post-persist-procs ()) X ) X X;;----------------------------------------------------------- X X;; update physical boundary from hardware X(defun fph-perceive () X (do-procs pre-persist-procs) X ) X X;; update hardware from physical boundary X(defun fph-exude () X (do-procs post-persist-procs) X ) X;;----------------------------------------------------------- X X X END_OF_FILE if test 2467 -ne `wc -c <'kernel_private/src/fern/fph.lsp'`; then echo shar: \"'kernel_private/src/fern/fph.lsp'\" unpacked with wrong size! fi # end of 'kernel_private/src/fern/fph.lsp' fi if test -f 'kernel_private/src/fern/load_bal.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/fern/load_bal.lsp'\" else echo shar: Extracting \"'kernel_private/src/fern/load_bal.lsp'\" \(2025 characters\) sed "s/^X//" >'kernel_private/src/fern/load_bal.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fbal.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the Load Balancing module of the Fern System. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X#| X XThese functions provide transparent load-balancing for Fern XEntities and compose the Load Balancing (or FBAL) component Xof the Fern System. X XThe FBAL component ensures that the various computational Xrequirements of a running scenario are evenly distributed Xacross the local area network workstations. X XSimply, entity computational requirements are rated with a Xscalar, as are hardware capabilities. Also important are the Xhardware peripheral requirements an entity. X XThese factors are rules for inferencing on which local Xnetwork host to place the next entity. The one local-area XFBAL entity (the universe, by convention) maintains the Xdynamic database of network-node/entity-load information. X XNo dynamic balancing is projected (i.e. migrating entities). X X|# X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; FBAL Private Functions X;;----------------------------------------------------------- X X(define fbal-init () X (progn X (vget '(> ("balance" @@) **)) X (vput '("balance" () ()) '(^ @@)) X X )) X X X(defun fbal-make-node (binary program) X (vthrow (list universe) `(fbal-remote-new-make-node binary X program X ,self)) X ) X X X(defun fbal-remote-make-node (binary program ancestor) X (fcon-make-node (fbal-avail-host binary program) binary program ancestor) X ) X X X(defun fbal-avail-host (binary program) X X ) X X X X END_OF_FILE if test 2025 -ne `wc -c <'kernel_private/src/fern/load_bal.lsp'`; then echo shar: \"'kernel_private/src/fern/load_bal.lsp'\" unpacked with wrong size! fi # end of 'kernel_private/src/fern/load_bal.lsp' fi if test -f 'kernel_private/src/fern/zoot.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/fern/zoot.lsp'\" else echo shar: Extracting \"'kernel_private/src/fern/zoot.lsp'\" \(333 characters\) sed "s/^X//" >'kernel_private/src/fern/zoot.lsp' <<'END_OF_FILE' X(read-time) X(do ((i 0)) X ((> i 10000) t) X X (let* ((a (+ 1 2)) X (b (+ a 1))) X X (+ a b)) X (setq i (1+ i)) X ) X(printf "time after let loop: " (read-time)) X X(do ((i 0)) X ((> i 10000) t) X X (setq a (+ 1 2)) X (setq b (+ a 1)) X (+ a b) X (setq i (1+ i)) X ) X X(printf "time after setq loop: " (read-time)) END_OF_FILE if test 333 -ne `wc -c <'kernel_private/src/fern/zoot.lsp'`; then echo shar: \"'kernel_private/src/fern/zoot.lsp'\" unpacked with wrong size! fi # end of 'kernel_private/src/fern/zoot.lsp' fi if test ! -d 'kernel_private/src/include' ; then echo shar: Creating directory \"'kernel_private/src/include'\" mkdir 'kernel_private/src/include' fi if test -f 'kernel_private/src/include/fern.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/include/fern.h'\" else echo shar: Extracting \"'kernel_private/src/include/fern.h'\" \(1899 characters\) sed "s/^X//" >'kernel_private/src/include/fern.h' <<'END_OF_FILE' X/**************************************************************************************** X * file: fern.h * X * * X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X/*--------------------------------------------------------------------------------* X Useful Externs X *--------------------------------------------------------------------------------*/ X Xextern LVAL xsendmsg0(); Xextern LVAL s_unbound; Xextern LVAL true; Xextern LVAL s_stderr; Xextern LVAL s_quote; X Xextern void Native_NextMsg(); X X/*--------------------------------------------------------------------------------* X Fern Data Structures X *--------------------------------------------------------------------------------*/ X Xtypedef struct stmpnode { X X str63 sHost; X int iPort; X float fData; X struct stmpnode *pNext; X X } TStampEntRec, X *TPStampEntRec, X **THStampEntRec; X Xtypedef TPStampEntRec TStampEntHash[13]; X X/*--------------------------------------------------------------------------------* X Defines X *--------------------------------------------------------------------------------*/ X X#define FBASE_HASH_HOST(sHost) ((sHost[0] - 'a') / 2) X#define FBASE_HASH_HIT(pXVect, pFNode) \ X(getfixnum(getelement(pXVect, 1)) == (pFNode)->iPort && \ X strcmp(getstring(getelement(pXVect, 0)), (pFNode)->sHost) == 0) X X/*--------------------------------------------------------------------------------*/ END_OF_FILE if test 1899 -ne `wc -c <'kernel_private/src/include/fern.h'`; then echo shar: \"'kernel_private/src/include/fern.h'\" unpacked with wrong size! fi # end of 'kernel_private/src/include/fern.h' fi if test -f 'kernel_private/src/include/fern_prims.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/include/fern_prims.h'\" else echo shar: Extracting \"'kernel_private/src/include/fern_prims.h'\" \(1892 characters\) sed "s/^X//" >'kernel_private/src/include/fern_prims.h' <<'END_OF_FILE' X/**************************************************************************************** X * file: fern_prims.h * X * * X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X/*--------------------------------------------------------------------------------*/ X X#ifdef FERN_LOAD X XDEFINE_SUBR("FCON-GO", Fbase_fcon_go) XDEFINE_SUBR("FCON-LOCAL-UNGO", Fbase_fcon_local_ungo) XDEFINE_SUBR("FCON-TIME", Fbase_fcon_time) XDEFINE_SUBR("FBASE-INIT", Fbase_Init) XDEFINE_SUBR("FBASE-NEW-HTAB", Fbase_Hash_NewTab) XDEFINE_SUBR("FBASE-PUT-HASH", Fbase_Hash_AddUid) XDEFINE_SUBR("FBASE-GET-HASH", Fbase_Hash_RemoveUid) XDEFINE_SUBR("FBASE-HASH", Fbase_Hash_HashUid) XDEFINE_SUBR("FE-COPY.INT.SUBS", Fbase_CopyIntSubs) XDEFINE_SUBR("FBASE-INIT-COPY.INT.SUBS", Fbase_Init_CopyIntSubs) XDEFINE_SUBR("FE-COPY.BNDRY.VRT", Fbase_CopyBndryVrt) XDEFINE_SUBR("FBASE-INIT-COPY.BNDRY.VRT", Fbase_Init_CopyBndryVrt) X X#endif X X X#ifdef FERN_DEFS X Xextern LVAL Fbase_fcon_go(); Xextern LVAL Fbase_fcon_local_ungo(); Xextern LVAL Fbase_fcon_time(); Xextern LVAL Fbase_Init(); Xextern LVAL Fbase_Hash_NewTab(); Xextern LVAL Fbase_Hash_AddUid(); Xextern LVAL Fbase_Hash_RemoveUid(); Xextern LVAL Fbase_Hash_HashUid(); Xextern LVAL Fbase_CopyIntSubs(); Xextern LVAL Fbase_CopyBndryVrt(); Xextern LVAL Fbase_Init_CopyIntSubs(); Xextern LVAL Fbase_Init_CopyBndryVrt(); X X#endif X X/*--------------------------------------------------------------------------------*/ END_OF_FILE if test 1892 -ne `wc -c <'kernel_private/src/include/fern_prims.h'`; then echo shar: \"'kernel_private/src/include/fern_prims.h'\" unpacked with wrong size! fi # end of 'kernel_private/src/include/fern_prims.h' fi if test -f 'kernel_private/src/include/xv_native_prims.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/include/xv_native_prims.h'\" else echo shar: Extracting \"'kernel_private/src/include/xv_native_prims.h'\" \(1763 characters\) sed "s/^X//" >'kernel_private/src/include/xv_native_prims.h' <<'END_OF_FILE' X/**************************************************************************************** X * * X * file: xv_native_prims.h * X * * X * the xlisp include file for integration with VEOS native prims. * X * * X * creation: December, 1991 * X * * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X X/****************************************************************************************/ X X#ifdef VEOS_NATIVE_LOAD X XDEFINE_SUBR("VPUT", Native_Put ) XDEFINE_SUBR("VGET", Native_Get ) XDEFINE_SUBR("VCOPY", Native_Copy ) XDEFINE_SUBR("VINIT", Native_Init ) XDEFINE_SUBR("VCLOSE", Native_Close ) XDEFINE_SUBR("VTASK", Native_Task ) XDEFINE_SUBR("VTHROW", Native_Throw ) XDEFINE_SUBR("VCATCH", Native_Catch ) XDEFINE_SUBR("VNOSIGNALS", Native_NoSignals ) XDEFINE_SUBR("VBUGS", Native_Bugs ) XDEFINE_SUBR("VZOOT", Native_Zoot ) XDEFINE_SUBR("VMINTIME", Native_MinTime ) X X#endif X X X#ifdef VEOS_NATIVE_DEFS X Xextern LVAL Native_Put(); Xextern LVAL Native_Get(); Xextern LVAL Native_Copy(); Xextern LVAL Native_Init(); Xextern LVAL Native_Close(); Xextern LVAL Native_Task(); Xextern LVAL Native_Throw(); Xextern LVAL Native_Catch(); Xextern LVAL Native_NoSignals(); Xextern LVAL Native_Bugs(); Xextern LVAL Native_Zoot(); Xextern LVAL Native_MinTime(); X X#endif X X/****************************************************************************************/ END_OF_FILE if test 1763 -ne `wc -c <'kernel_private/src/include/xv_native_prims.h'`; then echo shar: \"'kernel_private/src/include/xv_native_prims.h'\" unpacked with wrong size! fi # end of 'kernel_private/src/include/xv_native_prims.h' fi if test ! -d 'kernel_private/src/nancy' ; then echo shar: Creating directory \"'kernel_private/src/nancy'\" mkdir 'kernel_private/src/nancy' fi if test ! -d 'kernel_private/src/shell' ; then echo shar: Creating directory \"'kernel_private/src/shell'\" mkdir 'kernel_private/src/shell' fi if test -f 'kernel_private/src/shell/main.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'kernel_private/src/shell/main.c'\" else echo shar: Extracting \"'kernel_private/src/shell/main.c'\" \(1899 characters\) sed "s/^X//" >'kernel_private/src/shell/main.c' <<'END_OF_FILE' X/**************************************************************************************** X * * X * file: main.c * X * * X * An example controlling of veos using xlisp interface. * X * * X * creation: December, 1991 * X * * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X#include "world.h" X Xextern xmain(); X X X/**************************************************************************************** X * main X * launchpad of any stand-alone program X ****************************************************************************************/ Xmain(argc, argv) X int argc; X char *argv[]; X{ X /** call the xlisp controller, never returns **/ X xmain(argc, argv); X } X X X/**************************************************************************************** X * xlinclude_hybrid_prims X * lisp calls this function to load user-defined lisp primitives X ****************************************************************************************/ Xxlinclude_hybrid_prims() X{ X /** load veos native lisp primitive entries **/ X Shell_LoadNativePrims(); X Fern_LoadPrims(); X XVUtils_LoadPrims(); X } X X X X/**************************************************************************************** X * xlshutdown_hybrid X * lisp calls this function before graceful exit X ****************************************************************************************/ Xxlshutdown_hybrid() X{ X /** let the kernel unwind **/ X Kernel_Shutdown(); X } X X X X END_OF_FILE if test 1899 -ne `wc -c <'kernel_private/src/shell/main.c'`; then echo shar: \"'kernel_private/src/shell/main.c'\" unpacked with wrong size! fi # end of 'kernel_private/src/shell/main.c' fi if test ! -d 'kernel_private/src/talk' ; then echo shar: Creating directory \"'kernel_private/src/talk'\" mkdir 'kernel_private/src/talk' fi if test ! -d 'lib' ; then echo shar: Creating directory \"'lib'\" mkdir 'lib' fi if test ! -d 'lisp' ; then echo shar: Creating directory \"'lisp'\" mkdir 'lisp' fi if test -f 'lisp/ancestor-maker.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lisp/ancestor-maker.lsp'\" else echo shar: Extracting \"'lisp/ancestor-maker.lsp'\" \(1300 characters\) sed "s/^X//" >'lisp/ancestor-maker.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fern.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file builds the 'ancestor files' used by FERN X;; when creating new a new entity. X;; see functions fgod-make-node and fgod-be-node for details X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X(setq hosts X '("bandersnatch" X "callay" X "frabjous" X "vorpal" X "slithy" X "jabberwock" X "brillig" X "hawaii" X "iris2" X "hal" X "passion" X "envy" X "enos" X )) X X(do ((hosts hosts) fp filename host-name) X ((null hosts)) X (setq host-name (car hosts)) X X (do ((port 5500)) X ((> port 5510)) X X (setq file-name (sprintf host-name "_" port ".lsp")) X X (cond ((setq fp (open file-name :direction :output)) X X ;; actual code generation X (print `(setq fern-ancestor ,(vector host-name port)) fp) X (print `(setq host-xdisplay ,(sprintf host-name ":0.0")) fp) X (close fp))) X X (setq port (1+ port)) X ) X (setq hosts (cdr hosts)) X ) X X END_OF_FILE if test 1300 -ne `wc -c <'lisp/ancestor-maker.lsp'`; then echo shar: \"'lisp/ancestor-maker.lsp'\" unpacked with wrong size! fi # end of 'lisp/ancestor-maker.lsp' fi if test ! -d 'lisp/ancestors' ; then echo shar: Creating directory \"'lisp/ancestors'\" mkdir 'lisp/ancestors' fi if test -f 'lisp/fern.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lisp/fern.lsp'\" else echo shar: Extracting \"'lisp/fern.lsp'\" \(632 characters\) sed "s/^X//" >'lisp/fern.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fern.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file invokes FERN from any directory. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X(setq load-path "/home/voodoo/veos/src/kernel_current/fern/") X(load "fern") X(setq load-path NIL) X X X END_OF_FILE if test 632 -ne `wc -c <'lisp/fern.lsp'`; then echo shar: \"'lisp/fern.lsp'\" unpacked with wrong size! fi # end of 'lisp/fern.lsp' fi if test -f 'lisp/file_io.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lisp/file_io.lsp'\" else echo shar: Extracting \"'lisp/file_io.lsp'\" \(522 characters\) sed "s/^X//" >'lisp/file_io.lsp' <<'END_OF_FILE' X;; save partition of grouplespace to given file X;; specify partition with pattern arg X X(defun save-gspace (file-name pattern) X X (let (fp) X (cond ((setq fp (open file-name :direction :output)) X X (print (vcopy pattern) fp) X (close fp) X t)))) X X X X;; load file into partition of grouplespace X;; specify partition with pattern arg X X(defun load-gspace (file-name pattern) X X (let (err fp) X (cond ((setq fp (open file-name :direction :input)) X X (setq err (vput (read fp) pattern)) X (close fp) X err)))) X X X END_OF_FILE if test 522 -ne `wc -c <'lisp/file_io.lsp'`; then echo shar: \"'lisp/file_io.lsp'\" unpacked with wrong size! fi # end of 'lisp/file_io.lsp' fi if test -f 'lisp/interactive.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lisp/interactive.lsp'\" else echo shar: Extracting \"'lisp/interactive.lsp'\" \(1284 characters\) sed "s/^X//" >'lisp/interactive.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: interactive.lsp X;; X;; Start up an autonomous entity X;; X;; creation: March 11, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X;; Module Initialization X;;----------------------------------------------------------- X X X;; FERN X X(load "/home/veos/lisp/fern") X X X X;;----------------------------------------------------------- X;; Define Behavior X;;----------------------------------------------------------- X X(defun get-command () X (progn X (printf1 "\n\nPersist =>> ") X (pprint (eval (read))) X (printf "\n\n") X )) X X X;;----------------------------------------------------------- X;; Instill Behavior X;;----------------------------------------------------------- X X(fcon-add-persist-proc "get-command" '(get-command)) X X X;;----------------------------------------------------------- X;; Begin X;;----------------------------------------------------------- X X(fcon-go) X END_OF_FILE if test 1284 -ne `wc -c <'lisp/interactive.lsp'`; then echo shar: \"'lisp/interactive.lsp'\" unpacked with wrong size! fi # end of 'lisp/interactive.lsp' fi if test -f 'lisp/tabula_rasa.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lisp/tabula_rasa.lsp'\" else echo shar: Extracting \"'lisp/tabula_rasa.lsp'\" \(1439 characters\) sed "s/^X//" >'lisp/tabula_rasa.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: tabula_rasa.lsp X;; X;; Start up an autonomous entity with UM-Engine X;; X;; creation: March 11, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; Module Initialization X;;----------------------------------------------------------- X X;; FERN X(load "/home/veos/lisp/fern") X X;; The Universal Motivator Engine X(setq load-path "/home/colin/") X(load "um-engine") X X X X;;----------------------------------------------------------- X;; Define Behavior X;;----------------------------------------------------------- X X(setq sane t) X X(defun do-sane () X (cond (sane (system "sleep 2")))) X X X X;;----------------------------------------------------------- X;; Instill Behavior X;;----------------------------------------------------------- X X(fcon-add-persist-proc "dot" '(printf "persist..")) X(fcon-add-persist-proc "sanity" '(do-sane)) X(fcon-add-react-proc "dump" '(pprint (fe-copy.ext.sibs))) X X X X;;----------------------------------------------------------- X;; Begin X;;----------------------------------------------------------- X X(fcon-go) END_OF_FILE if test 1439 -ne `wc -c <'lisp/tabula_rasa.lsp'`; then echo shar: \"'lisp/tabula_rasa.lsp'\" unpacked with wrong size! fi # end of 'lisp/tabula_rasa.lsp' fi if test -f 'lisp/test_rpc.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lisp/test_rpc.lsp'\" else echo shar: Extracting \"'lisp/test_rpc.lsp'\" \(353 characters\) sed "s/^X//" >'lisp/test_rpc.lsp' <<'END_OF_FILE' X(setq self (vinit)) X X X(defun go (other) X (read-time) X (do ((times 0)) X ((> times 1000) X (printf1 "total time: ") (printf (read-time))) X X (vthrow `(,other) `(vthrow '(,self) "message")) X (do () X ((vcatch)) X (vtask)) X X (setq times (1+ times)) X )) X X X(defun gone () X (loop X (vtask) X (eval (vcatch)) X )) X X END_OF_FILE if test 353 -ne `wc -c <'lisp/test_rpc.lsp'`; then echo shar: \"'lisp/test_rpc.lsp'\" unpacked with wrong size! fi # end of 'lisp/test_rpc.lsp' fi if test ! -d 'src' ; then echo shar: Creating directory \"'src'\" mkdir 'src' fi if test ! -d 'src/include' ; then echo shar: Creating directory \"'src/include'\" mkdir 'src/include' fi if test ! -d 'src/kernel_current' ; then echo shar: Creating directory \"'src/kernel_current'\" mkdir 'src/kernel_current' fi if test ! -d 'src/kernel_current/fern' ; then echo shar: Creating directory \"'src/kernel_current/fern'\" mkdir 'src/kernel_current/fern' fi if test -f 'src/kernel_current/fern/fcon.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/fern/fcon.lsp'\" else echo shar: Extracting \"'src/kernel_current/fern/fcon.lsp'\" \(2705 characters\) sed "s/^X//" >'src/kernel_current/fern/fcon.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fcon.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the control flow compenent of the Fern System. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X#| X XThese functions manage fern-entity lisp code flow. They Xcompose the program control component of the Fern System and Xare collectively termed FCON. X XPrimarily, the FCON handles local behavior code management. X X|# X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; FCON Public Functions X;;----------------------------------------------------------- X X X;; pass "name" and '(function-call with args) X(defun fcon-add-react-proc (proc-name func) X (progn X (fcon-delete-react-proc proc-name) X (setf react-procs (append react-procs (list (list proc-name func)))) X )) X X;; pass "name" and '(function-call with args) X(defun fcon-add-persist-proc (proc-name func) X (progn X (fcon-delete-persist-proc proc-name) X (setf persist-procs (append persist-procs (list (list proc-name func)))) X )) X X;; pass name X(defun fcon-delete-react-proc (proc-name) X (setq react-procs X (delete proc-name react-procs :test (lambda (x y) (equal x (car y)))))) X X;; pass name X(defun fcon-delete-persist-proc (proc-name) X (setq persist-procs X (delete proc-name persist-procs :test (lambda (x y) (equal x (car y)))))) X X;;----------------------------------------------------------- X X(defun fcon-ungo (uid) X (vthrow (list uid) (list 'fcon-local-ungo))) X X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; FCON private functions X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X X(defun fcon-init () X (progn X (setq persist-procs () X react-procs ()) X t)) X X;;----------------------------------------------------------- X X(defun fcon-persist () X (progn X ;; update physical boundary from hardware X (fph-perceive) X X ;; do actual persisting X (do-procs persist-procs) X X ;; update hardware from physical boundary X (fph-exude) X )) X X(defun fcon-react () X (do-procs react-procs)) X X;;----------------------------------------------------------- X X X END_OF_FILE if test 2705 -ne `wc -c <'src/kernel_current/fern/fcon.lsp'`; then echo shar: \"'src/kernel_current/fern/fcon.lsp'\" unpacked with wrong size! fi # end of 'src/kernel_current/fern/fcon.lsp' fi if test -f 'src/kernel_current/fern/fe.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/fern/fe.lsp'\" else echo shar: Extracting \"'src/kernel_current/fern/fe.lsp'\" \(3080 characters\) sed "s/^X//" >'src/kernel_current/fern/fe.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fe.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the entity component of the Fern System. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X#| X XThese functions perform all local database operations are Xcollectively termed the FE. X XThe FE maintains the "perc" grouplspace partition. That is, Xall data associated with the Fern System is passed through Xthese functions to the grouplespace. X XInternally, the Fern System uses these functions exclusively. XAnd, in the interest of forward compatibility, Fern Xprogrammers are highly encouraged to use these functions Xexclusively to access Fern's "perc" grouplespace partition. X X|# X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; Load FE Subcomponents X;;----------------------------------------------------------- X X(load "fe_ext") X(load "fe_bnd") X(load "fe_int") X(load "fe_locl") X X;;----------------------------------------------------------- X X X X X;;=========================================================== X;; X;; FE PRIVATE FUNCTIONS X;; X;;=========================================================== X X X;;----------------------------------------------------------- X#| Xall FE functions assume that the partitions are setup like Xthis. That is, for any FE functions to work properly, the X"perc" partition must be fully articulated. X XA full "perc" partition contains the three subpartitions: X"external", "boundary", "internal". Furthermore, those Xsubpartitions must contain their respective sub-partitions. X XAn empty but articulated perception partition looks like: X X("perc" X X (;external X () ;spaces X () ;siblings X () ;filters X ) X X (;boundary X () ;virtual X () ;physical X ) X X (;internal X () ;local X () ;sublings X () ;filters X ) X X ) X X|# X X(defun fe-init () X (progn X ;; setup the "perception" grouplespace partition. X (put-gspace-partition '("perc" X () ;; external X () ;; boundary X () ;; internal X )) X X ;; setup "external" sub-partitions. X (fe-put.ext '(() ;; current spaces. X () ;; siblings among all spaces. X () ;; perceptual filters. X )) X X ;; setup "boundary" sub-partitions. X (fe-put.bndry (list self ;; self uid. X () ;; virtual object-list. X () ;; physical object-list. X )) X X ;; setup "internal" sub-partitions. X (fe-put.int '(() ;; local memory X () ;; the space for the entity's internal world X () ;; the filters for each contained entity X )) X )) X X;;----------------------------------------------------------- END_OF_FILE if test 3080 -ne `wc -c <'src/kernel_current/fern/fe.lsp'`; then echo shar: \"'src/kernel_current/fern/fe.lsp'\" unpacked with wrong size! fi # end of 'src/kernel_current/fern/fe.lsp' fi if test -f 'src/kernel_current/fern/fe_locl.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/fern/fe_locl.lsp'\" else echo shar: Extracting \"'src/kernel_current/fern/fe_locl.lsp'\" \(2295 characters\) sed "s/^X//" >'src/kernel_current/fern/fe_locl.lsp' <<'END_OF_FILE' X; X; local.lsp X; X; Copyright (C) 1992 Washington Technology Center X; X; by Andrew MacDonald at the HITLab X; X; object caching in the local workspace X; X; this is based on fe_bnd.lsp and fe_int.lsp, and manipulates objects X; in perc.int.locl X; X; functions are of the form fe-(put|get|copy).int.locl.(accessors), X; with macros of the form lo-(put|get|copy).(accessors) defined X; for each function X; X;;----------------------------------------------------------- X;; file: fe.lsp X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;=========================================================== X;; Show Local Object Space X;;=========================================================== X X(defun lo-dump () X (pprint (fe-copy.int.locl))) X X(defun lo-empty () X (pprint (fe-xtrct.int.locl))) X X;;=========================================================== X;; Macro Shortcuts X;;=========================================================== X X(defmacro lo-jam-ob (ob) X `(fe-jam.int.locl.ob ,ob)) X X(defmacro lo-put-ob (ob) X `(fe-put.int.locl.ob ,ob)) X X(defmacro lo-copy-ob (ob-name) X `(fe-copy.int.locl.ob ,ob-name)) X X(defmacro lo-get-ob (ob-name) X `(fe-get.int.locl.ob ,ob-name)) X X;---------------------------------------------------------------- X X(defmacro lo-copy-ob-names () X '(fe-copy.int.locl.ob.names)) X X;---------------------------------------------------------------- X X(defmacro lo-jab-attr (ob-name attr) X `(fe-jam.int.locl.ob.attr ,ob-name ,attr)) X X(defmacro lo-put-attr (ob-name attr) X `(fe-put.int.locl.ob.attr ,ob-name ,attr)) X X;---------------------------------------------------------------- X X(defmacro lo-get-attr (ob-name attr-name) X `(fe-get.int.locl.ob.attr ,ob-name ,attr-name)) X X;---------------------------------------------------------------- X X(defmacro lo-copy-attr (ob-name attr-name) X `(fe-copy.int.locl.ob.attr ,ob-name ,attr-name)) X X(defmacro lo-copy-attr-names (ob-name) X `(fe-copy.int.locl.ob.attr.names ,ob-name)) X X(defmacro lo-copy-attr-val (ob-name attr-name) X `(fe-copy.int.locl.ob.attr.val ,ob-name ,attr-name)) X END_OF_FILE if test 2295 -ne `wc -c <'src/kernel_current/fern/fe_locl.lsp'`; then echo shar: \"'src/kernel_current/fern/fe_locl.lsp'\" unpacked with wrong size! fi # end of 'src/kernel_current/fern/fe_locl.lsp' fi if test -f 'src/kernel_current/fern/fph.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/fern/fph.lsp'\" else echo shar: Extracting \"'src/kernel_current/fern/fph.lsp'\" \(2467 characters\) sed "s/^X//" >'src/kernel_current/fern/fph.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fph.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the FPH compenent of the Fern System. X;; X;; creation: March 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Geoffrey P. Coco, X;; Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X#| X XThese functions provide users of the Fern System with a Xstandardized mechanism for coupling hardware-specific Xinterface code to objects in the 'physical' boundary. They Xrepresent the FPH component of the Fern System. X X|# X;;----------------------------------------------------------- X X X;;=========================================================== X;; X;; FPH PUBLIC FUNCTIONS X;; X;;=========================================================== X X;; pass "name" and '(function-call with args) X(defun fph-add-input-proc (proc-name func) X (progn X (fph-delete-input-proc proc-name) X (setf pre-persist-procs (append pre-persist-procs (list (list proc-name func)))) X )) X X;; pass "name" and '(function-call with args) X(defun fph-add-output-proc (proc-name func) X (progn X (fph-delete-output-proc proc-name) X (setf post-persist-procs (append post-persist-procs (list (list proc-name func)))) X )) X X;; pass name X(defun fph-delete-input-proc (proc-name) X (setq pre-persist-procs X (delete proc-name pre-persist-procs :test (lambda (x y) (equal x (car y)))))) X X;; pass name X(defun fph-delete-output-proc (proc-name) X (setq post-persist-procs X (delete proc-name post-persist-procs :test (lambda (x y) (equal x (car y)))))) X X X;;=========================================================== X;; X;; FPH PRIVATE FUNCTIONS X;; X;;=========================================================== X X X;;----------------------------------------------------------- X X(defun fph-init () X (setq pre-persist-procs () X post-persist-procs ()) X ) X X;;----------------------------------------------------------- X X;; update physical boundary from hardware X(defun fph-perceive () X (do-procs pre-persist-procs) X ) X X;; update hardware from physical boundary X(defun fph-exude () X (do-procs post-persist-procs) X ) X;;----------------------------------------------------------- X X X END_OF_FILE if test 2467 -ne `wc -c <'src/kernel_current/fern/fph.lsp'`; then echo shar: \"'src/kernel_current/fern/fph.lsp'\" unpacked with wrong size! fi # end of 'src/kernel_current/fern/fph.lsp' fi if test -f 'src/kernel_current/fern/load_bal.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/fern/load_bal.lsp'\" else echo shar: Extracting \"'src/kernel_current/fern/load_bal.lsp'\" \(2025 characters\) sed "s/^X//" >'src/kernel_current/fern/load_bal.lsp' <<'END_OF_FILE' X;;----------------------------------------------------------- X;; file: fbal.lsp X;; X;; FERN is the Fractal Entity Relativity Node. X;; This file is the Load Balancing module of the Fern System. X;; X;; creation: February 28, 1992 X;; X;; by Geoffrey P. Coco at the HITLab, Seattle X;;----------------------------------------------------------- X X;;----------------------------------------------------------- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle X;;----------------------------------------------------------- X X X;;----------------------------------------------------------- X#| X XThese functions provide transparent load-balancing for Fern XEntities and compose the Load Balancing (or FBAL) component Xof the Fern System. X XThe FBAL component ensures that the various computational Xrequirements of a running scenario are evenly distributed Xacross the local area network workstations. X XSimply, entity computational requirements are rated with a Xscalar, as are hardware capabilities. Also important are the Xhardware peripheral requirements an entity. X XThese factors are rules for inferencing on which local Xnetwork host to place the next entity. The one local-area XFBAL entity (the universe, by convention) maintains the Xdynamic database of network-node/entity-load information. X XNo dynamic balancing is projected (i.e. migrating entities). X X|# X;;----------------------------------------------------------- X X X X;;----------------------------------------------------------- X;; FBAL Private Functions X;;----------------------------------------------------------- X X(define fbal-init () X (progn X (vget '(> ("balance" @@) **)) X (vput '("balance" () ()) '(^ @@)) X X )) X X X(defun fbal-make-node (binary program) X (vthrow (list universe) `(fbal-remote-new-make-node binary X program X ,self)) X ) X X X(defun fbal-remote-make-node (binary program ancestor) X (fcon-make-node (fbal-avail-host binary program) binary program ancestor) X ) X X X(defun fbal-avail-host (binary program) X X ) X X X X END_OF_FILE if test 2025 -ne `wc -c <'src/kernel_current/fern/load_bal.lsp'`; then echo shar: \"'src/kernel_current/fern/load_bal.lsp'\" unpacked with wrong size! fi # end of 'src/kernel_current/fern/load_bal.lsp' fi if test -f 'src/kernel_current/fern/zoot.lsp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/fern/zoot.lsp'\" else echo shar: Extracting \"'src/kernel_current/fern/zoot.lsp'\" \(333 characters\) sed "s/^X//" >'src/kernel_current/fern/zoot.lsp' <<'END_OF_FILE' X(read-time) X(do ((i 0)) X ((> i 10000) t) X X (let* ((a (+ 1 2)) X (b (+ a 1))) X X (+ a b)) X (setq i (1+ i)) X ) X(printf "time after let loop: " (read-time)) X X(do ((i 0)) X ((> i 10000) t) X X (setq a (+ 1 2)) X (setq b (+ a 1)) X (+ a b) X (setq i (1+ i)) X ) X X(printf "time after setq loop: " (read-time)) END_OF_FILE if test 333 -ne `wc -c <'src/kernel_current/fern/zoot.lsp'`; then echo shar: \"'src/kernel_current/fern/zoot.lsp'\" unpacked with wrong size! fi # end of 'src/kernel_current/fern/zoot.lsp' fi if test ! -d 'src/kernel_current/include' ; then echo shar: Creating directory \"'src/kernel_current/include'\" mkdir 'src/kernel_current/include' fi if test -f 'src/kernel_current/include/fern.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/include/fern.h'\" else echo shar: Extracting \"'src/kernel_current/include/fern.h'\" \(1899 characters\) sed "s/^X//" >'src/kernel_current/include/fern.h' <<'END_OF_FILE' X/**************************************************************************************** X * file: fern.h * X * * X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X/*--------------------------------------------------------------------------------* X Useful Externs X *--------------------------------------------------------------------------------*/ X Xextern LVAL xsendmsg0(); Xextern LVAL s_unbound; Xextern LVAL true; Xextern LVAL s_stderr; Xextern LVAL s_quote; X Xextern void Native_NextMsg(); X X/*--------------------------------------------------------------------------------* X Fern Data Structures X *--------------------------------------------------------------------------------*/ X Xtypedef struct stmpnode { X X str63 sHost; X int iPort; X float fData; X struct stmpnode *pNext; X X } TStampEntRec, X *TPStampEntRec, X **THStampEntRec; X Xtypedef TPStampEntRec TStampEntHash[13]; X X/*--------------------------------------------------------------------------------* X Defines X *--------------------------------------------------------------------------------*/ X X#define FBASE_HASH_HOST(sHost) ((sHost[0] - 'a') / 2) X#define FBASE_HASH_HIT(pXVect, pFNode) \ X(getfixnum(getelement(pXVect, 1)) == (pFNode)->iPort && \ X strcmp(getstring(getelement(pXVect, 0)), (pFNode)->sHost) == 0) X X/*--------------------------------------------------------------------------------*/ END_OF_FILE if test 1899 -ne `wc -c <'src/kernel_current/include/fern.h'`; then echo shar: \"'src/kernel_current/include/fern.h'\" unpacked with wrong size! fi # end of 'src/kernel_current/include/fern.h' fi if test -f 'src/kernel_current/include/fern_prims.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/include/fern_prims.h'\" else echo shar: Extracting \"'src/kernel_current/include/fern_prims.h'\" \(1892 characters\) sed "s/^X//" >'src/kernel_current/include/fern_prims.h' <<'END_OF_FILE' X/**************************************************************************************** X * file: fern_prims.h * X * * X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X/*--------------------------------------------------------------------------------*/ X X#ifdef FERN_LOAD X XDEFINE_SUBR("FCON-GO", Fbase_fcon_go) XDEFINE_SUBR("FCON-LOCAL-UNGO", Fbase_fcon_local_ungo) XDEFINE_SUBR("FCON-TIME", Fbase_fcon_time) XDEFINE_SUBR("FBASE-INIT", Fbase_Init) XDEFINE_SUBR("FBASE-NEW-HTAB", Fbase_Hash_NewTab) XDEFINE_SUBR("FBASE-PUT-HASH", Fbase_Hash_AddUid) XDEFINE_SUBR("FBASE-GET-HASH", Fbase_Hash_RemoveUid) XDEFINE_SUBR("FBASE-HASH", Fbase_Hash_HashUid) XDEFINE_SUBR("FE-COPY.INT.SUBS", Fbase_CopyIntSubs) XDEFINE_SUBR("FBASE-INIT-COPY.INT.SUBS", Fbase_Init_CopyIntSubs) XDEFINE_SUBR("FE-COPY.BNDRY.VRT", Fbase_CopyBndryVrt) XDEFINE_SUBR("FBASE-INIT-COPY.BNDRY.VRT", Fbase_Init_CopyBndryVrt) X X#endif X X X#ifdef FERN_DEFS X Xextern LVAL Fbase_fcon_go(); Xextern LVAL Fbase_fcon_local_ungo(); Xextern LVAL Fbase_fcon_time(); Xextern LVAL Fbase_Init(); Xextern LVAL Fbase_Hash_NewTab(); Xextern LVAL Fbase_Hash_AddUid(); Xextern LVAL Fbase_Hash_RemoveUid(); Xextern LVAL Fbase_Hash_HashUid(); Xextern LVAL Fbase_CopyIntSubs(); Xextern LVAL Fbase_CopyBndryVrt(); Xextern LVAL Fbase_Init_CopyIntSubs(); Xextern LVAL Fbase_Init_CopyBndryVrt(); X X#endif X X/*--------------------------------------------------------------------------------*/ END_OF_FILE if test 1892 -ne `wc -c <'src/kernel_current/include/fern_prims.h'`; then echo shar: \"'src/kernel_current/include/fern_prims.h'\" unpacked with wrong size! fi # end of 'src/kernel_current/include/fern_prims.h' fi if test -f 'src/kernel_current/include/xv_native_prims.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/include/xv_native_prims.h'\" else echo shar: Extracting \"'src/kernel_current/include/xv_native_prims.h'\" \(1763 characters\) sed "s/^X//" >'src/kernel_current/include/xv_native_prims.h' <<'END_OF_FILE' X/**************************************************************************************** X * * X * file: xv_native_prims.h * X * * X * the xlisp include file for integration with VEOS native prims. * X * * X * creation: December, 1991 * X * * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X X/****************************************************************************************/ X X#ifdef VEOS_NATIVE_LOAD X XDEFINE_SUBR("VPUT", Native_Put ) XDEFINE_SUBR("VGET", Native_Get ) XDEFINE_SUBR("VCOPY", Native_Copy ) XDEFINE_SUBR("VINIT", Native_Init ) XDEFINE_SUBR("VCLOSE", Native_Close ) XDEFINE_SUBR("VTASK", Native_Task ) XDEFINE_SUBR("VTHROW", Native_Throw ) XDEFINE_SUBR("VCATCH", Native_Catch ) XDEFINE_SUBR("VNOSIGNALS", Native_NoSignals ) XDEFINE_SUBR("VBUGS", Native_Bugs ) XDEFINE_SUBR("VZOOT", Native_Zoot ) XDEFINE_SUBR("VMINTIME", Native_MinTime ) X X#endif X X X#ifdef VEOS_NATIVE_DEFS X Xextern LVAL Native_Put(); Xextern LVAL Native_Get(); Xextern LVAL Native_Copy(); Xextern LVAL Native_Init(); Xextern LVAL Native_Close(); Xextern LVAL Native_Task(); Xextern LVAL Native_Throw(); Xextern LVAL Native_Catch(); Xextern LVAL Native_NoSignals(); Xextern LVAL Native_Bugs(); Xextern LVAL Native_Zoot(); Xextern LVAL Native_MinTime(); X X#endif X X/****************************************************************************************/ END_OF_FILE if test 1763 -ne `wc -c <'src/kernel_current/include/xv_native_prims.h'`; then echo shar: \"'src/kernel_current/include/xv_native_prims.h'\" unpacked with wrong size! fi # end of 'src/kernel_current/include/xv_native_prims.h' fi if test ! -d 'src/kernel_current/nancy' ; then echo shar: Creating directory \"'src/kernel_current/nancy'\" mkdir 'src/kernel_current/nancy' fi if test ! -d 'src/kernel_current/shell' ; then echo shar: Creating directory \"'src/kernel_current/shell'\" mkdir 'src/kernel_current/shell' fi if test -f 'src/kernel_current/shell/main.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/kernel_current/shell/main.c'\" else echo shar: Extracting \"'src/kernel_current/shell/main.c'\" \(1899 characters\) sed "s/^X//" >'src/kernel_current/shell/main.c' <<'END_OF_FILE' X/**************************************************************************************** X * * X * file: main.c * X * * X * An example controlling of veos using xlisp interface. * X * * X * creation: December, 1991 * X * * X * * X * by Geoffrey P. Coco at the HITLab, Seattle. * X * * X ****************************************************************************************/ X X/**************************************************************************************** X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X#include "world.h" X Xextern xmain(); X X X/**************************************************************************************** X * main X * launchpad of any stand-alone program X ****************************************************************************************/ Xmain(argc, argv) X int argc; X char *argv[]; X{ X /** call the xlisp controller, never returns **/ X xmain(argc, argv); X } X X X/**************************************************************************************** X * xlinclude_hybrid_prims X * lisp calls this function to load user-defined lisp primitives X ****************************************************************************************/ Xxlinclude_hybrid_prims() X{ X /** load veos native lisp primitive entries **/ X Shell_LoadNativePrims(); X Fern_LoadPrims(); X XVUtils_LoadPrims(); X } X X X X/**************************************************************************************** X * xlshutdown_hybrid X * lisp calls this function before graceful exit X ****************************************************************************************/ Xxlshutdown_hybrid() X{ X /** let the kernel unwind **/ X Kernel_Shutdown(); X } X X X X END_OF_FILE if test 1899 -ne `wc -c <'src/kernel_current/shell/main.c'`; then echo shar: \"'src/kernel_current/shell/main.c'\" unpacked with wrong size! fi # end of 'src/kernel_current/shell/main.c' fi if test ! -d 'src/kernel_current/talk' ; then echo shar: Creating directory \"'src/kernel_current/talk'\" mkdir 'src/kernel_current/talk' fi if test -f 'src/machine_specific.mk' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/machine_specific.mk'\" else echo shar: Extracting \"'src/machine_specific.mk'\" \(1367 characters\) sed "s/^X//" >'src/machine_specific.mk' <<'END_OF_FILE' X# *************************************************************************************** X# Copyright (C) 1992 Human Interface Technology Lab, Seattle * X# * X# This program is free software; you can redistribute it and/or modify * X# it under the terms of the VEOS License which cab be found in file * X# VEOS_LICENSE in the root of the veos directory tree. * X# * X# This program is distributed in the hope that it will be useful, * X# but WITHOUT ANY WARRANTY; without even the implied warranty of * X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * X# VEOS License for more details. * X# * X# Questions about this software should be addressed to: * X# * X# Software Support * X# Human Interface Technology Laboratory * X# FJ-15, University of Washington * X# Seattle, Washington 98195 USA * X# * X# or by email: * X# * X# veos-support@hitl.washington.edu * X# * X# *************************************************************************************** X X X# use these for Sun4 X XUPDATE_LIB = ranlib X#CC = /usr/gnu/bin/gcc -O4 -w ${VEOS_INCLUDE_DIRS} -D_SUN_ X#AR = /usr/gnu/bin/ar rcv XCC = cc -g -Bstatic -w ${VEOS_INCLUDE_DIRS} -D_SUN_ XAR = ar rcv XASSOC_LIBS = -lm X END_OF_FILE if test 1367 -ne `wc -c <'src/machine_specific.mk'`; then echo shar: \"'src/machine_specific.mk'\" unpacked with wrong size! fi # end of 'src/machine_specific.mk' fi if test ! -d 'src/utils' ; then echo shar: Creating directory \"'src/utils'\" mkdir 'src/utils' fi if test -f 'src/utils/error_check.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/utils/error_check.c'\" else echo shar: Extracting \"'src/utils/error_check.c'\" \(1186 characters\) sed "s/^X//" >'src/utils/error_check.c' <<'END_OF_FILE' X/* error_check.c X X by Fran Taylor, at the HITLab, Seattle X X Copyright (C) 1992 Human Interface Technology Lab, Seattle X X Error checking functions for Xlisp functions written in C */ X X#include "xlisp.h" X Xint triplep(v) XLVAL v; X{ X int i; X if (!vectorp(v) || (getsz(v) != 3)) X return 0; X for(i = 0; i < 3; i++) X if (!floatp(getelement(v, i))) X return 0; X return 1; X} X Xint quaternionp(v) XLVAL v; X{ X LVAL p; X int i; X X if (!vectorp(v) || (getsz(v) != 2) || !floatp(getelement(v, 0))) X return 0; X if (!vectorp(p = getelement(v, 1)) || (getsz(p) != 3)) X return 0; X for(i = 0; i < 3; i++) X if (!floatp(getelement(p, i))) X return 0; X return 1; X} X Xint pt_quatp(x) XLVAL x; X{ X if (!vectorp(x) || (getsz(x) != 2) || !triplep(getelement(x, 0)) || X !quaternionp(getelement(x, 1))) X return 0; X return 1; X} X Xint pt_eulerp(x) XLVAL x; X{ X if (!vectorp(x) || (getsz(x) != 2) || !triplep(getelement(x, 0)) || X !triplep(getelement(x, 1))) X return 0; X return 1; X} X Xint matrixp(m) XLVAL m; X{ X int i; X X if (!vectorp(m) || (getsz(m) != 16)) X return 0; X for(i = 0; i < 16; i++) X if (!floatp(getelement(m, i))) X return 0; X return 1; X} X X END_OF_FILE if test 1186 -ne `wc -c <'src/utils/error_check.c'`; then echo shar: \"'src/utils/error_check.c'\" unpacked with wrong size! fi # end of 'src/utils/error_check.c' fi if test -f 'src/utils/makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/utils/makefile'\" else echo shar: Extracting \"'src/utils/makefile'\" \(1472 characters\) sed "s/^X//" >'src/utils/makefile' <<'END_OF_FILE' X# *************************************************************************************** X# Copyright (C) 1992 Human Interface Technology Lab, Seattle * X# *************************************************************************************** X X X#-------------------------------------------------------------------------------------- X XHOME = /home/voodoo/veos/ X XLISP_INCLUDE_DIR = ${HOME}src/xlisp/xcore/c/ XPUB_INCLUDE_DIR = ${HOME}src/include/ XVEOS_INCLUDE_DIRS = -I${PUB_INCLUDE_DIR} -I${LISP_INCLUDE_DIR} X XLISP_LIB_DIR = /home/xlisp/lib/ XPUB_LIB_DIR = ${HOME}lib/ X XPUB_EXEC_DIR = ${HOME}bin/ X X#-------------------------------------------------------------------------------------- X Xinclude $(HOME)src/machine_specific.mk X X#-------------------------------------------------------------------------------------- X Xclean: X - /bin/rm -f $(UTIL_SRC_DIR)*.o X - /bin/rm -f $(PUB_LIB_DIR)libxvutils.a X X#-------------------------------------------------------------------------------------- X X### X### an xlisp utils library X### X Xutils: ${PUB_LIB_DIR}libxvutils.a X X${PUB_LIB_DIR}libxvutils.a: \ X ${UTIL_SRC_DIR}xv_utils.o \ X ${UTIL_SRC_DIR}error_check.o \ X ${UTIL_SRC_DIR}xform_prims.o X ${AR} $@ $? X ${UPDATE_LIB} $@ X X#-------------------------------------------------------------------------------------- X X### X### miscellaneous .o files X### X X.c.o: X ${CC} -c -o $@ $< X X.c: X X#-------------------------------------------------------------------------------------- X X END_OF_FILE if test 1472 -ne `wc -c <'src/utils/makefile'`; then echo shar: \"'src/utils/makefile'\" unpacked with wrong size! fi # end of 'src/utils/makefile' fi if test -f 'src/utils/xform_prims.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/utils/xform_prims.h'\" else echo shar: Extracting \"'src/utils/xform_prims.h'\" \(1393 characters\) sed "s/^X//" >'src/utils/xform_prims.h' <<'END_OF_FILE' X/* xform_prims.h X X by dav lion, at the HITLab, Seattle X X Copyright (C) 1992 Human Interface Technology Lab, Seattle X X xlisp wrappers for C based matrix geometrical transformation routines X X this code is part of VEOS. X*/ X X X#ifndef _XFORMH_ X#define _XFORMH_ X X#include X Xtypedef float Matrix[4][4]; /* 4x4 matrix */ Xtypedef float Vector[3]; /* Vector */ Xtypedef float Quaternion[4]; X Xextern LVAL xform01_identMat(); Xextern LVAL xform02_multMat(); Xextern LVAL xform03_translateMat(); Xextern LVAL xform04_PosQuat2Mat(); Xextern LVAL xform05_scaleMat(); Xextern LVAL xform06_shearMat(); Xextern LVAL xform07_copyMat(); Xextern LVAL xform08_multQuats(); Xextern LVAL xform09_Mat2PosQuat(); X X/* from vogl distribution X * How to convert degrees to radians X */ X#define PI 3.14159265358979 X#define D2R (PI / 180.0) X X X#define EPSILON 0.000001 X#define FEPS(a,b) ((a>(b-.0001)) && (a<(b+.0001))) X Xstatic Matrix mIdentityMatrix = { X {1., 0., 0., 0.}, X {0., 1., 0., 0.,}, X {0., 0., 1., 0.,}, X {0., 0., 0., 1.,} X };/*identityMatrix*/ X X#define v_float(v, n) getflonum(getelement(v, n)) X#define m_float(m, i, j) getflonum(getelement(m, (i * 4) + j)) X#define v_fixnum(v, n) getfixnum(getelement(v, n)) X X#define stuff_fixnum(arg, ind, val) ((arg)->n_vdata[ind])->n_fixnum = (val) X#define stuff_flonum(arg, ind, val) ((arg)->n_vdata[ind])->n_flonum = (val) X X X X#endif END_OF_FILE if test 1393 -ne `wc -c <'src/utils/xform_prims.h'`; then echo shar: \"'src/utils/xform_prims.h'\" unpacked with wrong size! fi # end of 'src/utils/xform_prims.h' fi if test -f 'src/utils/xv_utils.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/utils/xv_utils.h'\" else echo shar: Extracting \"'src/utils/xv_utils.h'\" \(1172 characters\) sed "s/^X//" >'src/utils/xv_utils.h' <<'END_OF_FILE' X/**************************************************************************************** X * * X * file: xv_utils.c * X * * X * Sundry lisp utils for the veos project * X * * X * creation: March 28, 1991 * X * * X * * X * Includes utilities by: * X * * X * Geoff Coco * X * Dav Lion * X * Andy McDonald * X * Fran Taylor * X * * X ****************************************************************************************/ X X X/**************************************************************************************** X * Copyright (C) 1992 Human Interface Technology Lab, Seattle * X ****************************************************************************************/ X X X#ifdef UTIL_LOAD XDEFINE_SUBR("READ-TIME", read_time) XDEFINE_SUBR("SPRINTF", native_sprintf ) XDEFINE_SUBR("PRINTF", native_printf ) XDEFINE_SUBR("PRINTF1", native_printf1 ) XDEFINE_SUBR("SSCANF", native_sscanf ) X#endif X X#ifdef UTIL_DEFS Xextern LVAL read_time(); Xextern LVAL native_sprintf(); Xextern LVAL native_printf(); Xextern LVAL native_printf1(); Xextern LVAL native_sscanf(); X#endif END_OF_FILE if test 1172 -ne `wc -c <'src/utils/xv_utils.h'`; then echo shar: \"'src/utils/xv_utils.h'\" unpacked with wrong size! fi # end of 'src/utils/xv_utils.h' fi if test ! -d 'src/xlisp' ; then echo shar: Creating directory \"'src/xlisp'\" mkdir 'src/xlisp' fi if test -f 'src/xlisp/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/Makefile'\" else echo shar: Extracting \"'src/xlisp/Makefile'\" \(363 characters\) sed "s/^X//" >'src/xlisp/Makefile' <<'END_OF_FILE' X# X# "... and one Ring to rule them all." X# X# Master makefile to build xlisp-plus-selected-extension-modules. X# X Xall: bare X Xxlisplib: X cd xcore/c; $(MAKE) -${MAKEFLAGS} xlisplib X Xbare: xlisplib X cd xexec/c; $(MAKE) -${MAKEFLAGS} bare X Xclean: X cd xcore/c; ${MAKE} -${MAKEFLAGS} clean X X X X X X X X END_OF_FILE if test 363 -ne `wc -c <'src/xlisp/Makefile'`; then echo shar: \"'src/xlisp/Makefile'\" unpacked with wrong size! fi # end of 'src/xlisp/Makefile' fi if test -f 'src/xlisp/Makefile.basic' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/Makefile.basic'\" else echo shar: Extracting \"'src/xlisp/Makefile.basic'\" \(424 characters\) sed "s/^X//" >'src/xlisp/Makefile.basic' <<'END_OF_FILE' X# X# Xlisp compilation control X# X X X# The directory you installed the xlisp fileset in: XXLISPROOT= /home/voodoo/veos/src/xlisp XXLISP_LIB_DIR= $(XLISPROOT)/lib X XVEOS_LIB_DIR= /home/voodoo/veos/lib XVEOS_EXEC_DIR= /home/voodoo/veos/bin X X Xinclude $(XLISPROOT)/Makefile.machine_specific X XCFLAGS= ${XLISPCFLAGS} X X.c.o: X ${CC} -o -c ${CFLAGS} $< ${INCLUDES} X Xclean: X - /bin/rm -f *.o *~ X - /bin/rm -f $(XLISP_LIB_DIR)/*.a *~ X X X END_OF_FILE if test 424 -ne `wc -c <'src/xlisp/Makefile.basic'`; then echo shar: \"'src/xlisp/Makefile.basic'\" unpacked with wrong size! fi # end of 'src/xlisp/Makefile.basic' fi if test -f 'src/xlisp/Makefile.machine_specific' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/Makefile.machine_specific'\" else echo shar: Extracting \"'src/xlisp/Makefile.machine_specific'\" \(326 characters\) sed "s/^X//" >'src/xlisp/Makefile.machine_specific' <<'END_OF_FILE' X# use these for Sun4 X X XCC= cc XXLISPCFLAGS= -O2 -w X X# use -DOPTIMAL for a very fast xlisp interpreter. X# this removes all setjmp()s and longjmp()s. X# the resulting executable cannot recover from X# lisp errors. instead, it will exit gracefully. X XAR= /usr/gnu/bin/ar XXLISPARFLAGS= rv X XXLISPRANLIB= ranlib X XLD= /usr/gnu/bin/ld X END_OF_FILE if test 326 -ne `wc -c <'src/xlisp/Makefile.machine_specific'`; then echo shar: \"'src/xlisp/Makefile.machine_specific'\" unpacked with wrong size! fi # end of 'src/xlisp/Makefile.machine_specific' fi if test ! -d 'src/xlisp/bin' ; then echo shar: Creating directory \"'src/xlisp/bin'\" mkdir 'src/xlisp/bin' fi if test ! -d 'src/xlisp/lib' ; then echo shar: Creating directory \"'src/xlisp/lib'\" mkdir 'src/xlisp/lib' fi if test ! -d 'src/xlisp/xcore' ; then echo shar: Creating directory \"'src/xlisp/xcore'\" mkdir 'src/xlisp/xcore' fi if test ! -d 'src/xlisp/xcore/c' ; then echo shar: Creating directory \"'src/xlisp/xcore/c'\" mkdir 'src/xlisp/xcore/c' fi if test -f 'src/xlisp/xcore/c/COPYRIGHT' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/COPYRIGHT'\" else echo shar: Extracting \"'src/xlisp/xcore/c/COPYRIGHT'\" \(1966 characters\) sed "s/^X//" >'src/xlisp/xcore/c/COPYRIGHT' <<'END_OF_FILE' X******************************************************************************** X* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer). X* XLISP version 2.1, Copyright (c) 1989, by David Betz. X* X* Permission to use, copy, modify, distribute, and sell this software and its X* documentation for any purpose is hereby granted without fee, provided that X* the above copyright notice appear in all copies and that both that X* copyright notice and this permission notice appear in supporting X* documentation, and that the name of Hewlett-Packard and David Betz not be X* used in advertising or publicity pertaining to distribution of the software X* without specific, written prior permission. Hewlett-Packard and David Betz X* make no representations about the suitability of this software for any X* purpose. It is provided "as is" without express or implied warranty. X* X* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS X* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, X* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL, X* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM X* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE X* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR X* PERFORMANCE OF THIS SOFTWARE. X* X* WINTERP AUTHOR: X* Niels P. Mayer, X* Hewlett-Packard Laboratories, X* Software Technology Lab X* Human-Computer Interaction Department X* Collaborative Interaction Tools Group X* X* Mailing Address: X* Hewlett Packard X* Niels Mayer 1U/17 X* P.O. Box 10490 X* Palo Alto, CA 94303-0969 X* X* Email Address: X* internet: mayer@hplabs.hp.com X* uucp: hplabs!mayer X* X* XLISP AUTHOR: X* David Betz X* P.O. Box 144 X* Peterborough, NH 03458 X* (603) 924-4145 X******************************************************************************** END_OF_FILE if test 1966 -ne `wc -c <'src/xlisp/xcore/c/COPYRIGHT'`; then echo shar: \"'src/xlisp/xcore/c/COPYRIGHT'\" unpacked with wrong size! fi # end of 'src/xlisp/xcore/c/COPYRIGHT' fi if test -f 'src/xlisp/xcore/c/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/Makefile'\" else echo shar: Extracting \"'src/xlisp/xcore/c/Makefile'\" \(1207 characters\) sed "s/^X//" >'src/xlisp/xcore/c/Makefile' <<'END_OF_FILE' X# X# Xlisp compilation control X# X X X# X# Xlisp compilation control X# X X# X# Xlisp compilation control X# X Xinclude ../../Makefile.basic X XXLISP_LIB = $(XLISP_LIB_DIR)/libxlisp.a Xxlisplib: $(XLISP_LIB) X X XHEADER= XINCLUDES= X XXLISPLIBOBJS= \ X $(XLISP_LIB)(unixstuff.o) \ X $(XLISP_LIB)(xlbfun.o) \ X $(XLISP_LIB)(xlcont.o) \ X $(XLISP_LIB)(xldbug.o) \ X $(XLISP_LIB)(xldmem.o) \ X $(XLISP_LIB)(xleval.o) \ X $(XLISP_LIB)(xlfio.o) \ X $(XLISP_LIB)(xlftab.o) \ X $(XLISP_LIB)(xlglob.o) \ X $(XLISP_LIB)(xlimage.o) \ X $(XLISP_LIB)(xlinit.o) \ X $(XLISP_LIB)(xlio.o) \ X $(XLISP_LIB)(xljump.o) \ X $(XLISP_LIB)(xllist.o) \ X $(XLISP_LIB)(xlmath.o) \ X $(XLISP_LIB)(xlobj.o) \ X $(XLISP_LIB)(xlpp.o) \ X $(XLISP_LIB)(xlprin.o) \ X $(XLISP_LIB)(xlread.o) \ X $(XLISP_LIB)(xlstr.o) \ X $(XLISP_LIB)(xlstruct.o) \ X $(XLISP_LIB)(xlsubr.o) \ X $(XLISP_LIB)(xlsym.o) \ X $(XLISP_LIB)(xlsys.o) \ X $(XLISP_LIB)(xmain.o) X X$(XLISPLIBOBJS): ../../xmodules.h xlisp.h xldmem.h X X X${XLISPLIBOBJS}: X ${CC} -c ${CFLAGS} ${INCLUDES} $< X ${LD} -r $*.o X /bin/mv a.out $*.o X ${AR} ${XLISPARFLAGS} $@ $*.o X /bin/rm $*.o X X X$(XLISP_LIB): ${XLISPLIBOBJS} X ${XLISPRANLIB} $@ X cp $@ $(VEOS_LIB_DIR)/. X ${XLISPRANLIB} $(VEOS_LIB_DIR)/libxlisp.a X END_OF_FILE if test 1207 -ne `wc -c <'src/xlisp/xcore/c/Makefile'`; then echo shar: \"'src/xlisp/xcore/c/Makefile'\" unpacked with wrong size! fi # end of 'src/xlisp/xcore/c/Makefile' fi if test -f 'src/xlisp/xcore/c/osdefs.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/osdefs.h'\" else echo shar: Extracting \"'src/xlisp/xcore/c/osdefs.h'\" \(2054 characters\) sed "s/^X//" >'src/xlisp/xcore/c/osdefs.h' <<'END_OF_FILE' X/* -*-C-*- X******************************************************************************** X* X* File: osdefs.h X* RCS: $Header: osdefs.h,v 1.2 89/11/25 05:08:00 mayer Exp $ X* Description: system specific function declarations X* Author: David Michael Betz X* Created: X* Modified: Sat Nov 25 05:07:43 1989 (Niels Mayer) mayer@hplnpm X* Language: C X* Package: N/A X* Status: X11r4 contrib tape release X* X* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer). X* XLISP version 2.1, Copyright (c) 1989, by David Betz. X* X* Permission to use, copy, modify, distribute, and sell this software and its X* documentation for any purpose is hereby granted without fee, provided that X* the above copyright notice appear in all copies and that both that X* copyright notice and this permission notice appear in supporting X* documentation, and that the name of Hewlett-Packard and David Betz not be X* used in advertising or publicity pertaining to distribution of the software X* without specific, written prior permission. Hewlett-Packard and David Betz X* make no representations about the suitability of this software for any X* purpose. It is provided "as is" without express or implied warranty. X* X* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS X* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, X* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL, X* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM X* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE X* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR X* PERFORMANCE OF THIS SOFTWARE. X* X* See ./winterp/COPYRIGHT for information on contacting the authors. X* X* Please send modifications, improvements and bugfixes to mayer@hplabs.hp.com X* Post XLISP-specific questions/information to the newsgroup comp.lang.lisp.x X* X******************************************************************************** X*/ END_OF_FILE if test 2054 -ne `wc -c <'src/xlisp/xcore/c/osdefs.h'`; then echo shar: \"'src/xlisp/xcore/c/osdefs.h'\" unpacked with wrong size! fi # end of 'src/xlisp/xcore/c/osdefs.h' fi if test -f 'src/xlisp/xcore/c/osptrs.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/osptrs.h'\" else echo shar: Extracting \"'src/xlisp/xcore/c/osptrs.h'\" \(2050 characters\) sed "s/^X//" >'src/xlisp/xcore/c/osptrs.h' <<'END_OF_FILE' X/* -*-C-*- X******************************************************************************** X* X* File: osptrs.h X* RCS: $Header: osptrs.h,v 1.2 89/11/25 05:10:18 mayer Exp $ X* Description: system specific function pointers X* Author: David Michael Betz X* Created: X* Modified: Sat Nov 25 05:10:11 1989 (Niels Mayer) mayer@hplnpm X* Language: C X* Package: N/A X* Status: X11r4 contrib tape release X* X* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer). X* XLISP version 2.1, Copyright (c) 1989, by David Betz. X* X* Permission to use, copy, modify, distribute, and sell this software and its X* documentation for any purpose is hereby granted without fee, provided that X* the above copyright notice appear in all copies and that both that X* copyright notice and this permission notice appear in supporting X* documentation, and that the name of Hewlett-Packard and David Betz not be X* used in advertising or publicity pertaining to distribution of the software X* without specific, written prior permission. Hewlett-Packard and David Betz X* make no representations about the suitability of this software for any X* purpose. It is provided "as is" without express or implied warranty. X* X* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS X* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, X* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL, X* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM X* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE X* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR X* PERFORMANCE OF THIS SOFTWARE. X* X* See ./winterp/COPYRIGHT for information on contacting the authors. X* X* Please send modifications, improvements and bugfixes to mayer@hplabs.hp.com X* Post XLISP-specific questions/information to the newsgroup comp.lang.lisp.x X* X******************************************************************************** X*/ END_OF_FILE if test 2050 -ne `wc -c <'src/xlisp/xcore/c/osptrs.h'`; then echo shar: \"'src/xlisp/xcore/c/osptrs.h'\" unpacked with wrong size! fi # end of 'src/xlisp/xcore/c/osptrs.h' fi if test ! -d 'src/xlisp/xcore/doc' ; then echo shar: Creating directory \"'src/xlisp/xcore/doc'\" mkdir 'src/xlisp/xcore/doc' fi echo shar: End of archive 1 \(of 16\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 16 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0