                                      TALC
                                      ====

Release 1.7
Copyright
    Greg Morrisett, Neal Glew, Dave Walker, Steve Zdancewic, Stephanie Weirich,
    Frederick Smith, and Dan Grossman July, August, September 1998,
    January 1999, and July 1999 all rights reserved.

The TALC compiler consists of a set of tools for Talx86, a variant of
typed assembly language for the IA32 architecture, and some front ends
that demonstrate its viability as a target language.  Currently the
there are two front ends: popcorn and scheme.  There used to be a
third front end for KML, but it was broken by some changes to
Talx86.  A major rework of the KML front end is underway.

There is now a scheme compiler written in popcorn.  It uses a tal datatype
and printer also written in popcorn.  To build it, go to apps/popcorn and run
make scheme.

Popcorn now includes extensions called cyclone for doing runtime code
generation.

See the file INSTALL for instructions on building and running TALC.

See the files doc/TODO and doc/CHANGES for information about what has been
done and needs to done.

TALC Sources
------------

(* Documentation *)
doc
  CHANGES                    - master log of changes made to sources
  release-instructions.txt   - how to release TALC
  TODO               	     - master list of stuff to be done
  tal.el             	     - emacs 19.x mode for editing .tal & .tali files
  talx86_lang_spec   	     - specification of the lexing and syntax

(* General Purpose Programming Utilities/Data Structures *)
util
  binout
  bitmatrix
  dict
  numtypes
  set
  smallset
  splay
  stringchan
  utilities
  xarray

(* Compiler Specific Utilities *)
computil
  header          - template for copyright notices
  identifier
  ocamldep        - modified version of ocaml's dependency generator

(* TALx86 and Tools *)
talx86
  annot
  coff
  cyclone
  elf
  objfile
  tal
  talasm
  talasmx86
  talbe
  talcon
  talctxt
  tallex
  tallinkchk
  talout
  talparser
  talpp
  talverify

(* Runtime System, Garbage Collector *)
runtime
  cyclone.inc
  cyclonelib.c
  gc.a                } Boehm Weiser collector
  gc.lib              }
  pop_runtime.c       } Popcorn runtime
  pop_runtime.tali    }
  representation.doc  - some notes about sums, exceptions, and arrays
  stdlib.c            } Standard library of sorts
  stdlib.tali         }
  tal.inc
  tal.tali            } Program stuff
  tal_prog.tali       }
  tal_start.c
  tal_util.tal
  tal_util_i.tali
  tal_util_e.tali

(* Toplevel Driver *)
toplevel
  gcd
  gcdfe
  gcdfec
  lineno
  talc

(* Popcorn Compiler *)
popcorn
  calc    - A calculator example
  lib     - Standard library
  plan    - An unfinished PLAN interpreter
  README
  popcompenv
  popcompile
  popcompilereg
  popcomptypes
  popcorn
  poperr
  poplex
  popparse
  poppeep
  popsyntax
  poptype

(* Compiler Tests *)
tests
  cyclone
    cplan
    interpret
    rsa
  popcorn
  talx86
