How to get started with NCLOS (=NetCLOS =NCL) on UNIX:

0. create a directory nc and move nclos.tar.gz into:
	mkdir <yourhome>/nc
	mv nclos.tar.gz nc
	cd nc

1. unzip and untar the archive:
	gunzip nclos.tar.gz
	tar -xvf nclos.tar


2. Change in ~/nc/nclos/sources/manager.lisp

(defvar *image* "/home/hotz/nc/binary/hh_clim2xm_composer")
to the path where Your ACL 5.0.1 image is located.


3. To work with EMACS, insert into .emacs something like 
[change (*) points]:


(load "fi-site-init")

(defun remote-nc(image args)
  (start-cl-image-remote image
			 "*NC*" args))


(defun start-cl-image-remote (image-name buffer-name args)
  (interactive)

  ;;(set-up-common-lisp-environment)
  ;;(fi:common-lisp-lki-defaults)

  (let* ((host (getenv "HOST")))
	
    ;; if DISPLAY variable holds no hostname, cl can't connect
    (rplacd (assoc "DISPLAY" fi:subprocess-env-vars) "ki3:0.0") ;;; (*) Your machines name

    (setq fi:common-lisp-buffer-name buffer-name) ;by arg doesn't work
    ;; (trace-function 'fi::remote-lisp-args)
    ;; (trace-function 'fi::make-subprocess)
    ;; (trace-function 'start-process    )
    ;;; (trace-function 'fi:common-lisp)
    ;;;(trace-function  'fi::set-environment)
    (fi:common-lisp buffer-name
		    "~/lisp"
		    ;;original-common-lisp-image-name
		    image-name
		     (list   "-e" (format "%S" args))
		     host)))
(*)
If Your emacs is not in: /opt/gnu/bin/emacs
change the name in ~/nc/nclos/ncl-starter


4. 
An object file interface.so comes with NetCLOS, 
if it is necessary to regenerate the chaco interface (interface.so):

	generate the .so-file by:
	in <Yourhome>/Chaco-2.0/code/ to compile chaco-source files:
		> make 
	in the same directory:
		> make lib  
	To generate an object file:
 	gcc -c -g -o <Yourhome>/interface.o -fPIC <Yourhome>/interface.c
        ld -G -o <Yourhome>/interface.so <Yourhome>/interface.o -lchaco -lm

(*)
in any case replace
         in ~/nc/nclos/mapping/tig/mapping.lisp:
	(load "~trowe/lisp/pvm/interface.so")
to
	(load "<Yourhome>/nc/interface.so")



6. start a new emacs


7. start acl

8. Load nclos with:
(load "~/nc/ld-actors.lisp")


9. Test Nclos (also for checking a ACL 5.0.1 implementation:
(see file tracesofACL431.txt for the current treatment in ACL 4.3.1)

Type:   :pa nc
	(ensure-os)
	a manager should be returned

	(start-virtual-machine '("ki10" ))


where you can give a number of machine names as strings. They must be
names of trusted hosts.
An additional emacs should be started for each host where the file which is a value
of *init-file* is loaded, by default its ld-actors (see manager.lisp)

Per default there are some traces in ld-actors which can be removed.
No background interaction should occur.
The remote spaces can be stopped like normal lisp-images, i.e. :exit
or emacs killing. or C-c C-c

The master waits until all spaces are loaded, if an error occurs the
master can be stopped via C-c C-c (as usual).



10. test with test.lisp:

test.lisp must be loaded in both spaces (lisp images) because the
classes (here move-tester)  must be defined, if they are used.

see test.lisp for testing NetCLOS







Pathnames that have to be redefined, if not ~/nc is used for
installing:



change the directory entries in ~/nc/pathnames.lisp

	(defvar *nclos-root-directory* "~<yournchome>/nc/nclos/")
	(defvar *nclos-local-directory* "~<yournchome>/nc/")

and
	(defvar *pstru-root-directory* "~<yournchome>/nc/structures/")
	(defvar *pstru-local-directory* "~<yournchome>/nc/")




change in ~/nc/ld-actors.lisp

(load "~<yournchome>/nc/pathnames.lisp")

(load "~/nc/pathnames.lisp")



