This package includes utility classes used the ACT/Fluid project,
that are independent of the IR. They may be replaced by
externally developed classes. Some already have been replaced.
Most of the classes here concern sets and control-flow analysis
lattices. The set classes include the ability to represent (some)
infinite sets, and the ability to ensure sets with the same elements
are represented with the same object. Then object identity
can be used to check equality.
Thematic listing of classes:
- Sets
- {@link fluid.util.ImmutableHashOrderSet}
- {@link fluid.util.SetException}
- {@link fluid.util.AbstractCachedSet} (abstract)
- {@link fluid.util.SetCache}
- {@link fluid.util.CachedSet} (unused)
- Tables
- {@link fluid.util.IntegerTable}
- {@link fluid.util.Hashtable2}
- Lattices
- {@link fluid.util.Lattice} (interface)
- {@link fluid.util.SetLattice} (abstract)
- {@link fluid.util.UnionLattice}
- {@link fluid.util.IntersectionLattice}
- {@link fluid.util.BooleanLattice}
- {@link fluid.util.RecordLattice}
- {@link fluid.util.ArrayLattice}
- {@link fluid.util.ChainLattice}
- {@link fluid.util.FlatLattice}
- {@link fluid.util.BitsLattice}
- Basic data structures
- {@link fluid.util.AssocList}
- {@link fluid.util.Stack} (being replaced by {@link java.util.Stack})
- {@link fluid.util.Queue}
- Trivial classes
- {@link fluid.util.Pair}
- {@link fluid.util.Triple}
- {@link fluid.util.AppendEnumeration}
- {@link fluid.util.EmptyEnumeration}
- {@link fluid.util.SingletonEnumeration}
- {@link fluid.util.PairEnumeration}
- Persistence-related
- {@link fluid.util.UniqueID}
- {@link fluid.util.FileLocator} (interface)
- {@link fluid.util.PathFileLocator}
- {@link fluid.util.ZipFileLocator}
- Other
- {@link fluid.util.Profiler}
- {@link fluid.util.ThreadGlobal}
There is a test suite for the set classes in a package private class.
If you gmake test in the code/fluid/util directory,
you will see it in operation.