1edebbb8eSjmmvMajor changes between releases Automated Testing Framework 2edebbb8eSjmmv=========================================================================== 3e2207522Sjmmv 4e2207522Sjmmv 5*0ebb519dSjmmvChanges in version 0.12 6*0ebb519dSjmmv*********************** 7*0ebb519dSjmmv 8*0ebb519dSjmmvExperimental version released on November 7th, 2010. 9*0ebb519dSjmmv 10*0ebb519dSjmmv* Added the ATF_REQUIRE_THROW_RE to atf-c++, which is the same as 11*0ebb519dSjmmv ATF_REQUIRE_THROW but allows checking for the validity of the exception's 12*0ebb519dSjmmv error message by means of a regular expression. 13*0ebb519dSjmmv 14*0ebb519dSjmmv* Added the ATF_REQUIRE_MATCH to atf-c++, which allows checking for a 15*0ebb519dSjmmv regular expression match in a string. 16*0ebb519dSjmmv 17*0ebb519dSjmmv* Changed the default timeout for test cases from 5 minutes to 30 seconds. 18*0ebb519dSjmmv 30 seconds is long enough for virtually all tests to complete, and 5 19*0ebb519dSjmmv minutes is a way too long pause in a test suite where a single test case 20*0ebb519dSjmmv stalls. 21*0ebb519dSjmmv 22*0ebb519dSjmmv* Deprecated the use.fs property. While this seemed like a good idea in 23*0ebb519dSjmmv the first place to impose more control on what test cases can do, it 24*0ebb519dSjmmv turns out to be bad. First, use.fs=false prevents bogus test cases 25*0ebb519dSjmmv from dumping core so after-the-fact debugging is harder. Second, 26*0ebb519dSjmmv supporting use.fs adds a lot of unnecessary complexity. atf-run will 27*0ebb519dSjmmv now ignore any value provided to use.fs and will allow test cases to 28*0ebb519dSjmmv freely access the file system if they wish to. 29*0ebb519dSjmmv 30*0ebb519dSjmmv* Added the atf_tc_get_config_var_as_{bool,long}{,_wd} functions to the atf-c 31*0ebb519dSjmmv library. The 'text' module became private in 0.11 but was being used 32*0ebb519dSjmmv externally to simplify the parsing of configuration variables. 33*0ebb519dSjmmv 34*0ebb519dSjmmv* Made atf-run recognize the 'unprivileged-user' configuration variable 35*0ebb519dSjmmv and automatically drop root privileges when a test case sets 36*0ebb519dSjmmv require.user=unprivileged. Note that this is, by no means, done for 37*0ebb519dSjmmv security purposes; this is just for user convenience; tests should, in 38*0ebb519dSjmmv general, not be blindly run as root in the first place. 39*0ebb519dSjmmv 40*0ebb519dSjmmv 41895f502bSjmmvChanges in version 0.11 42895f502bSjmmv*********************** 43895f502bSjmmv 44895f502bSjmmvExperimental version released on October 20th, 2010. 45895f502bSjmmv 46895f502bSjmmv* The ATF_CHECK* macros in atf-c++ were renamed to ATF_REQUIRE* to match 47895f502bSjmmv their counterparts in atf-c. 48895f502bSjmmv 49895f502bSjmmv* Clearly separated the modules in atf-c that are supposed to be public 50895f502bSjmmv from those that are implementation details. The header files for the 51895f502bSjmmv internal modules are not installed any more. 52895f502bSjmmv 53895f502bSjmmv* Made the atf-check tool private. It is only required by atf-sh and being 54895f502bSjmmv public has the danger of causing confusion. Also, making it private 55895f502bSjmmv simplifies the public API of atf. 56895f502bSjmmv 57895f502bSjmmv* Changed atf-sh to enable per-command error checking (set -e) by default. 58895f502bSjmmv This catches many cases in which a test case is broken but it is not 59895f502bSjmmv reported as such because execution continues. 60895f502bSjmmv 61895f502bSjmmv* Fixed the XSTL and CSS stylesheets to support expected failures. 62895f502bSjmmv 63895f502bSjmmv 64edebbb8eSjmmvChanges in version 0.10 65edebbb8eSjmmv*********************** 66e2207522Sjmmv 67edebbb8eSjmmvExperimental version released on July 2nd, 2010. 68e2207522Sjmmv 69edebbb8eSjmmvMiscellaneous features 7012aa0b5aSjmmv 71edebbb8eSjmmv* Added expected failures support to test cases and atf-run. These 72edebbb8eSjmmv include, for example, expected clean exits, expected reception of fatal 73edebbb8eSjmmv signals, expected timeouts and expected errors in condition checks. 74edebbb8eSjmmv These statuses can be used to denote test cases that are known to fail 75edebbb8eSjmmv due to a bug in the code they are testing. atf-report reports these 76edebbb8eSjmmv tests separately but they do not count towards the failed test cases 77edebbb8eSjmmv amount. 7812aa0b5aSjmmv 79edebbb8eSjmmv* Added the ATF_CHECK_ERRNO and ATF_REQUIRE_ERRNO to the C library to 80edebbb8eSjmmv allow easy checking of call failures that update errno. 8112aa0b5aSjmmv 82edebbb8eSjmmv* Added the has.cleanup meta-data property to test caes that specifies 83edebbb8eSjmmv whether the test case has a cleanup routine or not; its value is 84edebbb8eSjmmv automatically set. This property is read by atf-run to know if it has to 85edebbb8eSjmmv run the cleanup routine; skipping this run for every test case 86edebbb8eSjmmv significantly speeds up the run time of test suites. 8712aa0b5aSjmmv 88edebbb8eSjmmv* Reversed the order of the ATF_CHECK_THROW macro in the C++ binding to 89edebbb8eSjmmv take the expected exception as the first argument and the statement to 90edebbb8eSjmmv execute as the second argument. 9112aa0b5aSjmmv 92edebbb8eSjmmvChanges in atf-check 93407d7761Sjmmv 94edebbb8eSjmmv* Changed atf-check to support negating the status and output checks by 95edebbb8eSjmmv prefixing them with not- and added support to specify multiple checkers 96edebbb8eSjmmv for stdout and stderr, not only one. 979b3149ccSjmmv 98edebbb8eSjmmv* Added the match output checker to atf-check to look for regular 99edebbb8eSjmmv expressions in the stdout and stderr of commands. 100edebbb8eSjmmv 101edebbb8eSjmmv* Modified the exit checks in atf-check to support checking for the 102edebbb8eSjmmv reception of signals. 103edebbb8eSjmmv 104edebbb8eSjmmvCode simplifications and cleanups 105edebbb8eSjmmv 106edebbb8eSjmmv* Removed usage messages from test programs to simplify the 107edebbb8eSjmmv implementation of every binding by a significant amount. They just now 108edebbb8eSjmmv refer the user to the appropriate manual page and do not attempt to wrap 109edebbb8eSjmmv lines on terminal boundaries. Test programs are not supposed to be run 110edebbb8eSjmmv by users directly so this minor interface regression is not important. 111edebbb8eSjmmv 112edebbb8eSjmmv* Removed the atf-format internal utility, which is unused after the 113edebbb8eSjmmv change documented above. 114edebbb8eSjmmv 115edebbb8eSjmmv* Removed the atf-cleanup internal utility. It has been unused since the 116edebbb8eSjmmv test case isolation was moved to atf-run in 0.8 117edebbb8eSjmmv 118edebbb8eSjmmv* Splitted the Makefile.am into smaller files for easier maintenance and 119edebbb8eSjmmv dropped the use of M4. Only affects users building from the repository 120edebbb8eSjmmv sources. 121edebbb8eSjmmv 122edebbb8eSjmmv* Intermixed tests with the source files in the source tree to provide 123edebbb8eSjmmv them more visibility and easier access. The tests directory is gone from 124edebbb8eSjmmv the source tree and tests are now suffixed by _test, not prefixed by t_. 125edebbb8eSjmmv 126edebbb8eSjmmv* Simplifications to the atf-c library: removed the io, tcr and ui 127edebbb8eSjmmv modules as they had become unnecessary after all simplifications 128edebbb8eSjmmv introduced since the 0.8 release. 129edebbb8eSjmmv 130edebbb8eSjmmv* Removed the application/X-atf-tcr format introduced in 0.8 release. 131edebbb8eSjmmv Tests now print a much simplified format that is easy to parse and nicer 132edebbb8eSjmmv to read by end users. As a side effect, the default for test cases is 133edebbb8eSjmmv now to print their results to stdout unless otherwise stated by providing 134edebbb8eSjmmv the -r flag. 135edebbb8eSjmmv 136edebbb8eSjmmv* Removed XML distribution documents and replaced them with plain-text 137edebbb8eSjmmv documents. They provided little value and introduced a lot of complexity 138edebbb8eSjmmv to the build system. 139edebbb8eSjmmv 140edebbb8eSjmmv* Simplified the output of atf-version by not attempting to print a 141edebbb8eSjmmv revision number when building form a distfile. Makes the build system 142edebbb8eSjmmv easier to maintain. 143edebbb8eSjmmv 1449b3149ccSjmmv 1459b3149ccSjmmvChanges in version 0.9 146edebbb8eSjmmv********************** 1479b3149ccSjmmv 1489b3149ccSjmmvExperimental version released on June 3rd, 2010. 1499b3149ccSjmmv 1509b3149ccSjmmv* Added atf-sh, an interpreter to process test programs written using 151edebbb8eSjmmv the shell API. This is not really a shell interpreter by itself though: 152edebbb8eSjmmv it is just a wrapper around the system shell that eases the loading of 153edebbb8eSjmmv the necessary ATF libraries. 1549b3149ccSjmmv 1559b3149ccSjmmv* Removed atf-compile in favour of atf-sh. 1569b3149ccSjmmv 1579b3149ccSjmmv* Added the use.fs metadata property to test case, which is used to 1589b3149ccSjmmv specify which test cases require file system access. This is to 159edebbb8eSjmmv highlight dependencies on external resources more clearly and to speed up 160edebbb8eSjmmv the execution of test suites by skipping the creation of many unnecessary 161edebbb8eSjmmv work directories. 1629b3149ccSjmmv 1639b3149ccSjmmv* Fixed test programs to get a sane default value for their source 1649b3149ccSjmmv directory. This means that it should not be necessary any more to pass 165edebbb8eSjmmv -s when running test programs that do not live in the current directory. 1669b3149ccSjmmv 1679b3149ccSjmmv* Defining test case headers became optional. This is trivial to achieve 1689b3149ccSjmmv in shell-based tests but a bit ugly in C and C++. In C, use the new 1699b3149ccSjmmv ATF_TC_WITHOUT_HEAD macro to define the test case, and in C++ use 1709b3149ccSjmmv ATF_TEST_CASE_WITHOUT_HEAD. 171407d7761Sjmmv 172edebbb8eSjmmv 173407d7761SjmmvChanges in version 0.8 174edebbb8eSjmmv********************** 175407d7761Sjmmv 176407d7761SjmmvExperimental version released on May 7th, 2010. 177407d7761Sjmmv 178407d7761Sjmmv* Test programs no longer run several test cases in a row. The execution 179407d7761Sjmmv of a test program now requires a test case name, and that single test 180edebbb8eSjmmv case is executed. To execute several test cases, use the atf-run utility 181edebbb8eSjmmv as usual. 182407d7761Sjmmv 183407d7761Sjmmv* Test programs no longer fork a subprocess to isolate the execution of 184407d7761Sjmmv test cases. They run the test case code in-process, and a crash of the 185407d7761Sjmmv test case will result in a crash of the test program. This is to ease 186407d7761Sjmmv debugging of faulty test cases. 187407d7761Sjmmv 188407d7761Sjmmv* Test programs no longer isolate their test cases. This means that they 189407d7761Sjmmv will not create temporary directories nor sanitize the environment any 190edebbb8eSjmmv more. Yes: running a test case that depends on system state by hand will 191edebbb8eSjmmv most likely yield different results depending on where (machine, 192407d7761Sjmmv directory, user environment, etc.) it is run. Isolation has been moved 193407d7761Sjmmv to atf-run. 194407d7761Sjmmv 195407d7761Sjmmv* Test programs no longer print a cryptic format (application/X-atf-tcs) 196edebbb8eSjmmv on a special file channel. They can now print whatever they want on the 197edebbb8eSjmmv screen. Because test programs can now only run one test case every time, 198edebbb8eSjmmv providing controlled output is not necessary any more. 199407d7761Sjmmv 200407d7761Sjmmv* Test programs no longer write their status into a special file 201edebbb8eSjmmv descriptor. Instead, they create a file with the results, which is later 202edebbb8eSjmmv parsed by atf-run. This changes the semantics of the -r flag. 203407d7761Sjmmv 204407d7761Sjmmv* atf-run has been adjusted to perform the test case isolation. As a 205407d7761Sjmmv result, there is now a single canonical place that implements the 206407d7761Sjmmv isolation of test caes. In previous releases, the three language 207edebbb8eSjmmv bindings (C, C++ and shell) had to be kept in sync with each other (read: 208edebbb8eSjmmv not a nice thing to do at all). As a side effect of this change, writing 209edebbb8eSjmmv bindings for other languages will be much, much easier from now on. 210407d7761Sjmmv 211407d7761Sjmmv* atf-run forks test programs on a test case basis, instead of on a test 212407d7761Sjmmv program basis as it did before. This is to provide the test case 213407d7761Sjmmv isolation that was before implemented by the test programs themselves. 214407d7761Sjmmv 215407d7761Sjmmv* Removed the atf-exec tool. This was used to implement test case 216407d7761Sjmmv isolation in atf-sh, but it is now unnecessary. 217407d7761Sjmmv 218407d7761Sjmmv* It is now optional to define the descr meta-data property. It has been 219edebbb8eSjmmv proven to be mostly useless, because test cases often carry a descriptive 220edebbb8eSjmmv name of their own. 221edebbb8eSjmmv 22212aa0b5aSjmmv 22312aa0b5aSjmmvChanges in version 0.7 224edebbb8eSjmmv********************** 22512aa0b5aSjmmv 22612aa0b5aSjmmvExperimental version released on December 22nd, 2009. 22712aa0b5aSjmmv 22812aa0b5aSjmmv* Added build-time checks to atf-c and atf-c++. A binding for atf-sh 22912aa0b5aSjmmv will come later. 23012aa0b5aSjmmv 23112aa0b5aSjmmv* Migrated all build-time checks for header files to proper ATF tests. 23212aa0b5aSjmmv This demonstrates the use of the new feature described above. 23312aa0b5aSjmmv 23412aa0b5aSjmmv* Added an internal API for child process management. 23512aa0b5aSjmmv 23612aa0b5aSjmmv* Converted all plain-text distribution documents to a Docbook canonical 23712aa0b5aSjmmv version, and include pre-generated plain text and HTML copies in the 23812aa0b5aSjmmv distribution file. 23912aa0b5aSjmmv 24012aa0b5aSjmmv* Simplified the contents of the Makefile.am by regenerating it from a 24112aa0b5aSjmmv canonical Makefile.am.m4 source. As a side-effect, some dependency 24212aa0b5aSjmmv specifications were fixed. 24312aa0b5aSjmmv 24412aa0b5aSjmmv* Migrated all checks from the check target to installcheck, as these 24512aa0b5aSjmmv require ATF to be installed. 24612aa0b5aSjmmv 24712aa0b5aSjmmv* Fixed sign comparison mismatches triggered by the now-enabled 24812aa0b5aSjmmv -Wsign-compare. 24912aa0b5aSjmmv 25012aa0b5aSjmmv* Fixed many memory and object leaks. 25112aa0b5aSjmmv 252edebbb8eSjmmv 25312aa0b5aSjmmvChanges in version 0.6 254edebbb8eSjmmv********************** 25512aa0b5aSjmmv 25612aa0b5aSjmmvExperimental version released on January 18th, 2009. 25712aa0b5aSjmmv 25812aa0b5aSjmmv* Make atf-exec be able to kill its child process after a certain period 25912aa0b5aSjmmv of time; this is controlled through the new -t option. 260e2207522Sjmmv 261e2207522Sjmmv* Change atf-sh to use atf-exec's -t option to control the test case's 262e2207522Sjmmv timeouts, instead of doing it internally. Same behavior as before, but 263e2207522Sjmmv noticeably faster. 264e2207522Sjmmv 26512aa0b5aSjmmv* atf-exec's -g option and atf-killpg are gone due to the previous 26612aa0b5aSjmmv change. 267e2207522Sjmmv 26812aa0b5aSjmmv* Added the atf-check(1) tool, a program that executes a given command 269edebbb8eSjmmv and checks its exit code against a known value and allows the management 270edebbb8eSjmmv of stdout and stderr in multiple ways. This replaces the previous 271edebbb8eSjmmv atf_check function in the atf-sh library and exposes this functionality 272edebbb8eSjmmv to both atf-c and atf-c++. 273e2207522Sjmmv 274e2207522Sjmmv* Added the ATF_REQUIRE family of macros to the C interface. These help 275e2207522Sjmmv in checking for fatal test conditions. The old ATF_CHECK macros now 276e2207522Sjmmv perform non-fatal checks only. I.e. by using ATF_CHECK, the test case 277e2207522Sjmmv can now continue its execution and the failures will not be reported 278e2207522Sjmmv until the end of the whole run. 279e2207522Sjmmv 28012aa0b5aSjmmv* Extended the amount of ATF_CHECK_* C macros with new ones to provide 28112aa0b5aSjmmv more features to the developer. These also have their corresponding 282e2207522Sjmmv counterparts in the ATF_REQUIRE_* family. The new macros (listing the 283e2207522Sjmmv suffixes only) are: _EQ (replaces _EQUAL), _EQ_MSG, _STREQ and 284e2207522Sjmmv _STREQ_MSG. 285e2207522Sjmmv 286edebbb8eSjmmv 28712aa0b5aSjmmvChanges in version 0.5 288edebbb8eSjmmv********************** 289e2207522Sjmmv 29012aa0b5aSjmmvExperimental version released on May 1st, 2008. 291e2207522Sjmmv 292e2207522Sjmmv* Clauses 3 and 4 of the BSD license used by the project were dropped. 293edebbb8eSjmmv All the code is now under a 2-clause BSD license compatible with the GNU 294edebbb8eSjmmv General Public License (GPL). 295e2207522Sjmmv 296e2207522Sjmmv* Added a C-only binding so that binary test programs do not need to be 297e2207522Sjmmv tied to C++ at all. This binding is now known as the atf-c library. 298e2207522Sjmmv 299e2207522Sjmmv* Renamed the C++ binding to atf-c++ for consistency with the new atf-c. 300e2207522Sjmmv 301e2207522Sjmmv* Renamed the POSIX shell binding to atf-sh for consistency with the new 302e2207522Sjmmv atf-c and atf-c++. 303e2207522Sjmmv 30412aa0b5aSjmmv* Added a -w flag to test programs through which it is possible to 30512aa0b5aSjmmv specify the work directory to be used. This was possible in prior 306edebbb8eSjmmv releases by defining the workdir configuration variable (-v workdir=...), 307edebbb8eSjmmv but was a conceptually incorrect mechanism. 308e2207522Sjmmv 309e2207522Sjmmv* Test programs now preserve the execution order of test cases when they 310e2207522Sjmmv are given in the command line. Even those mentioned more than once are 311e2207522Sjmmv executed multiple times to comply with the user's requests. 312e2207522Sjmmv 313edebbb8eSjmmv 31412aa0b5aSjmmvChanges in version 0.4 315edebbb8eSjmmv********************** 316e2207522Sjmmv 31712aa0b5aSjmmvExperimental version released on February 4th, 2008. 318e2207522Sjmmv 319e2207522Sjmmv* Added two new manual pages, atf-c++-api and atf-sh-api, describing the 320e2207522Sjmmv C++ and POSIX shell interfaces used to write test programs. 321e2207522Sjmmv 322e2207522Sjmmv* Added a pkg-config file, useful to get the flags to build against the 323e2207522Sjmmv C++ library or to easily detect the presence of ATF. 324e2207522Sjmmv 325e2207522Sjmmv* Added a way for test cases to require a specific architecture and/or 326e2207522Sjmmv machine type through the new 'require.arch' and 'require.machine' 327e2207522Sjmmv meta-data properties, respectively. 328e2207522Sjmmv 32912aa0b5aSjmmv* Added the 'timeout' property to test cases, useful to set an 33012aa0b5aSjmmv upper-bound limit for the test's run time and thus prevent global test 33112aa0b5aSjmmv program stalls due to the test case's misbehavior. 332e2207522Sjmmv 33312aa0b5aSjmmv* Added the atf-exec(1) internal utility, used to execute a command 33412aa0b5aSjmmv after changing the process group it belongs to. 335e2207522Sjmmv 336e2207522Sjmmv* Added the atf-killpg(1) internal utility, used to kill process groups. 337e2207522Sjmmv 33812aa0b5aSjmmv* Multiple portability fixes. Of special interest, full support for 339edebbb8eSjmmv SunOS (Solaris Express Developer Edition 2007/09) using the Sun Studio 12 340edebbb8eSjmmv C++ compiler. 341e2207522Sjmmv 34212aa0b5aSjmmv* Fixed a serious bug that prevented atf-run(1) from working at all 34312aa0b5aSjmmv under Fedora 8 x86_64. Due to the nature of the bug, other platforms 34412aa0b5aSjmmv were likely affected too. 345e2207522Sjmmv 346edebbb8eSjmmv 34712aa0b5aSjmmvChanges in version 0.3 348edebbb8eSjmmv********************** 349e2207522Sjmmv 35012aa0b5aSjmmvExperimental version released on November 11th, 2007. 351e2207522Sjmmv 35212aa0b5aSjmmv* Added XML output support to atf-report. This is accompanied by a DTD 353edebbb8eSjmmv for the format's structure and sample XSLT/CSS files to post-process this 354edebbb8eSjmmv output and convert it to a plain HTML report. 355e2207522Sjmmv 356e2207522Sjmmv* Changed atf-run to add system information to the report it generates. 357e2207522Sjmmv This is currently used by atf-report's XML output only, and is later 358edebbb8eSjmmv printed in the HTML reports in a nice and useful summary table. The user 359edebbb8eSjmmv and system administrator are allowed to tune this feature by means of 360edebbb8eSjmmv hooks. 361e2207522Sjmmv 36212aa0b5aSjmmv* Removed the test cases' 'isolated' property. This was intended to 363edebbb8eSjmmv avoid touching the file system at all when running the related test case, 364edebbb8eSjmmv but this has not been true for a long while: some control files are 365edebbb8eSjmmv unconditionally required for several purposes, and we cannot easily get 366edebbb8eSjmmv rid of them. This way we remove several critical and delicate pieces of 367edebbb8eSjmmv code. 368e2207522Sjmmv 369e2207522Sjmmv* Improved atf-report's CSV output format to include information about 370e2207522Sjmmv test programs too. 371e2207522Sjmmv 372e2207522Sjmmv* Fixed the tests that used atf-compile to not require this tool as a 373e2207522Sjmmv helper. Avoids systems without build-time utilities to skip many tests 374e2207522Sjmmv that could otherwise be run. (E.g. NetBSD without the comp.tgz set 375e2207522Sjmmv installed.) 376e2207522Sjmmv 377e2207522Sjmmv* Many general cleanups: Fixed many pieces of code marked as ugly and/or 378e2207522Sjmmv incomplete. 379e2207522Sjmmv 380edebbb8eSjmmv 38112aa0b5aSjmmvChanges in version 0.2 382edebbb8eSjmmv********************** 383e2207522Sjmmv 38412aa0b5aSjmmvExperimental version released on September 20th, 2007. 385e2207522Sjmmv 386e2207522Sjmmv* Test cases now get a known umask on entry. 387e2207522Sjmmv 388edebbb8eSjmmv* atf-run now detects many unexpected failures caused by test programs and 389edebbb8eSjmmv reports them as bogus tests. atf-report is able to handle these new 390edebbb8eSjmmv errors and nicely reports them to the user. 391e2207522Sjmmv 39212aa0b5aSjmmv* All the data formats read and written by the tools have been 393edebbb8eSjmmv documented and cleaned up. These include those grammars that define how 394edebbb8eSjmmv the different components communicate with each other as well as the 395edebbb8eSjmmv format of files written by the developers and users: the Atffiles and the 396edebbb8eSjmmv configuration files. 397e2207522Sjmmv 39812aa0b5aSjmmv* Added the atf-version tool, a utility that displays information about 39912aa0b5aSjmmv the currently installed version of ATF. 400e2207522Sjmmv 401e2207522Sjmmv* Test cases can now define an optional cleanup routine to undo their 402e2207522Sjmmv actions regardless of their exit status. 403e2207522Sjmmv 40412aa0b5aSjmmv* atf-report now summarizes the list of failed (bogus) test programs 40512aa0b5aSjmmv when using the ticker output format. 406e2207522Sjmmv 407e2207522Sjmmv* Test programs now capture some termination signals and clean up any 408e2207522Sjmmv temporary files before exiting the program. 409e2207522Sjmmv 410e2207522Sjmmv* Multiple bug fixes and improvements all around. 411e2207522Sjmmv 412edebbb8eSjmmv 41312aa0b5aSjmmvChanges in version 0.1 414edebbb8eSjmmv********************** 415e2207522Sjmmv 41612aa0b5aSjmmvExperimental version released on August 20th, 2007. 417e2207522Sjmmv 418e2207522Sjmmv* First public version. This was released coinciding with the end of the 419e2207522Sjmmv Google Summer of Code 2007 program. 420edebbb8eSjmmv 421edebbb8eSjmmv 422edebbb8eSjmmv=========================================================================== 423edebbb8eSjmmvvim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2 424