From: Jonathan Kaye
Subject: Announcing the Screamer Tool Repository: ftp.cis.upenn.edu
Date: 
Message-ID: <2sj137$t82@netnews.upenn.edu>
           SSSS    CCCC   RRRR    EEEEE     A     M   M   EEEEE   RRRR
         S       C       R   R   E        A A    MM MM   E       R   R
         SSS    C       RRRR    EEE     AAAAA   M M M   EEE     RRRR
           S   C       R  R    E       A   A   M   M   E       R  R
      SSSS     CCCC   R   R   EEEEE   A   A   M   M   EEEEE   R   R

 
Announcing the creation of the Screamer Tool Repository, an ftp site
which contains the Screamer distribution and user-contributed code
developed using Screamer.  We would appreciate any contribution that
uses or extends Screamer in either interesting or even not-so
interesting ways.  By providing the repository, we hope to encourage
future development using Screamer.  We have attached a brief note
about Screamer at the end of this message.

The repository is also accessible (for retrieval only) at
"http://www.cis.upenn.edu/~screamer-tools/home.html".

** At the time of this writing (June 1, 1994), there are no entries yet **
**           in the repository.  We hope this will change soon.         **

The ftp site is ftp.cis.upenn.edu.  The repository is arranged as
follows:

   /pub/screamer.tar.Z             Screamer distribution
   /pub/screamer-tools/
                       incoming/   for people to drop code off
                       contrib/    user-contributed code
                       INDEX       a file that indexes contributions
                       README      Introduction to site

All contributions should be placed in the pub/screamer-tools/incoming
subdirectory.  If you contribute code, please write me a note (at
···················@cis.upenn.edu) stating the filename(s) of your
contribution and a brief description.  Where applicable, this
description should include on which platform(s) the code has been
tested.  I will place this description in the file in
pub/screamer-tools/INDEX.

Alternatively, you may mail me the contribution directly, at

	···················@cis.upenn.edu

The preferred format is as a uuencoded compressed tar file, but other
formats are okay.  If they get too exotic (i.e., I can't unpack them),
I will let you know.  For consistency, I may repackage the
contribution.  It may be obvious, but for files deposited in the
incoming/ directory, you should skip the uuencoding and transfer them
as binary compressed tar files, when possible.

Screamer was written by Jeffrey Mark Siskind and David Allen
McAllester.  It is available by anonymous FTP from either
ftp.ai.mit.edu, ftp.cis.upenn.edu, or ftp.cs.toronto.edu as the file
/pub/qobi/screamer.tar.Z.  Contact Jeffrey Mark Siskind
(····@CS.Toronto.EDU) for further information about Screamer.

Please write to me (····@linc.cis.upenn.edu, or
···················@cis.upenn.edu), however, with questions about the
repository.



Jonathan Kaye


P.S. We want to acknowledge the assistance of Mark Foster and
Mark-Jason Dominus for arranging the administrative tasks involved in
setting up this repository.

--------------------------------------------------------------
What is all the noise about Screamer?

Screamer is an extension of Common Lisp that adds support for nondeterministic
programming.  Screamer consists of two levels.  The basic nondeterministic
level adds support for backtracking and undoable side effects.  On top of this
nondeterministic substrate, Screamer provides a comprehensive constraint
programming language in which one can formulate and solve mixed systems of
numeric and symbolic constraints.  Together, these two levels augment Common
Lisp with practically all of the functionality of both Prolog and constraint
logic programming languages such as CHiP and CLP(R).  Furthermore, Screamer is
fully integrated with Common Lisp. Screamer programs can coexist and
interoperate with other extensions to Common Lisp such as CLOS, CLIM and
Iterate.

In several ways Screamer is more efficient than other implementations of
backtracking languages.  First, Screamer code is transformed into Common Lisp
which can be compiled by the underlying Common Lisp system.  Many competing
implementations of nondeterministic Lisp are interpreters and thus are far
less efficient than Screamer.  Second, the backtracking primitives require
fairly low overhead in Screamer.  Finally, this overhead to support
backtracking is only paid for those portions of the program which use the
backtracking primitives.  Deterministic portions of user programs pass through
the Screamer-to-Common-Lisp transformation unchanged.  Since in practice, only
small portions of typical programs utilize the backtracking primitives,
Screamer can produce more efficient code than compilers for languages in which
backtracking is more pervasive.

Screamer is fairly portable across most Common Lisp implementations. Screamer
is known to run under the following Common Lisp implementations:

   Genera 8.1.1 and 8.3 on Symbolics 36xx and Ivory.
   Lucid 4.0.2 and 4.1 on Sun SPARC.
   Lucid 4.1 on SGI MIPS.
   Lucid 4.1 on HP PA.
   Lucid 4.1 on DEC MIPS.
   Lucid 4.0.1 on IBM RS/6000.
   MCL 2.0 and 2.0p2 on Apple Macintosh.
   Harlequin 3.0.3+ on Sun SPARC.
   Allegro 4.1 and 4.2 on Sun SPARC and SGI MIPS.
   Allegro 4.1 on DEC MIPS.
   Poplog 14.2 on Sun SPARC.
   AKCL 1.605 and 1.615 on Sun SPARC.
   CMU Common Lisp 17b on Sun SPARC.

It should run under any implementation of Common Lisp that is compliant with
CLtL2 and with minor revision could be made to run under implementations
compliant with CLtL1 or dpANS.

Screamer was written by Jeffrey Mark Siskind and David Allen
McAllester.  It is available by anonymous FTP from either
ftp.ai.mit.edu, ftp.cis.upenn.edu, or ftp.cs.toronto.edu as the file
/pub/qobi/screamer.tar.Z.  Contact Jeffrey Mark Siskind
(····@CS.Toronto.EDU) for further information.