1.17.4

Added odin.ps target to doc/Odinfile.

Added citation support to tex package.

Have odin script use "local" if uname returns no hostname.

Switched from yacc to bison to generate odin command parser.

Reordered the flags to fopen to put the "+" before the "b".


1.17.3

Fixed copy command so that a directory can be copied into an existing
directory.


1.17.2

Fixed installation bug that would break the install after "configure"
was invoked.


1.17.1

Removed special handling of *.hh from cc package.

Merged in support for C++ compilation of odin source from eli group.

Merged in latest tex package from eli group.


1.17

Added support for automatically configuring the Odin installation with
the "configure" program.

The bug which collapsed ":map=:a :map=:b" into just ":map=:a" is fixed.

Files derived from a :map no longer have a ":" in their cache name.

Added check for documentstyle and documentclass in tex.sh.

Extended READ-LIST so that it can take a directory as input an produce
a list of the elements of that directory as output.

The warnings of file targets are no longer lost.

The edit variant of the Odin copy command reports the status of the
edited object after the edit is completed.

When :view is applied to a spec with an element of a virtual directory
that does not exist, it now ignores that missing element rather than
aborting the :view.

Removed the arbitrary expression form of :map that was introduced
in 1.16.9.


1.16.9

Fixed bug which caused multiple parameter values for a parameter
in a dg rule to be replaced by a null value.

Extended :map to allow an arbitrary expression of the form:
test.sm :list :map=(:drv1 +prm=(:drv2) :drv3)

Fixed off-by-one line-number in dg parser error messages.

Added "\01234" to name an object by with object-id "1234".


1.16.8

Extended :lookup to flatten parameter values that are lists into a sequence
of atomic parameter values.


1.16.7

Fixed the following anomaly generated by nested virtual targets in eli:
"if-filelm.c", line 445: FilHdr == ERROR || FilPrm == ERROR || ListFilHdr == ERROR


1.16.6

The derivation and parameter help of a virtual target is now based
on the value of the target, rather than just the name of the target.

Removed assumption that "." and ".." are the first two elements of
every directory.

Added READ-REFERENCE tool, that produces a reference from a text file.

Allow a package to add an input to a COLLECT in another package, with:
   COLLECT (:another_input) => (:other_package * other_package_collection);


1.16.5

"internal" database objects now have distinct names instead of just
using the name of the nearest external object:
   composite types now named "<first-output-type>*composite"
   pipe and generic objects now named <instance-object>:abstract
This is relevant only if you use !:inputs, !:outputs, etc. to
browse the database.

tregrm generated yacc files modified to move declarations to top of c file.

FilHdr->Flag!=0 anomaly with view-spec error-reporting fixed.

environment variable values containing variable references no longer garbled.


1.16.4

FilPVal==ERROR anomaly fixed.


1.16.3

Parameter lossage bug in :lookup tool fixed.


1.16.2

View search paths inherited properly for ,vw files.

:dir works properly with virtual files.

:apply=:type is now :map=:type (to avoid confusion with the :apply type).

:lookup=:type is a new second order type.


1.16

Odin distribution moved to ftp.cs.colorado.edu


1.15

Extra types from file:? bug fixed.

Produces reasonable error message if TCP/IP is not available.


CONVERTING TO 1.14

** Regular users **

The MaxSize, MinSize, and HogSize variables have been deleted.

The old :stdout and :output derivations in the run package have been deleted
and :pipe.stdout and :pipe.output have been renamed :stdout and :output.

If MaxBuilds>0 each build script is given /dev/null as stdin, and a tmp-file
for stdout/stderr.  This tmp-file is displayed when the build script exits.


CONVERTING TO 1.13

** Tool package writers **

Outputs of EXEC tools cannot be lists or references.


CONVERTING TO 1.12

** Regular users **

The shell used to execute "!" commands is the value of $SHELL if you are
running Odin interactively (i.e. are getting a "->" prompt); otherwise
/bin/sh is used.

The (| ... |) notation on the first line of an Odinfile has been removed.

Since ~ is now recognized in odin commands, a filename that really begins
with a ~ must have the leading ~ escaped, e.g. \~not-a-login-id/foo/bar

** Tool package writers **

A package library directory must contain a file named PKGLST,
which lists the packages in the library, one per line.


CONVERTING TO 1.11

** Regular users **

The extension for C system models is now ".c.sm" instead of ".sm".

** Tool package writers **

Replace all occurrences of :flag with :first.

Replace all occurrences of :DIRECTORY with :DERIVED-DIRECTORY.


CONVERTING TO 1.10

** Tool package writers **

Parameter values of a specified type are now passed to a tool as an
Odin list object, which means that all the list derivations can be applied
to the parameter values.  This change is reflected in the parameter type
declarations - in particular, the object type declared for the parameter
type is the derivation that is a applied to the parameter value list before
it is given to a tool as input.  The net impact then of this change is that
parameter declarations of the form:
  prmA 'xx' => :FILE;
  prmB 'xx' => :VOID;
should be modified to read:
  prmA 'xx' => :cat;
  prmB 'xx' => :first;

Each regular input object (not a NEEDS input) to an EXEC tool must now
be a file (not a list).  Previously, the :ls derivation was implicitly
applied to an input list - now this must be explicit.  Since the result
of the :ls derivation does not depend on the values of the elements of
the input list, only on their names, if the tool should depend on these
values, the input list must be added to the NEEDS section of that tool.
For example,
   EXEC (foo.sh) (:some.list) => (:some.output);
should be modified to read:
   EXEC (foo.sh) (:some.list :ls) NEEDS (:some.list) => (:some.output);
