From 85b76476de71f43d3eb25d6bef4ee6d84cb71f6c Mon Sep 17 00:00:00 2001 From: Adrian Thurston Date: Sun, 18 Oct 2020 11:44:43 -0700 Subject: lift all source code into src/ dir --- src/aapl/ChangeLog | 562 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 562 insertions(+) create mode 100644 src/aapl/ChangeLog (limited to 'src/aapl/ChangeLog') diff --git a/src/aapl/ChangeLog b/src/aapl/ChangeLog new file mode 100644 index 00000000..483ad825 --- /dev/null +++ b/src/aapl/ChangeLog @@ -0,0 +1,562 @@ +Aapl 2.14 - March 17, 2006 +========================== + -Added a transfer function to the double list. This function should supersede + the use of shallowCopy + abandon. In the by-value list the destination list + is emptied first. + -Added a transfer function to the Avl tree. + -All double lists and Avl trees now implement deep copies in the + operator=(...) functions and copy constructors. Previously only the by-value + versions of these structures would do deep copies. + -Removed the deep and shallow copy functions from the double lists and Avl + trees. These structures should now be consistent accross all variants except + for the fact that the by-value versions delete elements in destructors and + when overwriting and the others simply abandon their elements (which may not + be allocated on the stack). + +Aapl 2.13 - Jan 25, 2006 +======================== + -The vector and binary search table constructors that set an initial amount + of allocation have been removed. They have been replaced with constructors + that insert initial values, which is a more common task and is a more + intuitive use for contructors. + -Removed the String class. Better to use the stl string class. Aapl::String + does not provide any real advantage over the STL version. Aapl::String has + not been heavily tested and does not have very much functionality. + -Removed the "tiny" versions of templates. These templates had functionality + reduced in the interest of reducing compiled binary size. These templates + did not find any real world use, nor were they heavily tested. + -Removed the "simple" versions of vectors. These should be implemented as + template specializations, not new classes. May be brought back as such in + the future. + -Added vinsert and vremove routines for accessing the insert and remove of + the underlying vector of binary search tables. Previously, these were + accessed by prefixing the insert call with the vector base class name, + however this method is somewhat inconvenient, because it either requires all + the template arguments to be given or an additional typedef to be made. + Prefixing the call with the letter v is simpler. + +Aapl 2.12 - May 15, 2005 +======================== + -Documentation updates to trees, lists, compare classes, binary search tables + and various other places. + -Added iterator documentation and example. + -Added proper includes for all examples, which now all compile. + -Table comparisons now properly inherit the CompareT class, enabling table + comparisons to call non-static element compare classes. + -Removed the Deque structure. This structure was never used, incomplete and + poorly tested. In most problems for which it is a candidate (large + collections of objects in sequential ordering that are not required to be in + contiguous memory), a simple replacement can easily be implemented with a + small amount of code. Rather than be allowed to go unused and unmaintained, + it is removed. + -In the AvlTreeEl structures for Maps and Sets, getKey can be const. + -Removed the non-standard malloc include. + +Aapl 2.11 - May 30, 2004 +======================== + -Moved from ints to longs for most integer values to get 64 bit numbers on 64 + bit machines. Fixes alignment problems on 64 bit machines. + -Added AvliBasic, the linked version of the basic tree where the entire + element is the key. + -Updated documentation. + +Aapl 2.10 -- Feb 5, 2004 +======================== + -Fixes for two-stage lookup. Compiles with gcc-3.4 + Details at http://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html#Name%20lookup + -Fixed wrong Vector::Iter::pos() routines. + -FsmGraph code removed from aapl, as an increasing amount of diverse + specialization is required in applications. No longer feels like a general + purpose template. + +Aapl 2.9 -- Dec 8, 2003 +======================= + -Rewrote Deque to look and behave more like the rest of Aapl. Split it into + Deque and DequeSimp. Deque supports complex classes with constructors and + destructors. DequeSimp is for simple classes that can be coppied with + memcpy. Wrote stress tests for both. + -SVector::makeRawSpaceFor fixed to detach from the vector when the current + storage is shared. This affected SBstTable::insert() routines and caused + them to modify shared data, instead of behaving like copy on write as they + should. + -Tiny templates renamed to be consistent with the non-tiny templates. The + tiny versions now only have a T prepended to the name, the second character + is no longer lowercased. This changes Tavl* to TAvl*, TdList* to TDList* and + TsVect* to TSVect*. + -Removed AvlPmap, AvlPset, AvliPmap, and AvliPset. Rationale is that these + are too application specific. They require a pointer as the key (not + anything that dereferences the pointer) and so do not generalize very well. + Due to their lack of generality, they belong in application code. They + allowed a savings in code size when many instantiations were necessary, + however, the savings was only slightly better than TAvlTree. + -Test programs split into stress tests and non stress tests. All stress tests + run indefinitely as long as they don't encounter an error condition, in + which case they terminate by an assertion failure. They can be given a time + limit to run for by specifying the number of seconds on the command line. + -FsmGraph given repetition operators for repeating a machine n times. + -Concatenation operator accepts an optional list of states to draw the epsilon + transition instead of the from graph's final state set. + -Useless shared table header template parameter removed. + +Aapl 2.8.2 -- Aug 18, 2003 +========================== + -AvlSet::Iter and DListVal::Iter data access operators (*, ->) now return the + node in the tree, rather than value. This is to make all iterator behaviour + consistent: return the element. This also allows for O(1) statements like + tree.detach( iter ); + -DList and DListMel and Avl trees that are not sets or maps no longer do a + deep copy in the copy constructor and assignement operator. This is to stay + consistent with the fact that these lists and trees are not responsible for + managing the memory of the elements they contain. + -Table compare split into static and non-static versions. Default is the + static version, which compiles out the 'this' pointer. If an item compare + requires access to class data, the CmpTableNs can be used. + -The user's Fsm class is now required as a template parameter to FsmTrans, + FsmState and FsmGraph. + -All callbacks moved into FsmGraph class to allow the access of user data in + FsmGraph. + -Added callbacks for state creation and destruction to FsmGraph. + -EpsilonOp now takes a list of fsms to draw ops to. Allows the merging in of + several machines using only a single invocation of the NFA to DFA algorithm. + -FsmKeyOps is now expected to be a base class of the derived fsm class (ie a + sibling of FsmGraph). + -In transition lists are encapsulated in a class with an iterator. + -Unused leavingFsm parameter to starOp and concatOp removed. + -Fixed documentation building warnings. + -Documented iterator classes. + +Aapl 2.8.1 -- Jun 11, 2003 +========================== + -All iterator endpoint test functions have been renamed. + Iter::more() -> Iter::lte() + Iter::done() -> Iter::end() + Iter::revMore() -> Iter::gtb() + Iter::revDone() -> Iter::beg() + The rationale is that it is not obvious that more() and done() are direction + specific. It is more clear that lte() (less than end) needs to be changed to + gtb() (greater than beginning) when reversing the direction of a traversal. + -All avl tree element classes have been renamed to make element names + consistent. + AvlNode -> AvlTreeEl + AvliNode -> AvliTreeEl + AvlMapNode -> AvlMapEl + AvliMapNode -> AvliMapEl + AvlSetNode -> AvlSetEl + AvliSetNode -> AvliSetEl + TavlNode -> TavlTreeEl + TavliNode -> TavliTreeEl + TavlMapNode -> TavlMapEl + TavliMapNode -> TavliMapEl + TavlSetNode -> TavlSetEl + TavliSetNode -> TavliSetEl + AvlPmapNode -> AvlPmapEl + AvliPmapNode -> AvliPmapEl + AvlPsetNode -> AvlPsetEl + AvliPsetNode -> AvliPsetEl + FsmSDNode -> StateDictEl + AvlTree::nodeCount -> AvlTree::treeSize + -All binary search table and avl tree classes now inherit from the compare + class. This allows the compare function to be non-static and for it make use + of state that is common to the data structure. + -BstTable(int allocLen) no longer uses Vector::setAsNew and therefore Element + does not require Element() constructor. + +Aapl 2.8.0 -- Jan 5, 2003 +========================= + -Switched to the LGPL. + -Added get() to String class. Returns the data ptr. + -Added operator<<(ostream &, String&). Previously relied on the implicit + cast to char* which did not work all the time. + -Iterators renamed and rewritten. The new style for checking if the iterator + is done is to call more() or done() if moving forwards and revMore() or + revDone() if moving backwards. Iterators now have first() and last() calls + for checking if the iterator is on the first and last element. The next() + and prev() calls now return the next and previous. THEY NO LONGER MOVE THE + ITERATOR FORWARD OR BACKWARDS. Increment() and decrement() are now available + for moving the iterator. + -Various fixes for the intel C++ compiler. + -Shared vector table header renamed from TabHead to STabHead. + -Started Tiny DList, Tiny VectSimp, Tiny SVectSimp, and Tiny AvlTree. These + classes reduce final executable size by reusing core code across + instantiations with different types. They can be used identically to the + non-tiny counterpart if only iterators are used for accesing the structure. + The catch is that the underlying data structures have generic pointers that + are not directly usable without casting. + +Aapl 2.7.0 -- Dec 20, 2002 +========================== + -DoubleList::length -> DoubleList::listLen and added length() function. This + is to keep consistent with vectors and strings. + -Sorting routines now inherit from the compare class and use a non-static + compare routine. This lets the compare have state. This will likely be + extended to all structures that use a compare class. + -Constructor added to string that does sprintf style formatting. + -Routines added to string for setting from a char*, len pair. + -Table class (used by vector) member length changed to tabLen and the + the length() const routine added. This makes SVector a more easy substitute + for Vector. Previously the length member was an int in Vector and a function + call in SVector. Now it is a function in both. + -String::str -> String::data and String::getLen() -> String::length() to make + access of string data consistent with access of table data. + -Binary search tweaked to use a shift in place of a divide. + -FsmGraph code from rlfsm moved back into Aapl and Reglang FSM terminated. + Now that the graph code has been separted from the priority and action code, + the base template is leaner and more generalized. It now fits well in Aapl + as a generic programming construct. Also, rlfsm was not enjoying much + exposure and no sense in letting the fsmgraph code fight for itself. The + relevant fsmgraph changes since the split at 2.5.0 follow: + -Support of arbitrary key types for graph completed. + -Dramatic performance improvements in basic fsm operations. Kleen star, + union, and concatenation do not require a walk of all states and can go very + fast when there is no overlap between the machines. + -Fsm Range transitions implemented. Can now efficiently specify machines that + span very large ranges. + -More efficient partition based fsm minimization implemented. Algorithm is + similar to Hopcroft's minimization algorithm. + -Fsm Graph split into base code that implements FSM operations, NFA-DFA + conversion and minimization and a superclass that implements priority and + action setting. Allows the base code to be easily reused for other + applications that require different state and transition properties. The + superclass is left as user code in Ragel and is not included in Aapl. + -Can now have various classes of named entry points in an fsm graph for + maintaining entry other than the start state. This is useful for making + actions that jump into or call various named locations in the machine. + -Various bugs in fsm graph code fixed. + +Aapl 2.6.0 -- Nov 4, 2002 +========================= + -Added AvlPmap, AvlPset, AvliPmap and AvliPset classes. These are + instantiations of AvlMap and AvlSet with void* types and a small inline + wrapper interface for doing type conversions. If many different maps are + used for storing integers or pointers then these classes can cut down on + code bloat. + -Added AvlTree::remove, which will detach and delete elements from the tree. + -Removed set, unSet and isSet from AvlTree. These functions are redundant and + clutter the interface. + insert/remove/find functionality just for convenience. Prefer to remove them + than to clutter the interface with inconsistently named functions. + -Fixed the return type of BstTable::removeMulti. It should be an int (not + bool) because it returns the number of items removed. + -Added SVector and SVectSimp: implicitly shared copy-on-write vectors. + -Added ResizeCtLin: Identical to ResizeLin, except the step is specified at + compile time using a template argument. + -Removed deepCopy from the classes that by default behave as a deep copy. + Found the duplicate function to make it confusing as to how the structure's + operator= behaves. + -File rename of shrstr to astring, to make it easier to find. + -BsTable renamed to BstTable to stay consistenty named with the other Bst + classes. Also renamed the file from bstable.h to bsttable.h for consistency. + -Compare class routines are now Compare::compare (used to be + Compare::Compare). This is to keep with the lowercase function name + convention. + -Added the insertion of whole elements to BsTable and BstMap (already exists + for BstMap). + -Added the insertion of entire other tables to BsTable, BstMap and BstSet. + -The getKey function for binary search table must now be const as well as the + existing requirement of returning a const object. This was needed for the + insertion of whole elements so the requirement was made for all + insert/remove/find routines in order to stay consistent. + -Removed set, unSet and isSet from BstSet. These functions duplicated the + insert/remove/find functionality just for convenience. Prefer to remove them + than to clutter the interface with inconsistently named functions. + +Aapl 2.5.4 -- Sept 20, 2002 +=========================== + -All of Aapl is now in the Aapl:: namespace, which is disabled by default. It + can be turned on by defining #define AAPL_NAMESPACE. + -Mergesort uses only memcpy to move data around, instead of the inconsistent + use of the = operator. Classes that are sorted have no way of knowing that + they are being moved around in mem. + -Implemented QuickSort, BubbleSort and Insertion Sort. + -QuickSort uses InsertSort when the array being sorted is small. + -MergeSort uses BubbleSort when the array be sorted is small. + -Implemented an implicitly shared string class. + +Aapl 2.5.3 -- Aug 17, 2002 +========================== + -Much work done on the user documentation. + -AvlMap and AvlSet destructors now delete all elements. The idea is that + these classes manage memory on behalf of the user, so cleanup. Also, a deep + copy will cause the existing contents to be deleted. The remaining avl trees + do not assume ownership of element and thus do not delete anything. + +Aapl 2.5.2 -- Aug 14, 2002 +========================== + -Bug fixed in Vector::replace. When overwriting data without overwriting up + to the end of the vector or extending it, the vector would shrink in size. + This is because the tableLength was getting set to the end of the overwrite + region in every case. + -Bug fixed in empty and abandon of Avli* trees. They now clear the list head + and tail pointers. + -shallowCopy, deepCopy and the = operator were added to double list, vector, + and avl tree. The = operator implements the deep copy functionality. + -The Vector class was heavily rewritten. The purpose of the rewrite is to + have a vector that does not require the class that it contains to have a + default constructor. In many cases adding a default constructor violates the + design of a class. A class should not be required to have a default + constructor just because it is going into a vector. To have this feature, + the new vector differs from the old vector in a few ways. If the vector is + instructed to add elements off the end of the vector then undefined + behaviour results. The new vector will not implictly create new items. + Also, new items cannot be added to the list by giving a null data pointer. + Instead insertNew, appendNew, etc. can be used. + -DListVal destructor now deletes all elements. The reasoning is that DListVal + manages elements and so it should clean up after itself. + -remove routines added to double list classes. They are the same as detach + except they also delete elements. + -Default down resize of ResizeRunTime fixed: now is Exponential as is the up + resizing. + +Aapl 2.5.1 -- Aug 9, 2002 +========================= + -Class and function descriptions from doc/*.txt moved to source code in + doxygen format. + -Iterators slimmed down in anticipation of the more coplicated iterator for + avltree. Iterators now provide basic moving forward and backward and looking + at current value. Looking ahead and moving ahead by more than one space is no + longer supported. + -Assignment operator of all iterators now return a reference to this. + -Implemented iterator for avl tree (non Avli* trees). The iterator can be + started on either end and can move forwards or backwards. Does not support + trees larger than 32 element in height (should be sufficient). + +Aapl 2.5.0 -- Jun 22, 2002 +========================== + -Doxygen docs started. + -ExpnResize -> ResizeExpn, ConstResize -> ResizeConst, LinResize -> ResizeLin + Name changes that will keep a lexographically sorted list of classes in good + order. + -StrCmp -> CmpStr, OrdCmp -> CmpOrd, TableCmp -> CmpTable for same reason as + above. + -BstTable fixed so that Resize class is passed to underlying vector. + -Pdp Endianness support removed as it is untested. Don't have a pdp endian + machine on which to test. + -cc file extension changed to cpp for better portability. + + ******** Aapl split out into three libs: Aapl, Autil, Reglang FSM *********** + + Aapl is: A generic programming template library. Aapl is an alternative to + the STL. It currently contains Linked List, Avl Tree, Vector, Binary Search + Table, Double Ended Queue, Merge Sort. + + Autil is: A library of simple utility classes that are easy to come by. + Autil contains paramater parser, byte ordering facilities, character + classes. + + Reglang FSM is: A template library of algorithms and data structures for + compiling state machines from regular languages. + +Aapl 2.4.1 -- May 4, 2002 +========================= + -Fixed automatic dependencies, were not working correctly. + -C++ standards compliant I/O and namespaces. + +Aapl 2.4.0 -- May 3, 2002 +========================= + -Vector now uses malloc, realloc and free so the performance gain of + of using realloc over new, memcpy, delete in resizing can be realized. + -Buffer Renamed to VectSimp. The name buffer is way overused and brings + preconceptions with it. VectSimp now has the same functionality as vector. + It is a 'flavour' of vector. The main difference is that is does not use + copy constructors/destructors. It uses memcpy to put data in and as a result + can go much faster. The idea is that it is used on 'simple data'. + -The type of resizing that vector uses is no longer controlled by including + different files and using different names (ie, VectorC no longer exists). + The old style (last seen in v1.1.2) of using a template parameter has been + resurrected. It was previously removed because it caused very long symbol + names. That problem has been fixed by making the class that goes into that + template parameter not a template. It is a normal class and as such will + cause symbol names to increase a constant amount. The old way was the class + was a template taking type T so that essentially doubled the length of the + symbol. The purpose of this change is to eliminate the many files required + to have all the different resizing types. Any class that inherits from + vector needs to have many flavours in order to support the different + resizing types and that gets ugly. Providing resizing options to the bstable + classes would require 30 files. + -Default step for linear resizing is changed from 10 to 256. + -FsmGraph structure supports Default transitions. Default transitions can be + used in place of newing up a transition for every char in the alphabet in + order to get the 'dot' and 'dot star' fsms. It is incredibly more efficient + and will make large integer alphabets feasible. + -The conversion from FsmGraph to FsmMachine is now moved into a class called + FsmBuild. + -FsmMachine no longer stores transition indices as a linear chunk. Now + stores key, index pairs. This will facilitate using FsmMachine with very + large alphabets because large index tables will not be allocated. when there + is great variation in transition keys. + -FsmMachine stores only offsets, no pointers. + -Aapl assert is removed in favour of using system assert. Can't see a reason + to duplicate system include. + -Lowercased the interface to BsTable. + -Makefiles use automatic dependencies. + -AvlTree interface was lowercased/consolodated. + -Large switches at the top of *common.h files were removed. The defines were + put into the files that include the common files. + -BsTable interface was lowercased/consolodated. + -BstSet replaces VectSet. + -Configure script allows you to specify what objects to build using the + --enable-src option + -AvlTree verification is moved out of the main tree and into the test cases. + +Aapl 2.3.1 -- March 25, 2002 +============================ + -Fixed errors in the event loop with respect to unregistering. + -Added Signal handling to event loop. + -Breaking out of event loop is now much cleaner. + -Added CONTENTS file. + -Removed trivial class File. I think most would rather code this kind + of stuff on their own, or use a more featureful library. + -Removed Data base class. Again, kind of trivial. Better left to the user. + -DList::detach{Front,End} -> DList::detach{First,Last}. This change was + made in order to be more consistent with the iterator convention of + using first, last, sfirst, slast. + -Wrote documentation for double list. + +Aapl 2.3.0 -- March 19, 2002 +============================ + IMPORTANT: This release marks the beginning of a major change in the + naming conventions. Previously, naming conventions had function names + starting with an upper case. The member functions will slowly be changed + to start with a lower case. Some functions names will also be changed + to follow the conventions in doc/conventions.txt. Vector and DList have + already been changed. + + These changes are being made to make aapl more compatible with existing + template libraries and to provide a more consistent interface across + the classes. + + -Vector and double list get iterators. + -Fixed buffer. Restructuring vector broke it. + -Lower cased names in vector. + -Lower cased names in doublelist. + -Vector::Overwrite -> Vector::replace + -Vector::Delete -> Vector::remove + -DList::AddEnd -> DoubleList::append() + -DList::AddFront -> DoubleList::prepend() + -DList::DeleteElements -> DoubleList::empty() + -DList::EmptyList -> DoubleList::abandon() + -Added DListVal, which is the 'by-value-type' double list that does + not require a DListEl class to be defined. + -Began conventions doc. + -Rewrote the connection/selector code. It is now simpler and more generic. + Docs on the way. The code is now in event.{h,cc}. The select loop can + reliably translate asyncronous signals into events in the event loop. + However, code is not yet set up for processing the signal events. The event + loop handles signals using sigsetjmp/siglongjmp and avoides the classic unix + select loop race condition with respect to signals. + +Aapl 2.2.0 -- Feb 25, 2002 +========================== + -Added AvlSet. AvlSet is like AvlMap except you give only a key. It also has + the set interface: Set, UnSet and IsSet that return boolean values and don't + really care to speak about element in a tree. + -Added walkable versions of avl tree. There is a walkable version of all + existing trees. They are AvliTree, AvliMel, AvliMelKey, AvliMap, and AvliSet. + Implemented by having the element inherit from DListEl and the tree inherit + from DList. All operations on the tree remain O(log(N)). Maintaining the list + pointers adds a constant amount of work. Adds 8 bytes to each element (for a + total of 24) and 12 bytes to the tree (for a total of 20). + -Added a few more sections to docs for AvlTree + +Aapl 2.1.0 -- Feb 22, 2002 +========================== + IMPORTANT: VectorC(int) no longer has the same meaning. Previously it set + allocation length with no size. Now it sets size with no allocation so + it is effectively useless as the table cannot grow it's allocation. It + will assert fail. Use VectorC(int, int) instead. See Vector docs. + + -Further split Vector into all possible types of upresizing and down + resizing. Existing Vectors remain unchanged except for constructor of + VectorC. It is now possible to have a vector that up resizes linear and + down exponential or up exponential and no down (constant), etc. Also + added VectorR, which allows for runtime setting of how to resize. + -Implemented a step for the linear vector. Now the following is true: + If the sequence of size requests is linear, the number of resizes is + also linear. + -Wrote docs for Vector. + +Aapl 2.0.0 -- Feb 17, 2002 +========================== + IMPORTANT: The 2.x.x version of Aapl is not backwards compatible with + 1.x.x version. Code that compiles against 1.x.x may not compile against + 2.x.x. The changes mostly amount to two things: + + 1) Making data and function class member naming convetions consistent. All + variables start with a lower case whereas functions, classes, constants + and type names all start with an upper case. + + 2) Shortening the symbols in resulting object code. Aapl classes achieved + great versatility by providing many tempate parameters mostly with + default values. Now this versatility is achieved by splitting the class + up into many different classes, each with thier own 'flavour' of the data + structure. This split is accomplished using preprocessor defines so there + is no code duplication. Classes now have shorter names and only required + template paramaters. This dramatically cuts down on long symbols and + eliminates compiler warnings on platforms that restrict symbol lengths. + + -Made all data member names consistent with general coding style: constant + identifiers start with upper case, variables (members too) start with lower. + -Split up DoubleList into DList and DListMel. Goal is shorter + symbol names by making two specialzed classes instead of one general class. + -Split up AvlTree into 4 classes. Same goal as split of DoubleList. + AvlTree now supports having multiple keys in the same object as well as + multiple tree pointers. This means a single object can be in different + trees that each use different keys. + -General rearranging of code in fsmgraph and changing templates to result + in shorter symbols. Try to keep symbol lengths < 255. + -Split up Vector into 3 classes, one for each table type. + -Split up VectorSet into 3 classes, one for each table type. Also renamed + it to VectSet for conciseness. + -Split up Binary Search table into 6 classes, one for each table type times + regular bst table and bstmap. The bstmap has the template semantics of + the old bstable. BsTable lets you give the whole object you want to put in + the table in the same manner as vector and avltree. + -Both AvlTree and BsTable use GetKey() functions in the element/element types. + Previously they required that the key member be named 'key.' It can now + be named anything, and it must be returned by GetKey. + -Added copy constructor for AvlTree. + -Added Avl test progs for the various flavours. + -Started some real docs. Currently only AvlTree is documented. + +Aapl 1.2.2 -- Feb 2, 2002 +========================= + -Started ChangeLog file. + -Parser Gen is now gone from aapl. It is not generic reusable code. It now + lives in Keller which will be released soon. + +Aapl 1.2.1 -- Jan 29, 2002 +========================== + -Can choose between assertions that dump details of the assertion + failure to the screen then segfault or just segfault using a define. + -Bugfix in avltree insertion. Only showed up when re-using avl element. + The insert routine was not nulling out appropriate pointers when adding + a leaf element. Worked correctly when always newing up element (how avl tree + is mostly used) as nulling out pointers is done by the element constructor. + -File Buffer size up to 1K. Was at 10 bytes for debugging/testing purposes. + -Transition count variables gone from fsm graph. Computing this is silly as + the vectors that implement the out transitions + -Transition priorities routines in FSM Graph no longer operate as a 'delta' + but instead as absolute. + -Function keys are no long a duple, instead just one integer. Using two + integers is overkill and not likely to be used. To acieve the same effect as + a duple, break the bits of the single integer into multiple fields. + -Allow the shifting of the priorities of start transitions to above some + value. Useful before staring machines so that out transitions of a final + state run before the transitions of the start state when going from a final + state back into the machine. + -Allow the clearing of transition functions. + -Cleaned up FsmAttachStates: no longer reusing transitions when replacing, + old trans are deleted and a new one is made. This eliminates the need for + the ResetTransition routine. + -When building machines, use max int and min int as the defaults for highIndex + and lowIndex. + -When building machines, transition 0 is always the error transition, + no longer insert it into the transition list on demand. + -When building machines, compute the global high and low index. Used by ragel. + -Out priorities have a concept of being set vs not being set. + -Concatenation and Star can now behave as if they do not cause leaving the fsm. + Allows the user to turn off picking up of out transitions and out priorities. + +Aapl 1.2 -- Aug 28, 2001 +======================== + -Initial release. -- cgit v1.2.1