pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/math/openaxiom
Module Name: pkgsrc
Committed By: asau
Date: Wed Dec 16 01:54:13 UTC 2009
Modified Files:
pkgsrc/math/openaxiom: Makefile PLIST distinfo
Added Files:
pkgsrc/math/openaxiom/patches: patch-aa
Log Message:
Update to OpenAxiom 1.3.0
Changes since previous release:
Compiler
- The compiler now treats ^ as alias for **.
- The compiler now rejects ambiguous left hand sides of
definitions where parameter types are left out for
inference. Previously, the compiler would pick the first
signature from some mostly random order, with a warning.
- For categories with default implementations, the compiler
can be directed to compile only the purely category part
(exports), or only the default implementations (category
packages).
- The compiler now supports a Foreign Function Interface. In
particular, signatures for external entities may be declared
at capsule level. Currently, only ISO C functions are
supported, but future releases may support ISO C++ and other
mainstream languages.
- The parsing of signature for operators has been improved.
Previously, operator names needed to be quoted in signature.
That is not longer needed. For instance, previously, one had
to write (at category level)
"*": (%,%) -> %
_/_\: (%,%) -> %
_not: % -> %
With this release of OpenAxiom and onward, one can simply write
*: (%,%) -> %
/\: (%,%) -> %
not: % -> %
which is much simpler to read, write, and much more regular.
- The compiler now supports is-case pattern matching. The new
pattern matching syntax is useful for structuring retractions,
and also for domain recovery from expressions of type Any.
- The compiler now supports the loop control transfer operator
iterate in repeat loops - previously, the construct was
accepted only in scripts (not libraries). That discrepency is
now ended.
Interpreter
- Declared variable with no specified values are now handled
as if symbolic value with a specified type.
- The interpreter now parses a disjunctive expression
involving the 'is' operator the obvious way. E.g. Now
T is Integer or T has Ring
is now understood as
(T is Integer) or (T has Ring)
- The interpreter now handles existentially quantified or
universally quantified expressions
Algebra
The following types have been added to OpenAxiom-1.3.0
- The domain Boolean and category BitAggregate no longer
export the operation ^ for logical negation. Use the
operator not which is the canonical and documented operator.
- The domain InputForm now has a new exported signature
parseString: String -> %
for parsing expressions given as string.
- The domain Boolean now belongs to the category
OrderedFinite.
- The domain KleeneTrivalentLogic is added. It implements
Stephen Kleene's 3-valued propositional logic.
- For file orinted I/O, new domains have been added:
+ IOMode: This domains defines three constants to indicate
the direction of file I/O operations.
+ InputBinaryFile: This domains implements the basic input
operations on binary files.
+ OutputBinaryFile: This domains implements the basic
output operations on binary files.
- The domain BinaryFile has been replaced by three specific domains:
+ InputBinaryFile: datatype for input file open in binary mode;
+ OutputBinaryFile: datatype for output file open in binary mode;
+ InputOutputBinaryFile: datatype for input and output file open
in binary mode.
- Three new categories are introduced, related to conversions:
+ CoercibleFrom: This category is the mirror image of the
standard category CoercibleTo.
+ HomotopicTo: This category is the symmetrization of the
category CoercibleTo.
+ ConvertibleFrom: This category is the mirror image of
ConvertibleTo.
- Previous releases defined instantiations of the domain
constructor Expression as satisfying the category OrderedSet.
That was both confusing and incorrect in conjunction with
other algebraic structures. From now on, Expression(T) no
longer satisfies OrderedSet.
- Three new categories have been added:
+ LeftLinearSet
+ RightLinearSet
+ LinearSet
The category AbelianGroup extends LeftLinearSet Integer.
The parameterized category constructor LeftModule extends
LeftLinearSet. Similarly, the category RightModule extends
RightLinearSet.
- The domain Any has been reworked. In particular, the
operation domainOf, objectOf, and showTypeInOutput have been
removed. Equality of two objects of domain Any is equality
according to the underlying domain, if that domain belongs to
the category BasicType; otherwise, it is equality of storage
locations.
Runtime System
The Lisp backend now uses type information derived from exports
and domain representation for code generation purposes.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 pkgsrc/math/openaxiom/Makefile
cvs rdiff -u -r1.4 -r1.5 pkgsrc/math/openaxiom/PLIST
cvs rdiff -u -r1.2 -r1.3 pkgsrc/math/openaxiom/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/math/openaxiom/patches/patch-aa
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index