-*- mode: text; mode: fold -*-
Changes since 2.3.1a
1. modules/stats_kendall.c: Updated to use Knight's O(NlogN)
   algorithm.  This update was facilitating by separating out some
   integer typedefs from _slang.h and placing them in _slint.h.  The
   closely relation mann_kendall function was also added to the stats
   module.
2. modules/stats_kendall.c: In the prtaus function, the loops were
   reorganized loops to eliminate embedded if-tests, and the code that
   deals with arrays were made for "C-like".
3. Merged Manfred Hanke's CSV module documentation updates.
4. slsh/lib/cmdopt.sl: The form -fVAL was not working as described for
   short-options whose value (VAL) is optional.
5. src/sl*.h: Updated Unicode tables from version 5 to 9
6. src/slischar.h: Previously, if a lower(upper) case character did
   not have a mapping to an upper(lower) case character, it was take
   to not have a case.  This restriction has been dropped.  In other
   words, it is nolonger necessary for an upper(lower) case character
   to have a lower(upper) case equivalent.
7. src/slpack.c: Added an intrinsic function (_array_byteswap) that
   may be used to convert the values of an array from one endianness
   to another.
8. src/slparse.c: It is now possible to use reserved words as struct
   field names without quoting them.  For example, it is now possible
   to write
              s = struct { public = value };
   Previously, this required the field name to be quoted:
              s = struct { "public" = value };

9. modules/json-module.c: Malformed UTF-8 was not being properly
   handled by the json-encoder.
10. modules/csv-module.c: The decode_csv_row function was ignoring the
    delimiter setting after a quoted string.
11. src/slparse.c: A for statement lacking a conditional expression
    was not being properly handled (noticed by rocket penguin).
12. src/struct.c: Rewrote the __add_binary function, which was not
    properly handling multiple data types.
13. changes.txt: Converted to UTF-8 (Miroslav Lichvar)
14. src/slscanf.c: The sscanf function was not parsing ".0" as a
    floating poing number (zero).
15. The library was failing to compile when __tmp operator
    optimizations were turned off.  The default is to permit such
    optimizations since they can lead to faster running code and less
    memory usage.  Bug reported by Henry.
16. src/slsh.c: Updated copyright year.
17. INSTALL.unx: Corrected the URL for the ONIGURUMA regexp library; added
    a small note that PCRE2 is not supported (Henry Nelson).
18. modules/csv-module.c: If the delimiter or quote character is
    specified to be 0, then use the defaults (, and ").
19. src/sltermin.c: Added support for the new ncurses 32-bit terminfo
    database entries.
20. autoconf/aclocal.m4,src/Makefile.in: Install shared objects
    (modules and library) with executable permissions.
21. src/sl*.h: Updated Unicode tables from version 9 to 10
22. src/sltermin.c: Corrected a few typos in the comments (Manfred
    Hanke).
23. Updated Copyright year to 2018
24. doc updates
25. src/sltermin.c: removed unnecessary "extern" function attribute.
26. src/test/syntax.sl: The version number test required the use of
    isalpha and not isascii.

{{{ Previous Versions

Changes since 2.3.1
a. Some tests were failing when compiled with a compiler that defaults
   to using `unsigned char'.  In the few places where a `signed char'
   was assumed, `char' was changed to `signed char'.  Also, a
   copy-paste error was corrected in the src/test/sltest.c that caused
   the test program to fail on big-endian 64 bit systems.

Changes since 2.3.0
1. modules/json-module.c: Fix a possible uninitialized variable error.
2. Define _BSD_SOURCE the few places necessary to get prototypes for
   strtoll and BSD specific network struct fields.
3. src/slstd.c: define _SVID_SOURCE to get prototype for putenv
4. modules/Makefile.in: On cygwin, the libraries must be placed last
   for module compilation (Marco Atzeri).
5. src/slstrops.c: The return value from pop_lut was not being
   checked leading to a segv upon faiure (reported by Morten Bo
   Johansen).
6. slsh/lib/slshrl.sl: Floating point literals with a leading '.' were
   not being properly handled by slsh_interactive_massage_hook
   (Manfred Hanke).
7. src/slarrfun.c: Added wherefirst/last_eq/ne/gt/lt/ge/le functions,
   which are much faster than using just wherefirst or wherefast with
   the implied binary comparison.  For example:

     slsh> .load rand
     slsh> x = rand_uniform (100000);
     slsh> tic; loop (1000) i=wherefirst(x>=0.999); toc; i;
     0.597183
     268
     slsh> tic; loop (1000) i=wherefirst_ge(x,0.999); toc; i;
     0.0024419999999999997
     268

   For this case, the speedup about 0.60/0.0024 = 250.
8. Rebuilt text documentation for change #7.
9. Documentation updates (Manfred Hanke).
10. src/slarrfun.inc: use a macro for the common case statements of
    the wherefirst_op and wherelast_op code. (Manfred Hanke)
11. modules/stats.sl: Added Anderson-Darling tests:

       ad_test:   test for normality
       ad_ktest:  k-sample test

    I also broke out some of the statistical tests into separate files.
12. Tweaked the makefiles to create a statically-linked version of
    slsh when `make static` and `make install-static` are run.
13. For the static slsh build, disable dynamic linking.
14. src/slstdio.c:fread_bytes: A size_t vs unsigned int issue was
    causing SLmalloc to be called with an incorrect size in some cases.
15. src/slbstr.c: Made the size of the printable representation of
    binary strings customizable via get/set_printable_bstring_size
    intrinsics.
16. slsh/slsh.c: A missing continue statement was causing slsh to stop
    parsing command line options after the first occurrence of -D.
17. src/slang.h: Remove duplicate prototype for
    SLrline_get_update_client_data. (Valdis Kletnieks)
18. src/slposdir.c: Add statvfs intrinsic that wraps corresponding
    POSIX function.
19. modules/Makefile.in, png-module.c: Cygwin tweaks
    (Marco Atzeri).
20. */*.c: Added explicit (unsigned char) typecast to isspace/isdigit
    functions.
21. */*.c: reduced the scope of some variables; removed duplicate ||
    expression from slarray.c (David Binderman)
22. src/slarray.c: The Kahan error corrections were not be added back
    when summing complex arrays.
23. slsh/lib/listfuns.sl: Corrected the usage method for heap_new().
24. Found and corrected a few memory leaks that occur after a malloc
    failure; added some more unit tests
25. Added more regression tests and bug fixes:

     slscanf.c: %i was failing for Octal and Hex forms
     slbstr.c: <, and > operators were swapped for binary strings
     histogram-module.c: A missing 'break' statement was causing hist2d
       to fail when binning 8 bit integers.

26. src/slposdir.c: If an fdopen'd FILE* object was closed, then do
    not close the underlying fd descriptor; added more regression/unit
    tests.
27. modules/test/test_stats.sl: Do not use 64 bit ints when testing
    the mean and stddev functions on 32 bit systems since these
    integers are not supported by the functions.
28. modules/stats-module.inc: Some arrays were causing median_nc to
    not converge.
29. src/slscanf.c: Allow whitespace in the format to match 0
    whitespace characters in the input string.
30. src/slproc.c: define _XOPEN_SOURCE to be 500
31. src/slproc.c: #30 caused a compilation error on macos since it
    caused certain rusage fields to not be exposed.  Define
    _BSD_SOURCE to expose them.
32. src/slerr.c: Add a windows error handler so that windows will
    return an error code instead of aborting when passed a bad file
    descriptor, etc.
33. src/slproc.c: Use _XOPEN_SOURCE=1 instead of 500.  This setting
    works for both OSX and Windows.  (See #30,31)
34. src/slcurses.h: SLtt_Char_Type and SLcurses_Char_Type were being
    used interchangably.
35. src/sldisply.c: Added support for 24 bit color terminals based
    upon a patch from Egmont Koblinger forwarded to me by Anton Kochkov.
    See NEWS for usage.  (for 64 bit systems)
36. src/slposio.c: Rename the posix_close function to avoid conflict
    with an upcoming POSIX standard. (patch provided by Thomas
    Petazzoni).
37. slposio.c,slstdio.c,slposdir.c: Do not include <sys/fcntl.h> if
    <fcntl.h> was included. (variation on a patch provided by Thomas
    Petazzoni).
38. slsh/: Move processing of the SLSH_PATH environment variable to
    slsh.rc.  Also, guess the slsh lib path based upon the location of
    the executable.
39. modules/onig-module.c: Only allow certain flags for onig_search.
    Others cause onig_search to reinterpret the meaning of the region
    argument.
40. slsh/etc/slsh.rc: Add support for multiple paths to the
    *_to_slang_load_path functions.
41. src/slscanf.c: The formats %x and %o were producing a signed values instead
    of an unsigned ones.
42. src/slconfig.h,...: Added longlong functions to win32, use
    "%I64d/u" format when printing long long on win32.
43. src/slcurses.c: Changed the data type of SLcurses_Char_Type back
    to long[128] (change #34 broke backward compatibility)
44. src/slstruct.c: Optional argument to _push_struct_field_values may
    be used to specify the fields to be pushed.
45. src/sllimits.h: Bumped up the size of the slsring table.  A future
    version will dynamically resize the table.
46. src/slstd.c,slstrops.c: Improve the speed of sprintf by reducing
    the number of reallocs and special casing strings in the
    _pSLstring_intrinsic function.
47. modules/cvs.sl: Reading a CSV file from an open file descriptor
    (e.g., stdin) was failing.  The updated regression test also
    exposed a side effect of change #38: the uninstalled version of
    slsh.rc lacks processing of SLSH_PATH.  Processing of SLSH_PATH
    was added to the test.sl include file.
48. src/slregexp.c: The RE \d? was not handled properly.
49. src/slmisc.c: Catch empty hex \x and decimal \d escape sequences.
50. autoconf/Makefile.in: Add install-pkgconfig to the install-static
    target. (Max Filippov).
51. src/test/signal.sl: Skip the sigsuspend test when running from
    make.  The test involves the user pressing ^C, which kills the
    make process.  This test should be run outside of make.
52. src/slmisc.c: Corrected a typo in the error message introduced in
    change #49 (Manfred Hanke).
53. src/sltime.c: Added _ftime, which returns the number of
    (wallclock) seconds since an epoch.
54. Changes the array allocation routines to use a signed integer
    (SLindex_Type) vs an unsigned one (SLuindex_Type).  The reason for
    this is that all slang arrays may be indexed from the end using a
    negative index, and multidemsional arrays must allow indexing
    using a single signed index, e.g.,

          a = Int_Type[10,20]; ...;  a[where(a<0)] = 0;
55. src/sltime.c: Fixed a windows compile error involving _ftime
    (see change #53).
56. src/slnspace.c,...: Check for malformed namepace names.
57. doc/tm/: Documentation updates (Agathoklis D. Chatzimanikas)
58. slsh/slsh.c: Added __slsh_startup_hook function that slsh will
    call after loading slsh.rc.
59. modules/: Updated the png and pcre modules, and added new test
    scripts.  Added support for setting the compression value to the
    png module, and added additional symbolic constants to the pcre
    module.
60. slsh/lib/test/: Have `make check` run the test scripts in this
    directory.
61. modules/csv-module.c: Added line number information to error
    messages.
62. src/test/: Updated some tests
63. src/sltoken.c: bug fix affecting reading byte-compiled files: Use
    SLatoul for unsigned longs instead of atol; remove alignment test
    from pack.sl until a new test can be devised.
64. Added support for compiling against slsyswrap testing library.
    It is disabled for production code.
65. Bug fixes:

      src/slarrfun.c: SLang_duplicate_array return value not checked;
      src/slstdio.c: SLfree was used in an error handler instead of
       SLang_free_slstring
      src/slposio.c: If EINTR happens in the close function, do not
       restart it.  See <http://lwn.net/Articles/576478/>.
      src/sltoken.c: Use unsigned char * cast for SLatol functions.

66. src/slmisc.c: \uABCD supported in string literals.  Previously,
    braces were required (\u{ABCD}).
67. Updated many of the unit tests/regression scripts.
68. Updated more tests.  Made use of the _slang.h LONG_IS_INT macro to
    eliminate some unused functions on systems where
    sizeof(long)==sizeof(int).
69. modules/slsmg-module.c: was not compiling on windows; fixed a
    malformed comment in src/test/sltest.c.
70. Added "#define _DEFAULT_SOURCE" to a few places to quiet gcc;
    Added slsyswrap support to src/slposdir.c,slposio.c,slcommon.c
71. src/slexcept.c: The deprecated _clear_error function using in
    ERROR_BLOCKs was not completely removing queued error messages.
    Note: ERROR_BLOCKs will be removed in version 3.
72. src/slregexp.c: Added "\{m,n\}" support to '\1'-'\9', '.', and
    '\d' REs.  '$' changed to match only at the end of a string, or
    just before a \n at the end of the string.  Updated regexp.sl test.
73. src/slang.c: The delete_interpreter function (called upon program
    exit) was not freeing local variables on the function call stack.  This
    showed up as a memory leak when a function called "exit", which
    would not allow the function stack to unroll and trigger the
    destructors.
74. src/*.c: Added a few gcc #pragmas to turn off warnings about
    non-string literals as printf-style formats.
75. src/*.c, modules/*.c: If close fails with errno=EINTR, do not restart
    it.  Doing so invokes undefined behavior.
76. src/slerr.c: Add _pSLerr_deinit to the exit hook.
77. src/slarray.c,src/slclass.c,src/slstruct.c: Use the SLclass_set*
    functions to set SLang_Class_Type fields instead of directly
    accessing them.
78. Added additional unit/regresssion tests.
79. Makefiles: Add a time-stamp dependency to directory targets to
    avoid race conditions when running parallel make (Based upon a
    patch from Kylie McClain).
80. src/Makefile.in: Updated the libslang.a dependency to account for
    change #79.
81. tweaked a few files (modules/png-module.c,src/slarith.inc,src/slimport.c)
    to reduce gcc warnings.
82. modules/test/test_slsmg.sl: Test skipped if the terminal type is
    "unknown".
83. Updated copyright years; some doc updates
84. src/sldisply.c: make JMAX_COLORS consistent with SLTT_MAX_COLORS.
85. src/slstrops.c: Added string_to_wchars and wchars_to_string
    intrinsic functions.
86. Moved gcc diagnosic pragmas outside function bodies for
    compatibility with old versions of gcc.
87. src/slwclut.c: Unclosed ranges (hyphen at the end of a character
    set specification string) were not being handled properly: the
    character befor the hyphen was being dropped, e.g.,

      strcompress ("foo-(bar)", "_()-");

    was producing "foo_bar)" instead of "foo_bar".
88. src/sllimits.h: Reduce SLANG_MAX_RECURSIVE_DEPTH to 500 on
    CYGWIN/WIN32 to avoid hitting the default runtime stacklimit.
89. Updates to the mingw32/64 build system.
90. src/sltermin.c: Avoid invalid free when TERMCAP is used.  See
    <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837868>.
91. Some documentation typos corrected (Agathoklis D. Hatzimanikas;
    debian patches)
92. src/_slang.h: On at least one platform, clang defines GNUC but
    does not implement GNU C inline semantics.  Disble inline support
    for clang if GNUC defined.
93. src/sllimits.h: SLANG_MAX_RECURSIVE_DEPTH set to 1500 to decrease
    the probability of running into the C runtime stacksize limit.
94. src/test/sltest.c: A missing preprocessor #else block in change
    #78 was causing UTF-8 tests to fail in a non-UTF8 environment.
95. MacOSX changes: fix environ intrinsic, export DYLD_LIBRARY env
    variable in test scripts.
96. slsh/lib/process.sl: If execvp fails, include the name of the executable
    in the error message.
97. autoconf/config.*: Updated scripts
98. .../runtests.sh: Added LD_LIBRARY_PATH to test scripts (removed in
    #96)
99. mkfiles/makefile.m32: Use mkfiles\runslsh.bat instead of
    mkfiles/runslsh.bat (Windows only).
100. documentation updates


Changes since 2.2.4
1. src/slarray.c: Try to find a suitable multiplier for range arrays
   to avoid roundoff errors.  Using the multiplier avoids the
   [1:10:0.001] from having the element 1.1260000000000001.
2. doc/tm/rtl/strops.tm: Correct typos in string_match documentation
   (Manfred Hanke).
3. modules/base64-module.c: Added a base64 encoder module.
4. modules/chksum-module.c: A module to compute md5, sha1, etc
   checksums.
5. Removed a few unused variables from the code.
6. Documentation updates and corrections by Agathoklis D. Hatzimanikas.
7. src/slarray.c: array_map enhanced to handle functions that return
   multiple values (based upon a patch from Manfred Hanke).
8. Documentation tweaks (Manfred Hanke).
9. src/slmath.c: Added sincos intrinsic (Manfred Hanke)
10. doc/tm/rtl/array.tm: Changed an example used in the array_map
    documentation.
11. More documentation updates/corrections (Agathoklis D. Hatzimanikas).
12. src/slarray.c: Tweaked the code that computes the
    array-range-multiplier to avoid agressive optimization by the
    compiler.
13. modules/rand.sl: The rand_int function was not working correctly
    (Thomas Dauser).
14. modules/test/test_rand.sl: Added a simple statistical test for
    rand_int (based upon an idea by Thomas Dauser).
15. modules/test/test_rand.sl: Corrected a typo introduced by #14.
16. src/slarray.c: #12 introduced a truncation error for some
    values involving the range multiplier.
17. autoconf/aclocal.m4: Change ncurses5w-config to ncursesw5-config
    (Gilles Espinasse).
18. modules/base64-module.c: Added decoder.
19. slsh/lib/sldbcore.sl: Only run the debugger from the pid that
    started it.  This avoids problems debugging scripts that call fork.
20. src/slrline.c: SLrline_read_line will return NULL if getkey
    returns SLANG_GETKEY_ERROR.
21. doc/tm/rtl/*.tm: A few typos corrected (Manfred Hanke).
22. slsh/lib/print.sl; print binary strings differently from regular
    ones (Manfred Hanke).
23. slsh/lib/print.sl: I introduced a typo in #21 (Pablo Cassatella).
24. src/slutty.c: if the flow control parameter to the SLang_init_tty
    argument is negative, the terminal's flow control handling will
    not be changed.
25. src/slrline.c: Ammend #20 to return NULL if errno != EINTR.
26. src/sldisply.c: Changed Termcap_Initalized -> Termcap_Initialized
27. src/slarray.c: avoid an expensive memcpy when doing
    an aget via an index array on a (b)string.  (Paul Boekholt).
28. slsh/scripts/badlinks: Updated to use array_map and cmdopt
    (Agathoklis D. Hatzimanikas).
29. Some minor documentation tweaks (Agathoklis D. Hatzimanikas)
30. More doc tweaks (Agathoklis D. Hatzimanikas)
31. src/slposio.c: lseek was not working properly.
32. slsh/scripts/badlinks: Changed from GPLv3 to GPLv2 with permission
    from Agathoklis Hatzimanikas.
33. src/slscanf.c: Call strtod in a locale where the decimal point is
    ".".  This works around problems associated with modules that
    change the locale.
34. src/slscanf.c: include <xlocale.h> if available.
35. src/slscanf.c: Avoid the use of setlocale and simply copy the
    locale's decimal point before calling strtod (Paul Boekholt).
36. modules/socket-module.c: NULL was being returned when accept was
    called with a single argument (Fixes bug reported by Arik
    Mitschang).
37. src/slwclut.c: A logic error was causing strtrans to function
    improperly for some UTF-8 encoded strings.
38. src/fork-module.c: If WCONTINUED is not defined, define it to be 0
    (from debian patch).
39. src/slbstr.c: Added support for an optional offset parameter to
    is_substrbytes.
40. modules/csv.sl: Allow the "names" qualifier to be a list in
    addition to an array.
41. *.c/*.h: provide a path for a future change in the
    return value of the malloc/free functions.  Now they process char*
    pointers but this will be changed to void* in the future.
42. modules/: Merged stats and histogram modules into the distribution.
43. modules/stats-module.c: removed a couple of unused variables.
    Also modules/test/test_*.sl updated to use modules in the $(ARCH)objs
    subdir.
44. src/slang.c: Local_Variable_Stack is now dynamically allocated,
    and the value of SLANG_MAX_LOCAL_STACK made to scale with
    SLANG_MAX_RECURSIVE_DEPTH.
45. modules/cmaps/: Added 3 perceptually balanced color maps derived
    from matlab code by Matteo Niccoli under the BSD license.
46. src/slmath.c: Use _pSLang_peek_at_stack2 instead of the combination
    SLang_peek_at_stack and SLang_peek_at_stack1.  This change
    provides a bit more performnce.
47. slsh/lib/fswalk.sl: Functions here facilitate walking the
    filesystem.
48. Some doc updates.
49. slsh/: Using help at the prompt will invoke the pager if the
    number of lines is longer than the screen size.  This required add
    an slsh-specific intrinsic that returns the number of rows.
50. modules/stats.sl: Avoid integer overflow when computing Spearman's
    rank correlation (Victoria Grinberg).
51. modules/csv.sl; Added support for RDB tab-delimited files via the
    ";rdb" qualifier.
52. modules/stats-module.c: The stddev function was computing an
    incorrectly normalized value when passed the optional dims argument.
53. src/slang.h: The following qualifier functions were added to the
    public API:

       SLang_qualifier_exists;
       SLang_get_int_qualifier;
       SLang_get_long_qualifier;
       SLang_get_double_qualifier;
       SLang_get_string_qualifier;

    These functions may be used to create intrinsic functions that use
    qualifiers.
54. The previous change necessitated a minor change in the qualifier
    semantics such that qualifiers that are created with no value
    assigned are implicitly given a value of 1.  That is, foo(arg;q)
    and foo(arg;q=1) are now equivalent forms.  Previously, foo(arg;q)
    and foo(and;q=NULL) were equivalent.  Experience has shown that
    the new semantics result in simpler code.  This change should not
    break any existing interpreter scripts.
55. Backed out change #54 because it did break some scripts.
56. src/util/mkslarith2.sl: Used "signed char" instead of "char" to
    avoid problems with systems that assume unsigned characters.
    (RongQing Li).
57. modules/socket-module.c: Added support for socket credentials
    (Arik Mitschang).
58. src/signal.c: Added support for interval timers via the
    get/setitimer functions.
59. src/test/signal.sl: Missing #endif (Paul Boekholt)
60. autoconf/slang.pc: Allow prefix and exec_prefix to be different
    (Diab Jerius).
61. src/sltoken.c: Use an unsigned cast when calling putc to
    work-around what looks like a VMS C library bug bug.
62. src/slarrfun.c: Added wherefirstmin/max and wherelastmin/max
    functions.
63. src/slarrfun.inc: Removed an unused variable from the
    wherefirst/last/min/max functions.
64. src/slcommon.c: find_interrupt_hook was not setting the prevp
    variable causing some hooks to become lost during calls to
    SLang_remove_interrupt_hook.
65. src/slrline.c,slsh/readline.c: Added support for SLrline
    callbacks.  See the slsh docs for details.
66. src/slarray.c: Added wherediff intrinsic.  This returns an array
    of indices where adjacent elements of an array differ.
67. modules/stats-module.c: Rewrote the log_gamma_star function to
    avoid double precision overflows when computing the poisson_cdf
    function for large values.  Also, the poisson_cdf function now
    uses the Wilson and Hilferty normal approximation for values of
    lambda greater than 1000.
68. src/slrline.c: Use the SLang_set_error function instead of
    manipulating the _pSLang_Error variable.  Also, changed the readline
    "kbd_quit" function to throw a UserBreakError.
69. src/mkfiles/mkmake.exe: Compiled as a win32 executable.  The old
    16bit DOS version was renamed to mkmake16.exe.
70. slsh/readline.c: Change #65 broke the slsh --no-readline option.
71. mkfiles/: Added the /y option to the DOS copy command to avoid
    being prompted to overwriting files when installing on a windows
    system.
72. win32-specific changes: Additional makefile tweaks.  Also, permit
    "./foo" to represent a "relatively-absolute" filename on
    DOS/Windows.
73. modules/stats.sl: Added the correlation function.
74. src/slarray.c: _isnull was not handling Null_Type arrays.
75. src/slparse.c: If the _for statement contains two control
    variables instead of 3, assume the third is 1.
76. modules/fork-module.c: The execve_intrin was not functioning
    properly (Agathoklis D. Hatzimanikas).
77. slsh/readline.c: Check to see if an update_hook has been set
    before adding callbacks to it.
78. modules/csv.sl: Add support for empty field names.
79. slsh/lib/slshrl.sl: Added "who" interactive command that shows the
    names and values of all variables/functions defined at the prompt:

      slsh> x = 1; y = "foo";
      slsh> who;
      Integer_Type x=1
      String_Type y="foo"

80. slsh/lib/print.sl: If the string form of the object ends in a
    newline, do not write another.
81. modules/stats.sl: The usage message for Welch's t-test referred to
    Student's form.
82. slsh/lib/sldbcore.sl: When entering the debugger_input_loop,
    initialize the SIGINT handler.
83. slsh/lib/arrayfuns.sl: New function: rearrange, which may be used
    to perform an in-place rearrangement of an array or list.
84. slsh/lib/listfuns.sl: New file that includes various functions
    dealing with lists and list-based data structures.  Currently this
    includes list_sort and a heap object.
85. slsh/lib/listfuns.sl: heap_peek was improperly declared.
86. Numerous changes from int -> SLindex_Type.  Note that SLindex_Type
    is currently typedefed to be an int.  For version 3, SLindex_Type
    will become a long.  This change lays some of that groundwork.
    Similarly, I added SLFUTURE_CONST here and there.  Neither of
    these changes break binary compatibility nor affect the API.
87. src/slarrfun.c: The prod function for complex numbers had a sign
    error.
88. modules/csv.sl: Modify fixup_header_names to work with scalars.
89. modules/json-module.c: New module provided by Manfred Hanke.  To
    support this module several other changes were made including some
    additions to the API.
90. Initial support for 64-bit windows: Use ptrdiff_t instead of long
    when subtracting pointers.  Also json-module added to windows
    makefiles.
91. modules/rand.sl: rand_int was not properly handing intervals
    larger than INT_MAX.
92. src/slbstr.c: Added bstrjoin and bstrcat intrinsics.
93. modules/json-module: Modified to use bstrcat.  The
    json_generate/json_parse functions were renamed to
    json_encode/json_decode.
94. configure: added support for parsing /etc/ld.so.conf
95. modules/json.sl: Use bstrcat throughout json_encode; additional
    renames: generate->encode, parse->decode. (Manfred Hanke).
96. src/sllist.c: To decrease memory usages by lists, a size hint may
    be specified upon list creation.
97. Allow struct field names to be an arbitrary string.  When
    referencing such a field, quotes must be used:

         X = struct {"some-field", some_other_field };
	 X.some_other_field = 3;
	 X."some-field" = 4;

   New struct-related functions were added to the C API:

     SLang_create_struct
     SLang_push_struct_field
     SLang_pop_struct_field
     SLang_pop_struct_fields

98. Changed the json module to use structs instead of associative
    arrays.  (Paul Boekholt).
99. src/slassoc.c: Add C API SLang_assoc_key_exists (Paul Boekholt).
100. src/slang.c: Add SLstack_exch and tweak the json module to use it.
101. src/slang.h: Made the SLcompute_string_hash function public and
     rewrote the hash table function in the json module to use it.
102. json-module: Doc updates, use compact encoding by default
     (Manfred Hanke).
103. src/slstd.c: Added get_environ intrinsic, which returns an array of
     the currently defined environment variables.
104. src/slang.c: Fixed a small memory leak introduced by the byte-code
     optimizer when dealing with floating point literals.
105. src/slang.c: The changes added in #104 were a bit too aggressive.
     I added code so that only literals get freed.
106. src/slstd.c: OSX has no proper environ, need to use a function
     call. (Dima Pasechnik).
107. src/sldisply.c: Added support for an italic attribute if the
     terminal supports it.  This can be enabled using a color name
     with a qualifier, e.g.,

         SLtt_set_color ("menu", "white;italics", "blue");

     This mechanism has also been extended to other attributes:

        SLtt_set_color ("comment", "black;underline;italics", "cyan");

     (Based upon a patch provided by Egmont Koblinger).

108. *.tm: Documentation updates and corrections. (Agathoklis D.
     Hatzimanikas)
109. modules/csv-module.c: The store_value function was not updating
     the num_allocated variable when resizing the value array.  This
     caused it to fail when reading a CSV table with more than 256
     data columns.
110. modules/csv.sl: Since S-Lang structure field names may be
     arbitrary strings, there is no need to massage the csv column
     names. (See change 97).
111. modules/iconv-module.c: If the iconv descriptor has been closed,
     then do not close it again in the iconv object destructor
112. src/slproc.c: Added getrusage function to get process resource
     usage.
113. modules/png-module.c: Only the first 1/4 pixels of an RGB+alpha
     image were getting byte-swapped. (RGB images were ok).
114. configure,*/Makefile.in: rearranged the compiler command so that
     include flags occur before CFLAGS.  This is a protective measure
     designed to avoid issues when the CFLAGS variable also contains an
     include path.
115. slsh/lib/process.sl: Added support to the pre_exec_hook callback
     function for an optional argument.
116. Change 107 introduced a cut/paste error that prevented the
     background color on Windows systems from being properly parsed.
     (Reported by Frank and Manfred from jed-users).
117. src/sldisply.c: SLSMG_COLOR_BRIGHT_MAGENTA and
     SLSMG_COLOR_BRIGHT_CYAN were swapped (patch provided by Thorben
     from slang-users list).
118. Updated copyright year for upcoming release.
119. src/slposdir.c: Added lchown intrinsic.
120. src/slang.h, src/slpath.c: Added API function SLpath_getcwd
121. src/slsh.c: Use SLpath_getcwd instead of "." for CWD.
122. src/slpath.c: Added support for \\netdrive\paths for Windows, and
     modified SLpath_dirname (path_dirname intrinsic) to perform some
     expansion of .. and . in path names (e.g.,
     path_dirname("/foo/../bar") will produce "/" instead of
     "/foo/..").

     The old bahavior was consident with that of the Unix
     dirname command:
        $ dirname `dirname /usr/bin/./slsh`
	/usr/bin

     The new behavior produces an arguably more accurate result:
        slsh> path_dirname(path_dirname("/usr/bin/./slsh"));
	/usr

123. slsh/scripts/badlinks updated to use the fswalk functions
     (Agathoklis D. Hatzimanikas).
124. Various documentation updates/corrections (Agathoklis D.
     Hatzimanikas).
125. slsh/slsh.c: bumped copyright year.
126. src/slconfig.h: For non-Unix, HAVE_LSTAT and HAVE_LCHOWN were
     defined to be 0 instead of undef'd.  Also, removed an unused
     function from slposdir.c and a shadowed variable from slpath.c
127. documentation updates (Manfred Hanke)
128. modules/test/: Additional json-modules tests (Manfred Hanke)
129. src/slarray.c: Allow functions called by array_map to return
     NULL. (Manfred Hanke)
130. src/slang.c: Fixed a bug in the short-circuiting of non-boolean
     expressions.
131. Updated the NEWS file for release.
132. documentation updates
133. autoconf/: Updated configure scripts
134. src/mkfiles/mkmake.c: Add definitions for SLmalloc/free so that
     mkmake can be built without the full slang library.

Changes since 2.2.3
1. src/slpack.c: Typo affecting 64 bit integers ('q' & 'Q') (Paul
   Boekholt).
2. src/Makefile.in: Make libslang.so a symlink to libslang.so.2
   instead of libslang.so.2.2.4 (Miroslav Lichvar)
3. modules/Makefile.in: Cygwin needs ELFDIR defined (Marco Atzeri).
4. src/slutty.c: Added additional baud rate values (Sergey Vlasov)
5. autoconf/configure.ac: Check for socket and socketpair in -lsocket
   if it is not in libc.
6. *.tm, src/slstrops.c, src/slbstr.c: Changed occurances to
   occurrences (Marcel Telka).
7. src/slparse.c: Increment the _boseos_info value for qualifier
   expressions.
8. src/sltoken.c,slparse.c: The semantics of the _boseos_info variable
   changed such that bos/eos callbacks are not generated for
   preprocessor #ifeval statements unless bit 0x100 is set.
9. slsh/scripts/slstkchk: a new script used for running the
   stack-check debugger.
10. documentation updates/tweaks (Manfred Hanke).
11. slsh/lib/rline/histsrch.sl: When building history search
    completions, use most recent history first.
12. src/slarray.c: Detect integer overflows for multi-dimensional
    arrays.
13. Updated year from 2010 to 2011
14. src/slcommon.c: Added _slcalloc, _slrecalloc memory allocation
    functions that check for unsigned integer wrapping.  A number of
    vulnerable calls to SLmalloc were modified to use these functions.
    (Fixes an issue reported by Pablo Cassatella).
15. src/slarray.c: Detect attempts to create a 0 dimensional array.
16. modules/csv.sl: Float and double NaNs were reversed.  When
    normalizing columns names, _ characters were not being properly
    treated.
17. doc/tm/rtl/time.tm: Added documentation for timegm (Manfred Hanke).
18. doc/tm/crtl/slsmg.tm: Corrected prototype for SLsmg_read_raw (Manfred Hanke).
19. Tweaked doc macros and rebuilt docs.
20. src/slarray.c: Added a check for too small of a range array
    increment.

Changes since 2.2.2
1. src/sltermin.c: Added support for native terminfo binary layouts.
   Some systems have binary terminfo files that are incompatible with
   the standard ncurses layout.  Use the --terminfo=layout configure
   option to specify a non-standard layout (hpux11, osf1r5, uwin,
   aix4, default).  This incompatibity was pointed out by River Tarnell.
2. src/slparse.c: complicated lvalue expressions were not being properly
   parsed.
3. src/slstrops.c: Added strskipbytes function.
4. doc/tm/rtl/*.tm: A number of typos were corrected.  (Agathoklis D.
   Hatzimanikas)
5. src/slang.c,slparse.c: Qualifiers were not being passed to functions called
   via derefencing an array of function references, e.g.,
   (@f[n])(args;q).
6. src/slparse.c: Flag attempts to call literals as functions.
7. slsh/lib/process.sl: Added a "dir" qualifier to the new_process
   function.  This allows the subprocess to be started in a specified
   directory.
8. src/slrline.c: Added rline_get_last_key_function, which returns the
   last slang readline key function.
9. */Makefile.in: Commmened out "DESTDIR=" lines (Marcel Telka).
10. slsh/lib/rline.sl: Added rline_edit_history (allows the history to
    be edited in an external editor) and rline_up/down_hist functions.
11. src/slparse.c: An incorrect check (< instead of <=) was causing -0
    to generate an error.
12. .../tm/*:  Corrected some documentation typos and spelling errors
    (Agathoklis D. Hatzimanikas).
13. doc/tm/rtl/misc.tm: Documented the __tmp function and corrected a
    few more documentation typos (Agathoklis D. Hatzimanikas).
14. src/slerrno.c: ELOOP was defined twice (Agathoklis D. Hatzimanikas).
15. doc/tm/slang.tm: Fixed a few doc errors noticed by Manfred Hanke.
16. src/slsh/scripts/mv: removed redundant call to rename, and added
    force, noclobber, and verbose options (Agathoklis D. Hatzimanikas).
17. src/slsh/scripts/*: changed "static" to "private".
18. src/sldisply.c: Underlined space characters were not appearing
    with the underline.
19. src/sldisply.c: Do not rely upon terminals that can
    background-color-erase (BCE) to erase using the monochrome attributes (e.g.,
    underline).
20. src/slarith.c: Tweaked the %S format to better round decimals with
    repeated 9s or 0s.
21. autoconf/mkinsdir.sh: Updated to a newer version of
    mkinstalldirs.
22. src/slagetput.c: Change 2.2.2-10 fixed a problem with aget.  The
    same change needed to be made to aput to avoid an access violation.
23. modules/pcre-module.c: Added support for binary strings (Paul
    Boekholt).
24. src/slposdir.c: Added utime function.
25. slsh/scripts/mv: Added a missing call to stat_file (Agathoklis
    Hatzimanikas).
26. src/sldisply.c: Moved the keypad init/deinit code to separate
    functions for more fine-grained control.
27. slsh/rline/editor.sl: Added rline_call_editor and rline_edit_line functions
28. src/slbstr.c: Added is_substrbytes function.
29. doc/tm/rtl/strops.tm: The strncmp example used strcmp function
    (Brian Murray).
30. src/sltermin.c: Changed the search order for terminfo files to:
     $TERMINFO, $HOME/.terminfo, /usr/local/{etc,share,lib}/terminfo,
     /etc/terminfo, ...
31. src/slparse.c: Change #6 triggered an invalid parse error for
    statements involving foreach-using such as:

       foreach x (y) using ("bar") (@foo)();

32. src/slstrops.c: Added an alternative interface to strreplace that
    facilitates the most common case where one wants to replace all
    substrings.  The function now supports

        new = strreplace (a, b, c);

    in addition to the older usage:

        (new,m) = strreplace (a, b, c, n);

33. src/sltoken.c,...: Added support for binary integer literals of
    the form 0b010101.  Integers may be formatted as unsigned binary using the
    %B format specifier, e.g.,

        sprintf ("%B", 5)      ==> "101"
	sprintf ("%#B", 5)     ==> "0b101"
	sprintf ("%#8B", 5)    ==> "   0b101"
	sprintf ("%#.8B", 5)   ==> "0b00000101"
	sprintf ("%#12.8B", 5) ==> "  0b00000101"

34. src/slarith.c: ullong_to_binary was not getting defined on systems
    where sizeof(long)==sizeof(long long).  (Mark Olesen).
35. src/slsh.c: The stat_mode_to_string function was using 'f' unstead
    of 'p' for FIFOs.  (Agathoklis Hatzimanikas).
36. src/slarray.c: Switched to using mergesort instead of qsort and
    added support for sorting non-array types.  For details, see the
    updated documentation for array_sort.
37. src/slarray.c: Reduced the memory requirments for the mergesort
    function, which produced a 5% speed improvement.
38. src/slarray.c: Added support for qsort to array_sort.  See the
    updated documentation for details.
39. src/slparse.c: Added a syntax enhancement to structs and
    qualifiers to allow the fields of structure-valued expressions to
    be used to define the structure.  For example:

       space = struct {x, y, z};
       spacetime = struct {@space, t};

    Here spacetime is a structure containing 4 fields: (x,y,z,t).  In
    this context, @ is not a dereference operator.  Rather it is used
    to tell the parser that the following expression is a structure
    valued.
40. src/slcommon.c: SLmalloc inherited malloc's undefined behavior
    when 0 bytes were requested.  The change will cause SLmalloc to
    allocate at least 1 byte if the OS version of malloc returns NULL
    for 0 byte sizes.
41. src/slclass.c: The default dereference method for all scalar and
    vector classes was changed from undefined to duplicate.  That is,
    @7 will produce 7 instead of triggering a method-undefined
    exception.
42. src/slwclut.c: Added \x\c\p\,\g character classes to strtrans (See
    strtrans doc).
43. src/*.c: Made numerous int->SLindex changes to match function
    prototypes.  Note that SLindex_Type is currently typedef'd to be
    an int, but if that ever changes, these changes will be necessary.
    I also added SLang_push_array_index to the public API.  Also
    updated copyright year since a number of files changed.
44. src/slarrfun.c: change 43 would not compile on 64 bit systems.
45. src/slnspace.c: the apropos function was not returning float,
    short, long, and long long constants.
46. src/slarith.c: If LLONG_MAX is not defined, and sizeof(long long)
    is 64 bits, then use the standard value.
47. src/slang.c: long long constants were not working.
48. slsh/lib/process.sl: modes[i] was being set after i was bumped.
    This caused modes[0] to be NULL.
49. slsh/lib/slshrl.sl: If the first word is callable, and is followed
    by a ',', then add parenthesis, i.e., "print,7" ==> "print(7);".
    Note: this is a commandline convenience feature and has nothing to
    do with the slang syntax.
50. slsh/lib/rline/complete.sl: Attempt to complete structure field
    names.
51. src/slrline.c,slsmg.c,sldisply.c: Added support for multiline
    readline.
52. configure,src/*.hin: Added autoconf support for size_t.
53. src/slang.h,...: Added 'typedef unsigned in SLstrlen_Type' to
    create migration path for size_t in place of unsigned int.
54. src/slstrops.c: New intrinsics:

      islower, isupper, isxdigit, isalnum, isalpha, iscntrl, isprint,
      isgraph, ispunct, isblank, isspace, strskipchar, strbskipchar

    The latter two functions play a role in the context of the
    variable length UTF-8 encoding
    encoding analogous to that of ch=*s++ and ch=*s-- in a fixed
    encoding.
55. slsh/lib/rline/editfuns.sl: Used functios in change #54 to implement
    bskip_word and skip_word readline functions.
56. src/slstrops.c: Added isascii, and updated docs.
57. src/sldisply.c: _pSLtt_cmdline_mode_reset will also clear to the
    end of the screen.
58. mingw32 compilation problems: typo in src/slconfig.h;
    src/slarrfun.c: missing '#ifdef HAVE_LONG_LONG'.
59. src/slsmg.c: Change #51 introduced a bug that manifests itself
    when expanding a tab at the right edge of the display.
60. src/slarrfunc.c: If contracting an empty array over all dimensions
    to produce a scalar, clear the transfer buffer.
61. src/slarrfun.c: If a scalar is passed to array_reverse, then do
    nothing.
62. src/slarith.c: LONG_MIN/MAX values were placed in an integer
    contant table instead of a long integer table.
    SLadd_lconstant_table added to the interface.
63. src/slsmg.c: Change 51 introduced a bug in SLsmg_write_chars when
    SLsmg_Newline_Behavior != SLSMG_NEWLINE_IGNORED.
64. autoconf/config.sub+config.guess updated.
65. src/slstrops.c: If a delimiter is not passed to strjoin, assume
    the empty string.
66. modules/test/test_rand.sl: Some integer constants changed to
    unsigned values.
67. src/slstruct.c: tweak code to remove a false uninitialized
    variable warning.
68. src/slarray.c: fix NULL pointer deref from invalid binary
    operation Array_Type[N]+[1:N].
69. src/slang.c: '>' instead of '<' should have been used in in the
    try/catch code when decrementing the frame pointer.
70. src/slparse.c: Method qualifiers were getting lost when called
    from the constructor, e.g., new_object(arg1;qual1).method(arg;qual2)
71. src/sltoken.c: preprocessor statements #if, #ifeval, and #ifexists
    will use the (non-anonymous) namespace of the file containing the
    statements.
72. src/slang.c: _pSLlocate_name return NULL instead of an exception
    if the name contains a non-existent namespace.
73. Removed excess whitespace from all files (*.c, *.h, *.tm, *.sl, ...).
74. src/slang.c: define MAX_USER_BLOCKS to be 5, and use it instead of `5'.
75. src/slsignal.c: Use (char*)NULL instead of NULL in call to execl
    to avoid a compiler warning on OpenBSD.
76. src/slproc.c: define _XOPEN_SOURCE_EXTENDED to be 1 instead of
    just defining it.  This pulls in some prototypes on OpenBSD.
77. src/slmath.c: The hypot intrinsic was modified to work with N
    arrays instead of just 2.  (Manfred Hanke)
78. src/slarith.inc: Use doubles for intermediate calculations when
    double is the expected result.  This avoids some integer overflows 
    (Matthias Kühnel, Michael Wille, Manfred Hanke).
79. src/slparse.c,slang.c: Added FOREACH_EARGS byte-code that will
    implicitly call the __eargs function.  This avoids a problem with
    the standard FOREACH bytecode if a hook gets called after __eargs
    but before the FOREACH byte-code executes.
80. src/slstrops.c: The pos argument to the string_match and
    string_matches function was made optional (defaults to 1).
81. src/slstring.c: Use _pSLuint32_Type instead of unsigned long for
    hashes since the hash algorithm was designed for 32 bits.
82. src/slstd.c: Save the pointer passed to putenv to a global array
    so that leak checkers can find it.  The reason for this is that
    some libc implementations copy the pointer but others do not.
83. src/slang.c: An off-by-one error was causing a stackunderflow
    error when handling a exception list in a try-catch statement.
84. slsh/lib/arrayfuns.sl: Add support for empty arrays to the shift
    function (Manfred Hanke).
85. */examples/*.sl: Various updates and corrections (Manfred Hanke).
86. src/sllist.c: A extra call to SLang_free_mmt was causing a list to
    be freed when set via an index array.
87. src/slstrops.c: Vectorized strlow/strup intrinsics.
88. src/slmath.c: Add support for more than 2 arguments to the
    _min/_max functions (Manfred Hanke).
89. src/sllist.c: Added list_join, list_concat intrinsics (Mike Noble).
90. slsh/lib/setfuns.sl: adds unique, intersection, complement, union
91. modules/csv.sl: Added a module to support the reading and writing
    of comma separated values (csv) formatted files.
92. Some documentation corrections (Manfred Hanke).
93. src/slmath.c: In the hypot function, use the convenience function
    do_binary_function_on_nargs instead of an explicit loop. (Manfred
    Hanke).
94. modules/tm/slsmg.tm: Manfred Hanke has started documenting the
    slsmg module.  He also provided a new example (slsmgex2.sl).
95. src/slnspace.c,slang.c: Free up some memory associated with
    namespaces upon exit.
96. src/slposio.c: added ttyname intrinsic
97. autoconf/slang.pc: Use @libdir@ instead of assuming $prefix/lib.
98. modules/csv.sl: The read_cols method allows the type qualifier to
    be a string of type specifiers, e.g., types="liff".  This is
    equivalent to types=['l', 'i', 'f', 'f'].
99. src/sltime.c: Added timegm, which is the inverse of gmtime.  I
    also made changes to the time functions so that time_t is not
    assumed to be a long.  This means that _time may produce a
    longlong integer on some platforms.
100. modules/cmaps/coolwarm.map: A color map by Kenneth Moreland.
101. modules/png-module.c: Use png_set_expand_gray_1_2_4_to_8 instead
     of png_set_gray_1_2_4_to_8 if available (patch forwarded from Marco
     Atzeri).
102. src/slcommon.c: Code using __libc_enable_secure was removed
     (patch forwarded from Marco Atzeri)
103. src/sldisply.c: Added some termcap compatibility functions that
     were ifdefed out in v2.2.2 but were made available by some linux
     distributions for code to use: SLtt_tgetent, SLtt_tgoto,
     SLtt_tputs (patch forwarded by Marco Atzeri).
104. autoconf/aclocal.m4,configure.ac: Various updates by Marco Atzeri
     including a cygwin specific change.
105. autoconf/aclocal.m4: Missing hyphen for ELFLIB_MAJOR on cygin
     (Marco Atzeri).
106. slsh/lib/doc/tm/setfuns.tm: Add newlines to the note1 macro
     (Manfred Hanke).
107. src/slang.c: change #5 caused a problem evaluating the bytecode
     produced by preparsed files (.slc) produced by slang v2.2.2.
108. modules/tm/csvfuns.tm: Documentation updates
109. src/sldisply.c: slsh would exit if the underlying terminal was
     unknown because _pSLtt_init_cmdline_mode was returning a fatal
     error.
110. configure, *Makefile.in,etc: Made changes so that ARCH
     environment variable influences where the .o files are placed.
     The INSTALL.unx file documented this feature but the slsh and
     modules Makefiles did not implement this.
111. */mkfiles/makefile.all: Added WFLAGS to mingw sections to allow
     the warning flags to be specified independently of the CFLAGS.
112. src/slang.c,_slang.h: Changed `#if HAVE_LONG_LONG' to `#ifdef
     HAVE_LONG_LONG' in a few places.
113. src/slstrops.c: A number of string functions have been vectorized
     to work on arrays of strings.  These include:

        is_substr str_delete_chars strbytelen strcharlen strcmp
	strcompress strlen strlow strnbytecmp strncharcmp strncmp
	strtrans strtrim strtrim_beg strtrim_end strup

114. modules/Makefile.in: Change #110 introduced a bug
     that caused the modules to always be need rebuilding.
115. src/sltoken.c: Change #if HAVE_LONG_LONG to #ifdef HAVE_LONG_LONG.
116. src/slmath.c: Tweaked the Kahan sum for the hypot function.
117. slsh/readline.c: Added __rline_init/reset_tty functions and used
     them in the rline editor routines to reset the terminal before
     calling an external editor.  This avoids problems when the editor
     is subsequently suspended.
118. modules/csv.sl: Typo causing a bug involving the mapping of string valued
     column-specifiers to column numbers by csv.readcol. (Paul Boekholt)
119. doc/tm/rtl/strops.tm: Typo in sprintf documentation (Andreas
     Irrgang).
120. src/sltime.c,slposio.c: Avoid certain posix *_r functions if
     _POSIX_C_SOURCE is too old.

Changes since 2.2.1
1. src/slsmg.c: Call SLutf8_enable if UTF8 mode has not been setup.
2. src/slutty.c:  Allow the hook that gets called when the read
   function gets interrupted to change the read file descriptor.
   Before, if this happened, the SLang_getkey function would return
   SLANG_GETKEY_ERROR.
3. lib/slsh/print.sl: Turn off buffering of the pager pipe.
4. modules/tm/*.tm: A couple of typos corrected (John Houck)
5. src/slmath.c: The round function was not correctly rounding values
   between 0.5 and 1.0.
6. src/slstdio.c,slclass.c: If a call to fwrite produces errno=EPIPE,
   then do not bother trying the write again.
7. modules/fork-module.c:  Use WIFCONTINUED only if it is defined.
8. slsh/Makefile.in: Change the order of the libraries such that the
   newly built ones will be found first.  (Markus Hennecke)
9. src/slagetput.inc: Avoid possible access violation when using a
   range array as an index.
10. doc/tm/rtl/lists.tm: Documented the optional argument to the
    list_to_array function (Manfred Hanke).

Changes since 2.2.0
1. modules/socket-module.c: glibc-2.8 removed the h_addr macro.
2. src/slclass.c: Call clearerr before performing the
   stdio_fread/fwrite functions.
3. src/slstdio.c: typeof in the fputs intrinsic fixed (n instead of dn
   was compared to 0).
4. src/slscanf.c: sscanf will treat NaN and Inf in a case-insensitive
   manner.  Also, the NaN([a-zA-Z0-9]*) form is also supported.
5. src/slang.h: SLclass_set_aelem_init_function was missing from the
   API.
6. src/slmath.c: The expm1 and log1p functions were returning NaN when
   given Inf arguments.
7. src/slmath,c: log1p(-1) produced nan instead of -inf.
