YOU NEED TO HAVE AT&T C++ Version 1.2. This is very cheap to request
from AT&T. The code may compile with other versions of C++,
but we have not tried, so we do not know.
The C++ compiler should be called "CC"; otherwise, update the make files.

First run "make install", then "make pas". "pas" is the byte code emulator.
Again, ignore the warnings of the compiler.

There are some programs available in the directories Tests and Benchmarks.
Some are compiled already, so you can execute them even if you do not
have the compiler running yet.

If you need more virtual storage, set the environment variable PAS_DATA_LIMIT
to a larger value (do "limit" to see what you have available).

About virtual backtracking:
there are three files nov_* which implement the garbage collector
without virtual backtracking. Use them if you do not care about virtual
backtracking.


6/28/88:
New stuff: 
- garbage collector
- the compiler is in ~touati/Comp
executable + code are there.
- comp: is a Unix pipe
- compiler: is a shell script (one liner)
- look at the file MANUAL: there is some documentation.


12/87:
Once you have all your files installed, the only thing you have to do is 
compile the whole program: just do "make". 
Do not forget to set your environment proprely to be able to use the
C++ compiler.  

You will get that way an executable file, of the name "pas".

Of course, you will need the Prolog compiler installed too.
Do that first, and get the compiler working first, before proceeding
here. 

WARNING: you should put the compiler visible in the current directory
(put it in your ~/bin file for example). And you should call it
"comp". If you do not like the name, and want not to make visible,
then edit the shell script "compiler". What to do should be pretty
obvious. 

Run it: you will get a prompt: "> ". At that point, without any Prolog
code, you cannot do much. The command "help" will list all the
currently available commands. The interface is not that great, but
allows you to do a few basic things (tracing, stepping, executing,
loading programs, calling the compiler, etc...). 

To exit pas, just do ^D.

Conventions: Prolog sources files are of the form "foo.pl"; WAM code
of the form "foo.w". The shell script "compiler" is called by "pas",
when you do:
> load a

This will compile a.pl if a.w does not exist, and load the program
into pas. To check whether it is loaded or not, just do:
> list

To execute, do:
> run

To trace, do:
> trace c   (only traces calls)
> trace i   (trace every instruction executed)

Doing
> status

will print out in which trace mode you are. 
Most things are toggles. To stop tracing, do:

> trace c  (will toggle trace c mode)

Interrupts are trapped by the system: a ^C will stop current execution
and come back to the top level. 

For the rest, you have the source... :-).

Do not hesitate to send me mail for anything you do not understand.

NOTE: the inline expander does something weird in the file get_put_unify,
with the P = FP0 statement. I do not know what happens, but it makes
the C compiler generates warnings. In any case, it should not.
