20250930:
- The LTO-related warnings during the build of Seed7 have been
  eliminated. Many thanks to "apocelipes" for changing the makefiles
  to use -flto=auto.
- The program chkccomp.c has been improved to always define the
  macro DEFINE_INITIALIZER_MACRO. Many thanks to Bruce Axtens for
  pointing out that a build with mk_msvc.mak failed.
- In the FAQ explanations of software maintainability and result
  variables have been added. The explanations of simple function
  profiling, readability and variable initialization have been
  improved. The types parseError, pollData and listener have been
  added to the explanation about syntax highlighting.
- Chapters about the types parseError, pollData and listener have
  been added to the manual. The chapters about the graphics library,
  the foreign function interface and errors have been improved.
- The example programs lst80bas.sd7, lst99bas.sd7 and lstgwbas.sd7
  have been added. These programs decode and list tokenized BASIC
  programs.
- The bas7.sd7 (basic interpreter) example program has been
  improved:
  - FOR-loops have been changed to match the behavior of other BASIC
    interpreters.
  - A warning, if a variable got its value from a for-loop, has been
    added.
  - Support for names with underline (_) has been added.
  - Support for double precision literals has been added.
  - Support for string literals has been improved to allow quotation
    marks in string literals.
  - Support for the OPEN statement has been improved. An additional
    variant of the OPEN statement is supported now.
  - The error handling in LET, GET, PUT, MID$, WHILE, WEND, LOAD,
    BLOAD, CHAIN and RUN statements has been improved.
  - The error handling in the functions ASC, LOG, SQR, CINT, CLNG,
    FIX, LEFT$, MID$, RIGHT$, TAB() and SPC() has been improved.
  - A recognition of OVERFLOW errors has been added for
    multiplication and division operations.
  - The ON ERROR handling is reset when a file is loaded.
  - Constants for error codes have been introduced.
  - Support for the statements OPTION BASE, REDIM, SUBEXIT, SUBEND
    and ACCEPT has been added.
  - Now TIMER and PCOPY statements are recognized.
  - The support for the statements DEFDBL, DEFINT, DEFLNG, DEFSNG,
    PRINT, LPRINT, DISPLAY, DEF SEG, BLOAD, BSAVE and OUT has been
    improved.
  - The support for the subroutines CHAR, CLEAR, KEY and SOUND has
    been improved.
  - Support for the function ENVIRON$ has been added.
  - The support for the function VARPTR$ has been improved.
  - Support for an alternate POS function, which searches in a
    string, has been added.
  - The support for LONG, INTEGER, FLOAT and DOUBLE variables has
    been improved in DIM and GET statements.
  - In CGA, EGA and VGA images checks for the width and height have
    been added. They are checked for their presence and that they
    are greater than 0.
  - The name INSTR is allowed as variable and function
  - The support for the RUN command in interactive mode has been
    improved.
  - If the keyword GOTO or GOSUB follows THEN or ELSE it is not
    considered to be a label.
  - The scrolling in graphics mode has been improved.
  - Support for image variables in SCREEN 9 mode has been added.
  - The check for the file name extension ".bas" has been fixed to
    work for short file names.
  - The logging of DO, LINE INPUT, LINPUT, KEY, LET, NEXT, GET,
    EXIT, MID$ and VAL has been improved.
- The pv7.sd7 example program has been improved to display an image
  if the file extension does not fit but the image magic does fit.
- The Seed7 compiler (s7c) has been improved:
  - The handling of dynamic types has been fixed to work correclty
    if a derived type does not use type_implements_interface().
  - The initialization of array and hash constants has been improved
    to avoid that a sanitizer complains about uninitialized data.
  - The compilation of a library has been improved to generate code
    for all objects.
  - The function write_file_head() has been improved to use
    multi-line string literals.
- The program chkfil.sd7 has been improved:
  - A test case for a derived type which does not use
    type_implements_interface() has been added.
  - Now templates are used to declare raisesRangeError() and
    raisesFileError().
  - The checks for file operations with a closed file have been
    refactored to use raisesFileError().
  - The functions check_use_after_close1() and
    check_use_after_close2() have been added.
  - Checks have been added to verify that inputReady(),
    getTerminatedString() and setbuf() with a closed file raise
    FILE_ERROR.
- In chkflt.sd7 tests of str() with negative float values have been
  added.
- In chkdb.sd7 tests for simple, fraction, combined and advanced
  durations have been added. Checks for positive and negative
  durations are done in separate test functions.
- In duration.s7i the function duration() has been improved to check
  for more invalid values.
- The library db_prop.s7i has been improved to allow fractions of a
  second in MySQL durations. The duration type for MS SQL-Server has
  been changed as well.
- In draw.s7i the function rectTo() has been improved to work with
  any diagonally opposite corners of the rectangle.
- In draw.s7i the undocumented functions color(col) and
  color(col,col) are deprecated.
- Unnecessary calls of color() have been removed from bas7.sd7,
  castle.sd7, dnafight.sd7, lander.sd7, percolation.sd7 and
  tetg.sd7.
- In tls.s7i the ECDSA verification has been improved to use curve
  and key from the certificate.
- In tls.s7i the function negotiateSecurityParameters has been
  improved to avoid writing to broken pipe.
- The library gethttp.s7i has been improved:
  - The function getHttp() has been split into getHttpHeader() and
    getHttpBody().
  - The function getHttpHeader() has been refactored to use a case
    statement.
  - In getHttpHeader() the expression pos(line, ":") has been
    replaced with colonPos.
  - The function getHttpLocation() has been refactored to call
    getHttpHeader().
  - The functions sendGet() getHttpHeader() and getHttpLocation()
    have been improved to use cookies in URL redirections.
  - A function to show a httpLocation has been added.
  - The function getHttpBody() has been changed to return an empty
    string if the charset is not supported or the encoding is wrong.
- In tga.s7i tgaHeader parameters have been changed to be
  in-parameters if the parameter is not changed.
- In pixmap_file.s7i the function v_scroll() has been improved to
  erase an area with the background color.
- Support for the actions DRW_COLOR, DRW_BACKGROUND, DRW_RECT,
  DRW_POINT, DRW_LINE, DRW_CIRCLE, DRW_ARC2, DRW_ARC,
  DRW_FARCPIESLICE, DRW_FARCCHORD, DRW_FCIRCLE and DRW_FELLIPSE has
  been removed from interpreter and compiler. These actions have not
  been used for years.
- The unused source files con_con.c, con_cur.c, con_tcp.c, con_cap.c
  and con_x11.c have been removed.
- In common.h macro definitions of integer decimal and hexadecimal
  sizes have been added (e.g. INT_DECIMAL_SIZE, UINT_DECIMAL_SIZE,
  INT_HEXADECIMAL_SIZE, LONG_DECIMAL_SIZE, ULONG_DECIMAL_SIZE, ...).
  These macros are used in various files for declarations of buffers
  used by integer to decimal or hexadecimal conversions.
- Definitions of the log2Function() and log2Error() macros have been
  added to common.h. These macros log to stderr.
- In drw_x11.c, drw_win.c and drw_emc.c the checks for RANGE_ERROR
  in the drawing functions for rectangles, points, lines, ellipses,
  circles, filled circles, arc pie slices, arc chords, arcs and arcs
  with width have been improved.
- In drw_x11.c, drw_win.c and drw_emc.c checks have been added to
  verify that startAngle and sweepAngle are in the allowed range.
- In drw_x11.c, drw_emc.c and drw_win.c the checks for RANGE_ERROR
  in the functions drwCopyArea(), drwCapture(), drwGetPixel(),
  drwGetPixmap(), drwImage(), drwNewPixmap(), drwPutScaled() and
  drwSetPos() have been improved.
- The file drw_x11.c has been improved:
  - Now the static variables emptyCursor and mygc are initialized.
  - The function drawClose() has been improved to free emptyCursor.
  - In the function drawInit() an initialization of emptyCursorColor
    has been added. This avoids that XCreatePixmapCursor() uses
    undefined XColor data.
  - The element parentWindow has been added to x11_winRecord. Code
    to maintain the usage_count of parent windows has been added as
    well.
- In drw_emc.c code to maintain the usage_count of the existing
  parentWindow element of emc_winRecord has been added.
- In drw_drv.h, drw_dos.c, drw_emc.c, drw_win.c, drw_x11.c and
  drw_act.s7i the const_ has been removed from the type of the
  parent_window parameter in drwOpenSubWindow().
- In drw_win.c the generation and usage of pointList values has been
  improved to avoid integer overflow. In drwGenPointList() signed
  31-bit x and y coordinates are accepted and stored in a pointList.
  In drwPolyLine() and drwFPolyLine signed 31-bit x and y values are
  accepted. Adding two signed 31-bit integers results in a signed
  32-bit integer which is allowd in GDI functions.
- In tim_rtl.c the function assignIsoDuration() has been added. It
  is called from sqlColumnDuration() in sql_lite.c.
- Support for the configuration values CONSTRUCTOR_ATTRIBUTE,
  DEFINE_INITIALIZER_MACRO, CC_OPT_POSITION_INDEPENDENT_CODE,
  CASTING_GETS_A_UNION_ELEMENT and UNIONS_CAN_CONVERT_TO_GENERIC has
  been added to cc_conf.s7i, confval.sd7, cmd_rtl.c and chkccomp.c.
- In dcllib.c the function dcl_var() has been improved to consider
  parameters of BLOCKOBJECT in a var-declaration.
- In match.c the function substitute_params() has been improved to
  assure that created_object is not undefined.
- In cmd_unx.c the function unsetenv7() has been improved to avoid
  that 'found' becomes a dangling pointer.
- In infile.c an include of sys/stat.h has been added if HAS_MMAP is
  not set.
- In striutl.c the function cstriAsUnquotedCLiteral() has been
  added. This function is used for logging in fwd_term.c, trm_cap.c
  and trm_inf.c.
- In error.c definitions of sprintfIntCharDescr(),
  sprintfLongCharDescr(), INT_CHAR_DESCR_BUFFER_SIZE and
  LONG_CHAR_DESCR_BUFFER_SIZE have been added.
- In traceutl.c the functions prot_cstri(), prot_cstri8() and
  prot_string() have been improved to call conWrite() only if
  CONSOLE_WCHAR is defined.
- In traceutl.c the function list_node_names() has been improved to
  avoid a buffer overflow.
- In big_rtl.c and big_gmp.c a memory leak in bigHexCStri() has been
  closed. Logging functions have been refactored to call at most one
  bigHexCStri() in a printf().
- In emc_utl.c the function doExit() has been improved to free all
  atExitDataType elements of the atExitLifoStack.
- In soc_rtl.c the definition of MAX_SOCK_ADDRESS_LEN has been
  fixed. Declarations of serviceName buffers have been changed as
  well. Since ports are unsigned 16-bit integers the type uint16Type
  is used for them.
- In str_rtl.c the function ustriCmpGeneric() has been improved to
  assure that the generic value is always initialized. Additionally
  a MEMORY_ERROR is raised if ALLOC_USTRI() fails.
- In con_inf.c checks, if the console has been initialized, have
  been added.
- In trm_cap.c the functions my_tgetent(), my_tgetnum(),
  my_tgetflag(), my_tgetstr() and getcaps() have been refactored.
  Several fixed size buffers have been removed and for the remaining
  ones buffer overflows are avoided.
- In trm_cap.c the functions printCapEscapedStri(), printStriCap()
  and showCapabilities() have been added.
- In trm_inf.c the functions read_cap_name(), read_int_cap(),
  read_stri_cap(), assign_cap(), fix_capability() and getcaps() have
  been refactored. Several fixed size buffers have been removed and
  for the remaining ones buffer overflows are avoided.
- In trm_inf.c the function fix_capability() has been deactivated
  with #define USE_FIX_CAPABILITY 0.
- The logging of database passwords has been removed in sql_db2.c,
  sql_fire.c, sql_ifx.c, sql_lite.c, sql_my.c, sql_oci.c,
  sql_odbc.c, sql_post.c, sql_srv.c and sql_tds.c.
- In sql_post.c definitions of htons(), ntohs(), htonl() and ntohl()
  have been added if necessary.
- In sql_lite.c, sql_my.c, sql_fire.c and sql_tds.c a link with
  usage_count from a prepared statement to the database has been
  added. Now all database drivers maintain the db link in prepared
  statements.
- The db link to the database has been added to sqlStmtStruct (in
  common.h) and preparedStmtStruct (in sql_rtl.c).
- In sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c,
  sql_post.c and sql_tds.c the flag isOpen has been added to to the
  database struct. The flag isOpen is set when a database is opened
  and it is cleared when the database is closed with sqlClose().
- The flag isOpen has been added to databaseStruct (in common.h) and
  dbStruct (in sql_rtl.c).
- In sql_rtl.c the functions sqlBindBigInt(), sqlBindBigRat(),
  sqlBindBool(), sqlBindBStri(), sqlBindDuration(), sqlBindFloat(),
  sqlBindInt(), sqlBindNull(), sqlBindStri(), sqlBindTime(),
  sqlColumnBigInt(), sqlColumnBigRat(), sqlColumnBool(),
  sqlColumnBStri(), sqlColumnDuration(), sqlColumnFloat(),
  sqlColumnInt(), sqlColumnStri(), sqlColumnTime(), sqlIsNull(),
  sqlStmtColumnCount() and sqlStmtColumnName() have been changed
  to raise DATABASE_ERROR if the database of a prepared statement is
  not open. The usage of an empty prepared statement raises
  RANGE_ERROR.
- In sql_rtl.c the functions sqlClose(), sqlCommit(),
  sqlGetAutoCommit(), sqlPrepare(), sqlRollback() and
  sqlSetAutoCommit() have been changed to raise DATABASE_ERROR
  if a closed database is used. The usage of an empty database
  raises RANGE_ERROR.
- In sql_rtl.c the checks of function pointers have been refactored.
  Now a NULL function pointer raises DATABASE_ERROR.
- In sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c,
  sql_post.c and sql_tds.c the function freeDatabase() has been
  improved to call sqlClose() only if the database is still open.
- In sql_my.c and sql_oci.c a check if the database is open has been
  added to sqlCommit(), sqlGetAutoCommit(), sqlPrepare(),
  sqlRollback() and sqlSetAutoCommit().
- In sql_fire.c a check if the database is open has been added to
  sqlCommit() and sqlPrepare().
- Functions in sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c,
  sql_oci.c, sql_post.c and sql_tds.c have been changed to raise
  DATABASE_ERROR if a closed database is used.
- A definition of INTERVAL_FRACTION_PRECISION has been added to
  sql_db2.c, sql_ifx.c, sql_odbc.c and sql_srv.c. This constant
  is used in sql_cli.c to determine the precision of interval
  fractions in SQL_INTERVAL_STRUCT.
- In sql_cli.c the binding of time/date values has been fixed (this
  avoids a heap corruption).
- In sql_cli.c the binding and reading of intervals (durations) has
  been improved. The function assignInterval() has been added.
- In sql_cli.c the function assignToIntervalStruct() has been
  improved to normalize a duration before converting it to a
  SQL_INTERVAL_STRUCT. The conversion to SQL_INTERVAL_STRUCT has
  been improved as well.
- In sql_lite.c the value MAX_SIZE_ISO_DURATION is computed now.
- In sql_my.c the function sqlBindDuration() has been improved to
  avoid unsigned long overflow.
- The function dbNotOpen() has been added to sql_base.c.
- In exec.c in the function par_init() the debug prints have been
  improved.
- In fil_rtl.c the function filSetbuf() has been improved to raise
  FILE_ERROR if it is called with a closed file.
- In fil_dos.c, fil_emc.c, fil_unx.c and fil_win.c the function
  filInputReady() has been improved to raise FILE_ERROR if it is
  called with a closed file.
- In fwd_term.c forwarding of termcap functions has been added.
- The functions XFreeCursor() and XSetErrorHandler() have been
  added to fwd_x11.c and x11_x.h.
- In flt_rtl.h the buffer size for buffers used by
  doubleToFormatE() has been fixed to consider that negative
  numbers have the maximum length.
- The functions continue_question() (in runerr.c) and
  continue_question() (in sigutl.c) have been refactored.
- In kbd_inf.c, kbd_poll.c, msg_stri.c, runerr.c, sigutl.c,
  soc_rtl.c, sql_post.c, gkb_x11.c, sql_lite.c and traceutl.c
  literals in the code have been replaced by #define constants.
- The program chkccomp.c has been improved:
  - Now it determines CONSTRUCTOR_ATTRIBUTE,
    DEFINE_INITIALIZER_MACRO, CC_OPT_POSITION_INDEPENDENT_CODE,
    FLOAT_MIN_EXP10, FLOAT_MAX_EXP10, MEMCMP_WITH_SIZE_0_RETURNS_0
    and UNIONS_CAN_CONVERT_TO_GENERIC.
  - The functions getConstructorAttribute(),
    getInitializerMacro64(), getInitializerMacro32() and
    determineLibraryProperties() have been added.
  - In extractPostgresOid() a check, if essential OIDs are missing
    in the generated pg_type.h, has been added.
  - A test has been added if memcmp() with a size of 0 returns 0
    even with NULL parameters (MEMCMP_WITH_SIZE_0_RETURNS_0).
  - An include of stdlib.h has been added to a test program which
    uses malloc().
  - Test programs have been improved to free allocated memory.
  - A buffer overflow is avoided in a test program for array
    literals.
  - A superfluous parameter of strcmp() has been removed from a test
    program.
  - Test programs have been changed to include stdio.h, if the test
    uses printf().
  - Test programs for X11 have been improved to close the display.
  - Parentheses have been put around -1.
  - A definition of EAI_NODATA is written to version.h, if it is
    missing and getaddrinfo() is present.
  - A return statement has been added to the function getCodePage().
- In wrdepend.c it is assured that the variable level is not
  undefined when it is written.
- The makefile mk_tcc_l.mak has been improved to allow a compilation
  with tcc if 'X11/extensions/Xrender.h' is missing.
- A definition of CC_OPT_POSITION_INDEPENDENT_CODE has been added to
  makefile, mk_clang.mak, mk_cygw.mak, mk_freebsd.mk, mk_linux.mak,
  mk_mingc.mak, mk_mingw.mak, mk_msys.mak, mk_nmake.mak, mk_osx.mak
  and mk_osxcl.mak.
- Logging functions have been added or improved in big_gmp.c,
  big_rtl.c, cmd_rtl.c, con_inf.c, con_rtl.c, drw_emc.c, drw_win.c,
  drw_x11.c, fillib.c, fil_rtl.c, flt_rtl.c, fwd_term.c, fwd_x11.c,
  hshlib.c, kbd_poll.c, pol_unx.c, soc_rtl.c, sql_base.c, sql_cli.c,
  sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c, sql_post.c,
  sql_rtl.c, sql_tds.c, strlib.c, s7.c, trm_cap.c, trm_inf.c and
  traceutl.c.
- Documentation comments have been added or improved in bas7.sd7,
  complex.s7i, draw.s7i, flt_rtl.c, listener.s7i, poll.s7i,
  progs.s7i, string.s7i, drw_emc.c, drw_win.c and drw_x11.c.

20250729:
- The program chkerr.sd7 has been changed to search include
  libraries in the directory "../lib" as well. This is needed for
  the FreeBSD build. Many thanks to Pietro Cerutti for the bug
  report.
- The files chkerr.sd7, err.sd7, reference.s7i, seed7_05.s7i and
  struct.s7i have been refactored to use named parameters instead of
  'param' parameters. Many thanks to Pierre Rouleau for pointing out
  parameter declarations with the keyword 'param'.
- In name.c the function globalObjects() has been improved to return
  file and line of enum literals. Many thanks to Pierre Rouleau for
  reporting that for enum values the function globalObjects() returns
  objects with "?" for filename and 0 for line.
- In executl.c the function old_do_create() has been improved to
  trigger an error if a function is created with a non-function
  value (e.g. a literal). Many thanks to Pierre Rouleau for pointing
  out function declarations with a literal as value instead of a
  function body.
- Explanations about case sensitivity, function declarations, object
  initialization, documentation comments and the seed7-mode of Emacs
  (thanks to Pierre Rouleau) have been added to the FAQ.
- Links in the FAQ have been improved.
- Several FAQ answers have been improved:
  - The keywords used for syntax highlighting.
  - The reason why Seed7 does not use type inference.
  - Why forward declarations are necessary.
  - What an abstract data type is.
  - The lifetime of an object.
- Chapters about forward declarations, interface declarations,
  creator, destroyer, pointList actions, structElement actions and
  system variables have been added to the manual.
- The new library tga.s7i has been added. This library supports
  the TGA image file format.
- The library imagefile.s7i has been improved to support TGA image
  files.
- The Seed7 compiler (s7c) has been improved:
  - The recursive inlining of a function is limited to a maximum
    depth.
  - The recursion of getIntRange() is stopped if it is called with
    the same parameter again.
  - The recursion of isPureBlockFunction() is stopped if it is
    called with the same parameter again.
  - The code generation for local functions has been improved to
    work for deeply nested functions.
  - A compiler warning for endless recursion in interface functions
    has been added.
  - The function process_type_declaration() has been improved to use
    interfaces(aType) to call addImplementationToInterface(). The
    function process_itf_cpy2_declaration(), which called
    addImplementationToInterface() before, has been removed.
  - Support for local variables of type void has been added.
  - Optimizations for the array functions length(), minIdx() and
    maxIdx() have been added.
  - The generation of prototype declarations has been changed: If a
    function calls itself recursively no additional prototype
    declaration of the function is needed.
  - The function evaluate() has been removed from comp/const.s7i.
    The evaluate() function with argument list from progs.s7i is
    called by canEvaluateSpecialAction() instead.
  - The optimization of for-each-loops has been improved to remove
    some index checks. The estimation of an integer variable range
    in process_prc_for() has been improved to consider for-loops
    used in inlined code.
  - In prc_act.s7i the processing of the else-part in the functions
    process_else() and process_const_prc_if_noop() has been
    improved. CONSTENUMOBJECT (corresponding to the non-function
    literal 'ELSIF_EMPTY' has been replaced with BLOCKOBJECT
    (corresponding 'return ELSIF_EMPTY').
  - The function process_dynamic_call() has been improved to process
    constant values of any type. For constants which are wrongly
    defined as function the create() function of the function result
    type is used.
  - The function process_dynamic_param_struct_elem() has been
    improved to use ustriCmpGeneric(), which works with 32-bit
    pointers, instead of strcmp().
  - The function enter_ref_constant_types() has been added. The
    function adds the types of referred objects to
    constTable.type_const.
  - The macro NORETURN has been moved from the end of the prototype
    to the beginning.
  - The function getAnyParamToTempAssigns() has been improved to use
    a 'const_*' type if necessary. This fixes the compilation of
    chkdb.sd7.
  - The compilation of the function setSearchPath() has been fixed.
    A prototype of cmdSetSearchPath() has been added to the
    generated C program.
  - The compilation of the function hashCode() for process arguments
    has been fixed. The generated prototype of pcsHashCode() has
    been changed to use a processType argument.
  - The function process_expr() has been improved to avoid casting
    a SETOBJECT to a function type.
  - The compiler version number has been raised to 3.5.
- The interpreter version number has been raised to 5.4.
- The program dnafight.sd7 has been improved:
  - Now the type 'microbe' is defined as interface instead of
    varptr.
  - The headline of the statistics has been improved and the text
    '(Winner)' has been added to the winner.
  - Now a warning is written if the conversion to integer failed.
  - The comments at the beginning and end of functions have been
    changed.
- The program sydir7.sd7 has been improved to support the options -e
  and -o.
- The program s7check.sd7 has been improved to work for include
  libraries. To check *.s7i files an include of "seed7_05.s7i" and
  an empty main program is used.
- Tests for based integer literals with lower case letters have been
  added to chkint.sd7.
- Tests for multiplications with integer.first, integer.last and
  -integer.last product have been added to chkint.sd7.
- Tests for mutually recursive functions with the ternary operator
  have been added to chkbool.sd7.
- Tests for set comparisons from documentation comments have been
  added to chkset.sd7.
- In seed7_05.s7i an assignment for the type void has been added.
- In progs.s7i the functions compare() and hashCode() have been
  added. This allows hash tables with programs as key or value.
- In progs.s7i the functions evaluate(), appendFormalParams() and
  interfaces() have been added.
- In the library forloop.s7i support the for-loop
  'for aBoolean range boolean do' has been added.
- In the library category.s7i the functions compare() and hashCode()
  have been added for category values.
- In bitdata.s7i parameters of the functions openLsbInBitStream()
  and openMsbInBitStream() have been changed to use an inout file
  parameter, because the files in LSB- and MSB-bit-streams are
  changed.
- In osfiles.s7i the new function getFileName() has been introduced.
- In osfiles.s7i the undocumented function parentDir() has been
  renamed to getParentDir() and a documentation of it has been
  added.
- In field.s7i the type field_file has been renamed to fieldFile.
- In field.s7i the functions getwd() and getln() have been improved
  to show the cursor. The function write() has been added.
- In msgdigest.s7i the definitions of blockSize and digestSize have
  been changed. Now they are defined as integer constants.
- In seed7_05.s7i the definition of the else-part has been changed
  to use 'return ELSIF_EMPTY'. Before a function definition with a
  non-function value (the literal 'ELSIF_EMPTY') was used.
- In seed7_05.s7i the types creator and destroyer have been
  introduced. All libraries with create and destroy declarations
  have been changed to use the types creator and destroyer.
- The program chkerr.sd7 has been changed to declare create
  operators with the type creator.
- In chkerr.sd7 tests for errors have been added:
  - If a creator or destroyer is used as statement.
  - If a function is created with a non-function value.
  - If a comma expression is used as name of a struct element.
  - If f_param_type is NULL.
  - For REDECLARATION, PREVIOUS_DECLARATION, EXCEPTION_RAISED,
    IDENT_EXPECTED, PARAM_DECL_OR_SYMBOL_EXPECTED, PROC_EXPECTED and
    EXPECTED_SYMBOL errors.
- In aes.s7i, aes_gcm.s7i, arc4.s7i, blowfish.s7i, cipher.s7i,
  des.s7i and tdes.s7i the definitions of blockSize have been
  changed. Now they are defined as integer constants.
- Includes have been added to bitmapfont.s7i, browser.s7i,
  db_prop.s7i, elf.s7i, field.s7i, gtkserver.s7i, image.s7i,
  math.s7i, pixmapfont.s7i, stars.s7i, vector3d.s7i, vectorfont.s7i
  and wildcard.s7i such that s7check passes.
- Occurrences of the functions chr() and flt() have been replaced by
  char() respectively float().
- The file name.c has been improved:
  - The function close_current_stack() has been changed to use
    reverse_list().
  - The function free_name_list() has been changed to free
    parameters if a function has been redeclared.
  - The function in eval_name_list() has been changed to stop
    evaluating parameters after an error.
- The function free_params() has been moved from name.c to entutl.c.
  It is called from close_current_stack() and free_local_consts() to
  free properties and params. The call from free_local_consts() has
  been added.
- In dcllib.c in the function dcl_elements() the declaration of
  struct types has been improved:
  - Now the stack is always grown and pushed before evaluating
    local_decls (which contains the struct element declarations).
  - Now an EXCEPTION_RAISED error is triggered if the evaluation of
    local_decls raises an exception.
  - Now an DECL_FAILED error is triggered if a struct element has no
    syobject.
- The file prclib.c has been improved:
  - The functions prc_cpy() and prc_create() have been improved to
    use the usage_count of block elements.
  - The function prc_destr() has been added.
  - The function evaluate_local_decls() has been changed to use
    prc_semicolon instead of prc_noop.
  - The functions prc_res_begin() and prc_res_local() have been
    changed to completely free result_var in case of an error.
  - A test, if the argument vector is NULL, has been added to
    prc_args().
  - In prc_local(), prc_res_begin(), prc_res_local(), the order of
    free calls for block components has been changed.
- The file blockutl.c has been improved:
  - In free_block() the order of free calls for block components has
    been changed.
  - The function reverse_loclist() has been added. The function
    reverse_loclist() is used in free_loclist() to reverse the local
    list before removing list elements.
  - The function free_local_consts() has been improved to use
    reverse_list().
  - The function free_locobj() has been changed to non-static. In
    prclib.c calls of free_name() have been replaced with calls of
    free_locobj().
- In objutl.c the function dump_temp_value() has been improved to
  free FORMPARAMOBJECT objects. The usage_count of a BLOCKOBJECT
  is now considered as well.
- In findid.c the function check_list_of_syntax_elements() has been
  renamed to list_of_syntax_elements_okay(). This function is used
  by def_statement_syntax().
- In listutl.c the function reverse_list() has been added.
- The file data.h has been improved:
  - The macros GET_FILE_NUM() and GET_LINE_NUM() have been renamed
    to POSINFO_FILE_NUM() and POSINFO_LINE_NUM() respectively.
  - The new macros PROPERTY_FILE_NUM() and PROPERTY_LINE_NUM() have
    been introduced.
  - The STRUCT_OWNER flag has been added. The STRUCT_OWNER flag is
    set for the object which owns a certain structValue. Other
    objects do not own the structValue.
  - The EMBEDDED flags has been added. The EMBEDDED flag is set for
    all objects inside arrays and structs.
  - The new category ILLEGALOBJECT has been introduced. The system
    variables are initialized with dummy ILLEGALOBJECT values in
    syvarutl.c. The usage of a system variable with a dummy
    ILLEGALOBJECT triggers an error.
  - A usage_count has been added to blockStruct.
  - The typeStruct element 'interfaces' has been changed from
    typeListType to listType.
  - The type typeListType has been removed. The corresponding heap
    statistic has been removed from heaputl.h and flistutl.c.
- The files infile.c, sctlib.c and itflib.c have been refactored to
  use unlikely() for exception conditions.
- In itflib.c the functions itf_cpy(), itf_cpy2(), itf_create(),
  itf_create2() and itf_to_interface() have been changed to transfer
  the ownership of a structValue to a new object.
- In itflib.c in functions raising an exception the variable
  interface_exec_object has been added and used in calls of
  raise_with_obj_and_args().
- In sctlib.c in functions raising an exception the variable
  struct_exec_object has been added and used in calls of
  raise_with_obj_and_args().
- In sctlib.c the function sct_destr() has been refactored to use
  old_value instead of arg_1(arguments).
- In arrlib.c in functions raising an exception the variable
  array_exec_object has been added and used in calls of
  raise_with_obj_and_args().
- The file arrlib.c has been refactored to use else parts after
  if-statements are checking for an error.
- In arrlib.c the functions arr_baselit(), arr_baselit2(),
  arr_extend(), arr_gen(), arr_idx(), arr_insert(), arr_push(),
  arr_remove() and arr_times() have been changed to set and clear
  the EMBEDDED flag for array elements.
- In str_rtl.c the function ustriCmpGeneric() has been introduced
  and the function ustrCreateGeneric() has been renamed to
  ustriCreateGeneric().
- In rfllib.c the function rfl_expr() has been improved to set file
  and line of enumeration literals.
- In reflib.c a NULL check has been added to ref_issymb().
- In reflib.c the function ref_append_params() has been added.
- In typlib.c the function typ_interfaces() has been added.
- In prglib.c the functions prg_cmp(), prg_eval_with_args() and
  prg_hashcode() have been added.
- In infile.c the function speedup() has been improved to only call
  mmap() if the file size is not 0. The function mmap() would fail
  for a size of 0.
- In scanner.c the function scan_eof() has been improved to leave
  in_file.line unchanged in case of an EOF_ENCOUNTERED error. This
  way an EOF_ENCOUNTERED error writes the last line of a file.
- In analyze.c the function declAny() has been changed to trigger an
  EXCEPTION_RAISED arror instead of a fatal memory error.
- In analyze.c in the function analyzeFile() the length of
  sourceFilePath is now reduced with strHeadAssign(). This avoids a
  problem if followLink() changes sourceFilePath before it is freed.
- In parser.c the function decl_const() has been improved to set
  file_number and line from in_file if they are 0 in the object.
- In parser.c commented out code has been removed.
- The file error.c has been improved:
  - The function storeLineOfCurrentFile() has been improved to
    support writing an error line below.
  - The function storePositionedErrorLine() has been improved to set
    errorLine to "" in case of an unknown file.
  - The function setPlaceForObject() has been removed.
  - The function setPlaceAndLine() has been introduced. Several
    calls of setPlaceAndLine() have been added.
  - The function err_type() has been changed to use an objectType
    parameter. This improves the place of the PROC_EXPECTED error
    messages.
  - The function err_existing_obj() has been improved to assure that
    'descriptor.property' is present before accessing it.
- In msg_stri.c the function appendType() has been improved to use
  a recursive call for function types.
- In match.c the functions match_subexpr_var() and
  match_subexpr_const() have been changed to use the objectType
  parameter 'type_match_obj' instead of typeType parameter
  'object_type'.
- In match.c the function match_subexpr_param_attr() considers now
  that the parameter f_param_type might be NULL.
- The file executl.c has been improved:
  - The function destr_interface() has been introduced. This
    function is used by itf_destr() and sct_destr(). It is called
    to free the struct object value of an INTERFACEOBJECT. It frees
    the structValue if the usage_count is 0. Non-embedded struct
    objects without property are removed as well.
  - The functions get_create_call_obj(), get_destroy_call_obj(),
    type_create_call_obj(), type_copy_call_obj(),
    type_ord_call_obj(), type_in_call_obj() and
    type_value_call_obj() have been improved to work if err_info
    is not OKAY_NO_ERROR. The variable copy_err_info is used for
    calls of copy_expression().
  - The function free_array() has been introduced. It frees an array
    only if all elements are unused.
  - In executl.c the functions sct_elem_initialisation() and
    arr_elem_initialisation() have been changed to set the EMBEDDED
    flag for all elements.
- In exec.c the function exec_dynamic() has been improved to check
  if element_value == NULL.
- In exec.c in the function exec_action() a check for ACT_ILLEGAL
  has been added. This code is conditionally compiled if the macro
  WITH_ACTION_CHECK is TRUE.
- In runerr.c the function raise_with_obj_and_args() has been
  improved free the previous fail_expression.
- The checks for category have been refactored:
  - In runerr.c the functions run_error(), empty_value() and
    var_required() have been renamed to categoryRequired(),
    emptyValue() and varRequired() respectively.
  - In runerr.h the macros category_required(), empty_value() and
    var_required() have been introduced.
  - In objutl.h the macro run_exception() has been renamed to
    expected_category().
  - In the files itflib.c, objutl.c, objutl.h, pollib.c, prog_comp.c
    and reflib.c all calls of run_error() and run_exception() have
    been replaced with calls of category_required() and
    expected_category() respectively.
- In gkb_emc.c, gkb_win.c and gkb_x11.c the function
  gkbCloseKeyboard() has been introduced. This function frees
  resources associated with a graphic keyboard.
- Functions in prg_comp.c have been improved such that prgDestr()
  frees objects and lists created by prgMatchExpr().
- The file prg_comp.c has been improved:
  - The functions free_list_objects(), prgCpyGeneric(),
    prgCreateGeneric(), prgDestrGeneric() and prgEvalWithArgs() have
    been added.
  - The function prgSysvar has been changed to assure that a system
    variable is not an ILLEGALOBJECT.
  - The function prgDestr() has been improved to set
    interpreter_exception to TRUE while data is freed.
- In typ_data.c the function typInterfaces() has been added. This
  function returns an array of interface types which implement a
  given type.
- In ref_data.c the function refAppendParams() has been added.
- In ref_data.c the function refAlloc (called for the action
  REF_ALLOC) has been improved to allocate a copy of the property.
- Now objects created by refAllocVar() are freed by prgDestr().
- In chkccomp.c the detection of the NORETURN macro has been
  improved and the determination of STRCMP_RETURNS_SIGNUM has been
  added.
- In traceutl.c the functions printObjectName and printLocList()
  have been added.
- In traceutl.c the function printformparam() has been improved to
  print symbol parameters.
- The files read_me.txt and read_me.htm have been updated.
- Support for the actions PRG_CMP, PRG_EVAL_WITH_ARGS, PRG_HASHCODE,
  PRC_SEMICOLON, REF_APPEND_PARAMS and TYP_INTERFACES has been added
  to interpreter and compiler.
- Support for the action PRC_DESTR has been added to the
  interpreter.
- The actions PRC_VARFUNC and PRC_VARFUNC2 have been renamed to
  PRC_RETURN_VAR and PRC_RETURN_VAR2 respectively.
- The makefiles have been improved to create the s7check executable
  with 'make utils'.
- In bas7.sd7, bigfiles.sd7, calc7.sd7, castle.sd7, comanche.sd7,
  diff7.sd7, dnafight.sd7, find7.sd7, findchar.sd7, ftp7.sd7,
  ftpserv.sd7, hd.sd7, lander.sd7, mahjong.sd7, make7.sd7,
  mandelbr.sd7, pairs.sd7, panic.sd7, planets.sd7, portfwd7.sd7,
  s7c.sd7, savehd7.sd7, shisen.sd7, sokoban.sd7, sql7.sd7,
  sudoku7.sd7, sydir7.sd7, tar7.sd7, tet.sd7, tetg.sd7, toutf8.sd7,
  wator.sd7 and which which.sd7 the address of the Seed7 homepage
  has been changed to https://seed7.net .
- Logging functions have been added or improved in actlib.c,
  arrlib.c, blockutl.c, big_rtl.c, dcllib.c, enulib.c, error.c,
  exec.c, executl.c, hshlib.c, infile.c, itflib.c, match.c, name.c,
  prclib.c, prg_comp.c, runerr.c and sctlib.c.
- Documentation comments have been added or improved in aes.s7i,
  aes_gcm.s7i, arc4.s7i, bitset.s7i, blowfish.s7i, des.s7i,
  field.s7i, float.s7i, ftpserv.s7i, integer.s7i, struct.s7i,
  tdes.s7i blockutl.c, executl.c and name.c.

20250516:
- Pierre Rouleau created a seed7-mode for Emacs (see:
  https://github.com/pierre-rouleau/seed7-mode/tree/main).
- The build of Seed7 with graphics on MacOS, the keyboard drivers,
  chk_all.sd7, lander.sd7 and eliza.sd7 have been fixed. Many thanks
  to Pierre Rouleau for pointing out errors in these components.
- The example program s7check.sd7 has been added. This program is
  used by the seed7-mode of Emacs.
- In s7.c the main() function has been changed to assure that the
  program exit code is 1, when the program terminates due to an
  exception. Many thanks to Pierre Rouleau for pointing out that
  the exit code was 0.
- Pierre Rouleau added a .gitignore file.
- Support for JSON serialization / deserialization has been added
  with the new library json_serde.s7i.
- An explanation, how Seed7 syntax highlighting can be introduced to
  editors, has been added to the FAQ.
- The new library struct_elem.s7i with structElement functions has
  been added. The type structElement describes an element of a
  struct. The function elements(aStructType) returns an array
  structElement.
- In the library struct.s7i the flag isStructType() and the function
  elements() have been added for all struct types.
- In the library enumeration.s7i the flag isEnumType() has been
  added for all enumeration types.
- A chapter about structElement has been added to the manual.
- The chapter about symbol parameters in the manual has been
  improved.
- The french characters Œ, œ and Ÿ have been added to bitmap- and
  vector-fonts.
- The Seed7 compiler (s7c.sd7) has been improved:
  - The option -h has been added (it has the same meaning as -?).
    Pierre Rouleau pointed out that under zsh, the -? option of s7
    and s7c is intercepted by the zsh shell and not passed to the
    Seed7 commands.
  - Support for the compilation of DYNAMIC functions with
    STRUCTELEMOBJECT has been added (this is used by the
    serialization / deserialization library).
  - Unnecessary switch statements and unnecessary switch case parts
    have been removed from dynamic decisions.
  - Support for reference and structElement constants has been
    added.
  - Support for str(aType) in compiled programs has been added.
  - In case of an exception nothing is appended to c_expr.expr. Some
    callers use c_expr.result_expr instead of c_expr.expr and
    appending to c_expr.expr can confuse them.
  - In lib/comp/int_act.s7i the condition for the inlining of random
    functions has been corrected.
  - The boolean flag calls_dcl_actions and the hash maps
    function_with_dcl_actions and function_not_declared have been
    added. The two new hash maps replace the hash map
    function_not_declared, which has been removed.
  - The compiler version number has been raised to 3.4.
- The Seed7 compiler (s7c.sd7) has been refactored:
  - Tables of constants have been moved into the programConstants
    struct.
  - Flags for used libraries have been moved into then
    programUsesLibrary struct.
  - Statistical counters have been moved into the compilerStatistic
    struct.
  - Configuration data has been moved into the compilerConfig
    struct.
  - Type related hash tables have been moved into typeDataStruct.
  - The hash tables interfaceOfType, literal_function_of_enum_used,
    times_prototype_declared and times_prototype_declared have been
    moved into typeDataStruct.
  - Hash tables related to the copy, destr and create operations
    have been moved into typeDataStruct.
- The program lander.sd7 has been improved to avoid an exception if
  's' is typed during a landing operation.
- The program eliza.sd7 has been improved to avoid an infinite loop
  after ctrl-D has been pressed.
- In calc7.sd7 the error position for Unicode and double width
  characters has been improved. An unnecessary line continuation at
  the end of a string literal has been removed as well.
- The function startPipe() has been added to the process.s7i
  library.
- In chkerr.sd7 tests for APOSTROPHE_EXPECTED and
  WRONG_NUMERICAL_ESCAPE have been added.
- In chkjson.sd7 tests for getJsonString(), structElement functions
  and for JSON serialization / deserialization have been added.
  The program chk_all.sd7 has has been adjusted to consider the
  changes in chkjson.sd7.
- The function path(), which returns the absolute file path of a
  referenced object, has been added to the progs.s7i library.
- The function structSymbols() has been added to the progs.s7i
  library.
- The library editline.s7i has been improved to avoid calls of
  write() and moveLeft() with an empty string.
- In pixmap_file.s7i the management of fontFile.column has been
  improved.
- In window.s7i the function moveLeft() has been changed to call
  moveLeft() for the underlying out_file.
- In category.s7i the new object category STRUCTELEMOBJECT has been
  introduced.
- In seed7_05.s7i support for ignore() with an f_param parameter has
  been added.
- In stdfont8.s7i, stdfont9.s7i, stdfont20.s7i and cronos16.s7i
  character images have been improved.
- Interpreter and compiler have been improved to support the actions
  PCS_START_PIPE, PRG_STRUCT_SYMBOLS, REF_PATH, SEL_CMP, SEL_CONV1,
  SEL_CPY, SEL_CREATE, SEL_EQ, SEL_HASHCODE, SEL_NAME, SEL_NE,
  SEL_SYMB and SEL_TYPE.
- The program chk_all.sd7 has been improved to use startPipe()
  instead of pipe2().
- In analyze.c the function analyzeProg() has been improved to
  assure that errorFile is not a closed file.
- In analyze.c the function analyzeFile() has been improved to
  determine the absolute path and to avoid that 'isOpen' is used
  uninitialized.
- Support for absolute paths in inFileStruct has been added:
  - In infile.c the parameter absolutePath has been added to the
    function openInfile(). Calls of openInfile() in analyze.c and
    libpath.c have been adjusted.
  - In infile.c the functions get_file_path() and objectFilePath()
    have been added.
  - In infile.c the function openBString() has been improved to
    initialize in_file.path.
- In literal.c a parameter has been removed from skip_lines().
- In name.c the function close_current_stack() has been improved to
  change a freed BLOCKOBJECT to ACTOBJECT with ACT_ILLEGAL.
- In dcllib.c the function dcl_global() has been improved to move
  the currently declared object to the end of the local_object_list.
  This assures that the function close_current_stack() can use
  destructor functions from types introduced in a local variable
  declaration.
- In match.c the function substitute_params() has been improved:
  - A substitution for STRUCTELEMOBJECT objects has been added.
  - For EXPROBJECT, VALUEPARAMOBJECT and REFPARAMOBJECT objects
    the substitution with the data.owner object has been removed.
- In error.c several function declarations have been changed to
  define parameters with 'const const_striType' instead of
  'striType'.
- In msg_stri.c the error handling in appendChar() has been fixed.
- In heaputl.h and other files the heap statistic has been improved:
  - The macro FREE_STRI() has been renamed to FREE_STRI2() and
    a new FREE_STRI() macro with one parameter has been introduced.
  - The macro HEAP_FREE_STRI has been changed such that it works if
    WITH_STRI_CAPACITY is 0.
  - The heap statistic of the string reallocation has been
    refactored. The macros REALLOC_STRI_SIZE_SMALLER,
    REALLOC_STRI_CHECK_SIZE and REALLOC_STRI_SIZE_OK have been
    renamed to REALLOC_STRI_SIZE_SMALLER2, REALLOC_STRI_CHECK_SIZE2
    and REALLOC_STRI_SIZE_OK2 respectively. The new macros
    REALLOC_STRI_SIZE_SMALLER, REALLOC_STRI_CHECK_SIZE and
    REALLOC_STRI_SIZE_OK without l1 parameter have been introduced.
  - Except for heaputl.h all calls of the macro COUNT3_STRI have
    been removed.
  - In some heaputl.h macros 'len' parameters have been renamed to
    'unused'.
  - In some heaputl.h and big_rtl.c macro definitions the actual
    macro parameters have been changed to '**not-used**'.
- In flistutl.c the function compute_hs() has been refactored.
- Changes have been done in cmd_rtl.c and str_rtl.c to allow that
  WITH_STRI_CAPACITY is 0.
- In exec.c the interpreter has been improved to raise ACTION_ERROR
  if an endless recursion in a DYNAMIC function occurs.
- In ref_data.c the functions refPath() and refSymb() have been
  added.
- In ref_data.c the function refValue() has been improved to work
  for STRUCTELEMOBJECT.
- In reflib.c the function ref_path() has been added.
- The files sellib.c and sellib.h have been added.
- In flt_rtl.c, fil_rtl.c and numutl.c the number of C compiler
  warnings has been reduced.
- In prclib.c a condition in the function prc_while_noop() has been
  changed to avoid a possible use of the uninitialized variable
  cond.
- In sctlib.c the function sct_incl() has been changed to set
  elem->value to zero after it has been moved to the struct.
- In prglib.c the function prg_struct_symbols() has been added.
- In prg_comp.c the functions addStructElement() and
  prgStructSymbols() have been added. The function
  addStructElement() is called from dcl_elements() in dcllib.c.
- In striutl.c the function copy_stri() has been added. This
  function is used in analyze.c and infile.c.
- In con_emc.c, emc_utl.c, emc_utl.h and gkb_emc.c the browser
  keyboard support has been refactored:
  - KEY_ID_... macros have been introduced.
  - Support for the keys f13 to f24 has been added.
  - If a non-control key is pressed a possible set altKey flag is
    ignored.
- In big_rtl.c redundant prototype declarations have been removed.
- In kbd_inf.c and kbd_poll.c the function kbd_init() has been
  improved:
  - The IXON flag is cleared (the XON/XOFF flow control is
    disabled).
  - The ISIG flag is cleared (no signal is sent on INTR, QUIT, SUSP,
    or DSUSP).
  - The IEXTEN flag is cleared (no implementation-defined input
    processing takes place).
  - The VDISCARD character is set to -1.
- In kbd_inf.c in the function read_utf8_key() the comparisons have
  been simplified.
- The program chkccomp.c has been improved:
  - Now it searches in /opt/homebrew/include for X11/X.h.
  - The search for the Xrender library has been improved.
  - The test program for Xrender has been changed to unconditionally
    return 1.
  - If X11_LIBRARY_PATH is defined absolute library paths are now
    added to the X11_DLL and X11_XRENDER_DLL macros.
  - The function describeLibrary() has been added to describe
    statically linked dynamic libraries.
  - Local variables and parameters have been renamed to avoid
    warnings about shadowing of global variables.
- The makefiles mk_osx.mak and mk_osxcl.mak have been changed to
  allow the replacement of system headers (e.g. the include file
  for Xrender).
- In all makefiles the target 'check' has been added. The targets
  'check' and 'test' both run the test suite.
- In str_rtl.c the functions ustrCreateGeneric() and ustriHash()
  have been added. These functions are used in the compiler
  (s7c.sd7) to handle DYNAMIC function decisions by structElement.
- In tim_unx.c and tim_win.c a check that micro_sec is in the
  allowed range has been added.
- In pcs_unx.c and pcs_win.c checks for process == NULL have been
  added to pcsExitValue(), pcsIsAlive() and pcsWaitFor().
- In pcs_unx.c and pcs_win.c code to close and free process pipline
  files (stdin, stdout and stderr) has been added to pcsFree(). The
  corresponding code in pcsDestr() (in pcs_rtl.c) has been removed.
- The function drawClose() has been added to drw_dos.c, drw_emc.c,
  drw_win.c and drw_x11.c.
- In common.h the macro unsignedFitsInIntType() has been introduced.
  The macro is used in prg_comp.c and sql_lite.c to silence a
  warning.
- The files read_me.txt and read_me.htm have been updated.
- Parameter names in the header files arr_rtl.h, bst_rtl.h,
  cmd_rtl.h, common.h, con_rtl.h, datautl.h, db_fire.h, db_oci.h,
  db_tds.h, error.h, fil_rtl.h, hsh_rtl.h, infile.h, int_rtl.h,
  itf_rtl.h, msg_stri.h, objutl.h, rfl_data.h, set_rtl.h, soc_rtl.h,
  sql_rtl.h, str_rtl.h, symbol.h and typ_data.h have been changed to
  fit to the prototypes in the corresponding C source files.
- Logging functions have been improved in blockutl.c, drw_x11.c,
  exec.c, fil_rtl.c, flt_rtl.c, fwd_term.c, fwd_x11.c, infile.c,
  name.c, pcslib.c, pcs_rtl.c, pcs_unx.c, pcs_win.c, prg_comp.c,
  reflib.c, soc_rtl.c, tim_rtl.c and ut8_rtl.c.
- In hsh_rtl.c, infile.c, prclib.c and prg_comp.c commented out
  printf() calls have been removed.
- In con_inf.c the functions inf_beep(), inf_standardcolour() and
  inf_setfont() are deactivated as OUT_OF_ORDER.
- The unused functions textcolumns(), textheight() and textwidth()
  have been removed from con_cap.c, con_con.c, con_cur.c, con_dos.c,
  con_inf.c, con_tcp.c, con_wat.c, con_win.c and con_x11.c.
- In error.h and and progs.s7i the parsing errors COMMENTOPEN,
  FILENOTFOUND, WRONGACTION, CARD_DECIMAL_TOO_BIG, NEGATIVEEXPONENT,
  DIGITEXPECTED, CARD_WITH_EXPONENT_TOO_BIG, EXTDIGITEXPECTED,
  ILLEGALBASEDDIGIT, CARD_BASED_TOO_BIG, APOSTROPHEXPECTED,
  CHAREXCEEDS, STRINGESCAPE, WRONGNUMERICALESCAPE,
  BACKSLASHEXPECTED, STRINGEXCEEDS, NAMEEXPECTED, CARD_EXPECTED,
  STRI_EXPECTED and OBJTWICEDECLARED have been renamed to
  UNCLOSED_COMMENT, INCLUDE_FILE_NOT_FOUND, UNDEFINED_ACTION,
  INTEGER_TOO_BIG, NEGATIVE_EXPONENT, DIGIT_EXPECTED,
  INTEGER_WITH_EXPONENT_TOO_BIG, EXTENDED_DIGIT_EXPECTED,
  ILLEGAL_BASED_DIGIT, BASED_INTEGER_TOO_BIG, APOSTROPHE_EXPECTED,
  CHAR_EXCEEDS, ILLEGAL_STRING_ESCAPE, WRONG_NUMERICAL_ESCAPE,
  WRONG_STRING_CONTINUATION, STRING_EXCEEDS, NAME_EXPECTED,
  INTEGER_EXPECTED, STRING_EXPECTED and REDECLARATION respectively.
  The program chkerr.sd7, the manual and the homepage have been
  adjusted to use the new error names.
- Documentation comments have been improved in float.s7i,
  reference.s7i, stdio.s7i, string.s7i and reflib.c.

20250325:
- The compilation with s7c has been fixed. Many thanks to
  Cheap-Ad9743 for pointing out that the linker issued the error
  "undefined symbol 'objectFileName'" under Windows.
- An answer concerning the minimum array index has been added to the
  FAQ.
- The new test program chkerr.sd7, which checks for parsing errors,
  has been added. The program chk_all.sd7 has been adjusted to
  consider the new program chkerr.sd7.
- The library zip.s7i has been improved to use code page 437 if the
  flag ZIP_FILE_NAME_IS_UTF8 is not set.
- The library zip.s7i has been improved to support the decryption of
  encrypted ZIP files.
- In charsets.s7i the cp_*g code pages have been changed to map all
  control characters to graphic characters.
- The set ascii_control_char has been added to chartype.s7i.
- The handling of error messages in calc7 has been improved to use
  the function getError().
- The exception handling in calc7 has been improved to include
  DATABASE_ERROR, GRAPHIC_ERROR and ILLEGAL_ACTION.
- Support for the function str(aFloatNumber, SCIENTIFIC) has been
  added to float.s7i. The function converts a float to a string in
  scientific notation where trailing zeros in the fractional part
  are omitted.
- Tests for the function str(aFloatNumber, SCIENTIFIC) have been
  added to chkflt.sd7.
- Tests for based integer literals have been added to chkint.sd7.
- In chkjson.sd7 tests have been added for the function category(),
  when it is applied to jsonObject and jsonArray elements.
- In integer.s7i and string.s7i the operator lpad0 has been changed
  such that padSize refers to the number of digits (without sign).
  For numbers without + or - sign the behavior of lpad0 stays the
  same.
- The tests of lpad0 in chkint.sd7 and chkstr.sd7 have been adjusted
  to the new behavior of the lpad0 operator for negative numbers.
- The time.s7i functions str(), strDate(), strDateTime(),
  str_yyyy_mm_dd(), str_yy_mm_dd(), str_mm_dd_yyyy(),
  str_mm_dd_yy(), str_dd_mm_yyyy(), str_dd_mm_yy(), str_d_m_yyyy()
  and str_d_m_yy() now insert a sign for negative years. Besides
  that the number of year digits stays unchanged. This is a
  consequence of the changed behavior of the lpad0 operator.
- The test program chktime.sd7 has been adjusted to use the new
  behavior of the time to string conversion functions.
- In progs.s7i in the functions parseFile() and parseStri() the
  'protFileName' parameter has been replaced by a 'errorFile'
  parameter.
- In progs.s7i the functions parseStri() with a bstring parameter
  have been added.
- Support for the function getError() has been added to progs.s7i.
- In syntax.s7i the new system variable f_param has been introduced.
- The parsing error test file err.sd7 has been improved.
- The Seed7 compiler (s7c.sd7) has been improved:
  - Definitions of propertyType and descriptorUnion have been added
    to the generated C code.
  - The function assignArrayValue has been improved.
- The configuration values USE_ID_NAME_CHUNK_ALLOCS,
  HEAP_STATISTIC_AT_PROGRAM_EXIT, SHOW_OBJECT_MEMORY_LEAKS,
  WITH_BIGINT_CAPACITY and WITH_PROPERTY_FREELIST have been added
  to config.h.
- Memory leaks in the parser have been fixed. The leaks have been
  fixed in expr.c, name.c, parser.c and prclib.c.
- Several improvements have been done in name.c:
  - The function get_object() has been changed to set
    defined_object to NULL if an object is declared twice.
  - The functions free_name() and free_form_param_list() have been
    added.
  - The parameters file_number and line have been added to
    eval_name_list().
  - In match_name_list() and eval_name_list() parameters are only
    appended to matched_name_list or name_list if no error occurred.
  - The functions find_name() and search_name() have been changed
    to use pop_stack() (which frees objects) instead of
    down_stack().
  - The functions dollar_parameter() and dollar_inst_list() have
    been improved to fix memory leaks in case of a parsing error.
- The function eval_expression() has been removed from exec.c and
  the function eval_type() has been added to name.c as a
  replacement.
- In parser.c the function decl_value() has been improved to free
  init_expression with free_expression().
- In parser.c the function decl_name() has been improved to free
  object_name with free_expression().
- In numlit.c in the function readFloat() the code to read float
  literals has been refactored.
- In symbol.c the function close_symbol() has been improved to free
  the bigInteger symbol value.
- In actutl.c the function freeActPtrTable() has been added.
- In literal.c the function skip_lines() has been added. This
  improves the test for string continuations. The error messages
  for string continuations have been improved as well.
- In scanner.c the functions skip_whitespace(), skip_char() and
  skip_past_char() have been added. They are used in analyze.c
  and expr.c to skip over characters if an error has been detected.
- In scanner.c the function scan_eof() has been improved to count
  the lines correctly if EOF is not preceded by a newline.
- Several improvements have been done in prg_comp.c:
  - The functions free_obj_and_prop(), prgBStriParse() and
    prgGetError() have been added.
  - The function interpret() has been improved to free the arguments
    array after the program has been executed.
  - The functions prgErrorCount(), prgGlobalObjects(), prgMatch(),
    prgMatchExpr(), prgName(), prgPath(), prgSyobject() and
    prgSysvar() have been improved to raise RANGE_ERROR if the given
    program is NULL.
  - The function prgDestr() has been improved to free
    when_set_objects, errorFile, errorList, substituted_objects,
    when_value_objects, struct_objects, objectNumberMap,
    typeNumberMap and fileList.
- In ref_data.c the function refFile(), refNum() and refStr() have
  been refactored.
- In typ_data.c the function typNum() has been refactored.
- Several improvements have been done in analyze.c:
  - The function analyzeBString() has been added.
  - The function declAny() has been improved to process
    declExpression only if it is not NULL.
  - The function declAny() has been improved to write an error if
    an expected expression is missing.
  - The function analyzeProg() has been improved to check for a BOM
    also when strings are parsed.
  - The function analyzeProg() has been improved to always reset the
    currentlyAnalyzing flag at the end of analyzeProg().
  - A check if system variables are types or exceptions has been
    added. The errors TYPE_EXPECTED and EXCEPTION_EXPECTED might be
    triggered.
  - The function declAny() has been improved such that the parser
    executes only const declarations after a parsing error.
- In analyze.c and type.c the fail_flag is set to FALSE before
  writing the error message.
- In analyze.c, prg_comp.c, ref_data.c and typ_data.c the object-
  (objectNumberMap) and type-number map (typeNumberMap) has been
  moved to the program object (progStruct). These two maps are freed
  by prgDestr().
- In analyze.c, infile.c, libpath.c and ref_data.c the list of
  source files (fileList) has been moved to the program object.
  The source file data is freed by removeProgFiles() which is called
  from prgDestr().
- In match.c the function substitute_params() has been changed to
  gather the substituted objects (substituted_objects) in the
  program object. The objects are freed by prgDestr().
- In dcllib.c the function dcl_elements() has been improved to save
  a list of struct elements (struct_objects) in the program object.
  The struct objects and properties created by dcl_elements() are
  freed by prgDestr().
- The file error.c has been refactored to store a list of parser
  errors (errorList) in the program object. The errors can be
  fetched with the function prgGetError(). The parser errors are
  freed by prgDestr().
- In match.c the function substitute_params() has been improved to
  consider errors. The functions dcl_const() and dcl_var() call
  substitute_params() and raise the corresponding exception if an
  error is returned.
- In syntax.c the function def_statement_syntax() has been changed
  to set token_list_end to NULL if a literal is encountered instead
  of an identifier.
- The new source file msg_stri.c has been added. It contains
  functions to append various types to a string. The functions are
  used in error.c. The makefiles have been adjusted to
  compile msg_stri.c.
- The error messages SYSTEM_MAIN_MISSING (missing system declaration
  for main) and ESSENTIAL_INCLUDE_FAILED (failed to include
  essential file) have been moved from analyze.c to error.c.
- Several improvements have been done in error.c:
  - The functions freeError(), freeErrorList(), showError(),
    newError(), appendErrorToProg(), toOutputString(),
    computeColumnMarkerPos(), writeString(), writeChar(),
    writeNewline(), writeError(), finalizeError(),
    storeColumnNumber(), readLineFromCurrentFile(),
    storeLineOfCurrentFile(), storeLineFromBuffer(),
    storeLineFromFile(), findLineEndAndStoreLine(),
    storeLineOfOtherFile(), storePositionedErrorLine(),
    storeErrorLine(), setPlace(), setPlaceForObject(),
    setPlaceForFileNumber() and setPlaceOfError() have been added.
  - The functions read_ustri8_line(), print_stri(),
    read_and_print_line(), printLineOfCurrentFile(),
    printLineFromBuffer(), printLineFromFile(),
    findLineEndAndPrintLine(), printLineOfOtherFile(), print_line(),
    print_error_line(), write_place(), place_of_error(),
    write_symbol(), write_type(), write_name_list(),
    write_object_with_parameters() and write_object() have been
    removed.
  - The functions undef_err() and err_string() have been renamed to
    undefErr() and err_ustri() respectively.
  - The function ustri8_buffer_to_stri() has been refactored to
    stri8_buffer_to_stri().
- Improvements have been done in infile.c:
  - The function openInfile() has been improved to check if fopen()
    opened a directory.
  - The function openString() has been renamed to openBString().
  - The function openBString() has been improved to support the case
    that USE_ALTERNATE_NEXT_CHARACTER is 0.
  - A progType parameter has been added to get_file_name() and
    get_file_name_ustri().
  - The function objectFileName() has been added.
- In dcllib.c the functions dcl_in1() and dcl_in2() have been
  changed to return f_param with NULL if the kind of in-parameter
  is unspecified. The function eval_name_list() removes these
  f_param objects.
- In blockutl.c the function free_block() has been improved to free
  the properties of local constants.
- In blockutl.c the function free_local_consts() has been added.
  This function is used by free_block(), prc_local() and
  prc_res_local().
- The program chkccomp.c and the include file common.h have been
  improved to define FMT_E_PRECISION.
- In arr_rtl.c the function freeStringArray() has been added.
- In hsh_rtl.c the function freeGenericHash() has been added. This
  function is used by prgDestr() to free objectNumberMap and
  typeNumberMap.
- In int_rtl.c the function intLpad0() has been changed such that
  padSize refers to the number of digits (without sign).
- In str_rtl.c the functions strLpad0() and strLpad0Temp() have been
  changed such that padSize refers to the number of non-sign
  characters.
- In flt_rtl.c the functions doubleToFormatE() and
  fltStrScientific() have been added.
- Improvements have been done in big_rtl.c:
  - FREE_BIG2() has been introduced and FREE_BIG() has been
    refactored to consider the capacity.
  - A memory leak in bigLog10() has been fixed.
  - The heap statistic for bigInteger has been improved.
  - The function closeBig() has been added to big_rtl.c and
    big_gmp.c.
  - In big_rtl.c and big_gmp.c the function bigStrDecimal() has
    been introduced. This function returns NULL if there is not
    enough memory to represent the result. It is used in msg_stri.c,
    numutl.c, sql_cli.c, sql_fire.c, sql_my.c, sql_oci.c and
    sql_tds.c.
- In itflib.c the function itf_destr() allows now that
  take_struct(old_value) is NULL.
- In blnlib.c the functions bln_and(), bln_or() and bln_ternary()
  have been improved to free temporary boolean values.
- In chkbool.sd7 tests where temporary booleans are freed have been
  added.
- In cmdlib.c, sqllib.c and timlib.c an initialization of is_dst
  has been added to avoid the use of an uninitialized value in case
  of an error.
- In arrlib.c the function arr_insert() has been improved to
  consider the temp flag of an element to be inserted. A temporary
  element is made permanent and it is inserted into the array.
- in fltlib.c the function flt_str_scientific() has been added.
- In strlib.c the function str_lpad0() has been improved to call
  strLpad0Temp() or strLpad0().
- In prglib.c the functions prg_bstri_parse() and prg_get_error()
  have been added.
- The actions FLT_STR_SCIENTIFIC, PRG_BSTRI_PARSE and PRG_GET_ERROR
  have been added to primitiv.c.
- In s7.c the functions freeOptions() and main() have been changed
  to free arg_v correctly.
- Several improvements have been done in exec.c:
  - The function exec_dynamic() has been improved to avoid that the
    interpreter examines objects in the free-list. The TEMP flag is
    cleared before calling exec_call(). Afterwards the TEMP flag is
    restored with the help of a list of temp_values.
  - In the function exec_dynamic() memory is freed if
    match_prog_expression() or match_object() fails.
  - The function do_exec_call() has been improved to call
    leaveExceptionHandling() instead of using set_fail_flag(FALSE).
- In executl.c, doany.c and name.c calls of copy_expression() and
  free_expression() have been added around match_expression().
- In listutl.c the function free_expression_list() has been added.
  This function is used in prc_case(), prc_case_def(),
  prc_case_hashset() and prc_case_hashset_def() before when_values
  are turned into a SETOBJECT or HASHOBJECT.
- Several improvements have been done in prclib.c:
  - The functions prc_case(), prc_case_def(), prc_case_hashset() and
    prc_case_hashset_def() have been improved to free temporary set
    objects from the when-parts of case-statements. The set object
    data (when_value_objects and when_set_objects) is gathered in
    the program object and freed by prgDestr().
  - The functions prc_begin(), prc_local(), prc_res_begin(),
    prc_res_local(), prc_return(), prc_return2(), prc_varfunc() and
    prc_varfunc2() have been improved to free parameters, function
    results, local constants, local variables, and the function body
    if an error occurred.
  - The functions prc_repeat(), prc_repeat_noop(), prc_while() and
    prc_while_noop() have been improved to free temporary boolean
    values with FREE_OBJECT().
- In chkprc.sd7 test cases for while- and repeat-loops with
  temporary boolean values have been added.
- Several improvements have been done in data.h:
  - The flag is_type_type has been added to typeStruct. This flag
    is initialized by new_type() in typeutl.c. The flag is set by
    decl_value() in parser.c. The flag is used by eval_type() in
    name.c to assure that an expression returns a type.
  - A definition of parseErrorStruct has been added.
  - The fields fileCounter, fileList, writeErrors,
    errorFile, errorList, errorListEnd, objectNumberMap,
    nextFreeObjectNumber, typeNumberMap, nextFreeTypeNumber,
    substituted_objects, struct_objects, when_value_objects and
    when_set_objects have been added to the progStruct.
  - The field owningProg has been removed from the inFileStruct.
- In syvarutl.h the new system variable f_param has been introduced.
- In heaputl.h and flistutl.c the heap statistic has been improved:
  - Now it distinguishes between arrayType and rtlArrayType.
  - The rtl hash-tables and rtl hash-table elements are shown now.
  - The bigInteger free lists are considered now.
  - The parse errors (parseErrorRecord) have been added.
  - The list of free property elements is shown now.
  - The c1 and l1 parameters have been removed from the macro
    HEAP_REALLOC_STRI().
- In flistutl.c the functions allocObject(), freeObject() and
  listAllObjects() have been added. These functions are used if
  SHOW_OBJECT_MEMORY_LEAKS is 1.
- In flistutl.c and flistutl.h a list of free propery elements has
  been introduced. In atom.c, blockutl.c, entutl.c, name.c and
  prg_comp.c usages of ALLOC_RECORD and FREE_RECORD have been
  replaced with ALLOC_PROPERTY and FREE_PROPERTY.
- In striutl.c the function stri8_to_stri() has been introduced.
  It converts an UTF-8 encoded string to an UTF-32 encoded
  string. It is used in error.c and str_rtl.c.
- In traceutl.c the tracing has been improved in trace1(),
  printobject() and print_real_value(). The improvements consider
  SYMBOLOBJECT, INTERFACEOBJECT, UNUSED objects, properties and
  file values.
- In error.h and and progs.s7i the parser errors have been
  reordered. The errors NO_SOURCEFILE and EVAL_TYPE_FAILED have been
  removed. The errors ESSENTIAL_INCLUDE_FAILED, SYSTEM_MAIN_MISSING,
  PARAM_DECL_OR_SYMBOL_EXPECTED and EXCEPTION_EXPECTED have been
  added. The errors FALSE_INFIX_PRIORITY and FALSE_PREFIX_PRIORITY
  have been renamed to REDECLARED_INFIX_PRIORITY respectively
  REDECLARED_PREFIX_PRIORITY. The manual and the homepage have
  been adjusted to use the new error numbers.
- The AND_SO_ON_... definitions have been moved from striutl.c to
  striutl.h. They are used in msg_stri.c, numutl.c and striutl.c.
- In findid.c in the functions clean_idents() and write_idents() the
  parameter currentProg has been renamed to aProg. In the function
  wri_binary_ident_tree() the parameter aProg has been added.
- In runerr.c the function raise_with_arguments() has been improved
  to return the exception.
- In runerr.c a progType parameter has been added to
  uncaught_exception().
- In runerr.h the global variables fail_file_number and
  fail_line_number have been added. Functions in dcllib.c, parser.c
  and runerr.c have been changed to use the new variables.
- The function raise_with_obj_and_args() has been added to runerr.c.
  Several primitive actions call other primitive actions. In this
  case the global variable curr_exec_object has been changed and
  raise_with_arguments() would refer to the wrong object.
- Primitive action functions in dcllib.c, exec.c, hshlib.c and
  prclib.c have been changed to use raise_with_obj_and_args()
  instead of raise_with_arguments(). The changed functions copy
  curr_exec_object to a local variable.
- Interpreter and compiler have been improved to support the actions
  FLT_STR_SCIENTIFIC, PRG_BSTRI_PARSE and PRG_GET_ERROR.
- In con_cap.c, con_con.c, con_cur.c, con_dos.c, con_drv.h,
  con_emc.c, con_inf.c, con_rtl.c, con_rtl.h, con_tcp.c, con_wat.c,
  con_win.c and con_x11.c the name of the console function parameter
  'count' has been changed to 'numLines' to avoid shadowing a global
  declaration.
- In con_win.c and fil_win.c the name of the local variable 'count'
  has been changed to 'numEventsRead' to avoid shadowing a global
  declaration.
- In cmd_win.c the variable substituteNameLength is cast to
  memSizeType for the ALLOC_OS_STRI macro. This avoids a warning.
- Logging functions have been added or improved in analyze.c,
  arr_rtl.c, dcllib.c, error.c, exec.c, executl.c, hsh_rtl.c,
  itflib.c, msg_stri.c, name.c, parser.c, prg_comp.c, ref_data.c,
  reflib.c, sctlib.c, set_rtl.c, setlib.c, str_rtl.c, syntax.c and
  type.c.
- Documentation comments have been improved in duration.s7i,
  integer.s7i, string.s7i, time.s7i, progs.s7i, zip.s7i, big_gmp.c,
  con_cap.c, con_con.c, con_cur.c, con_dos.c, con_inf.c, con_tcp.c,
  con_wat.c, con_win.c, con_x11.c, int_rtl.c, intlib.c, match.c,
  prg_comp.c, str_rtl.c and strlib.c.

20250111:
- The answer concerning scanner functions in the FAQ has been
  improved.
- The new library scantoml.s7i with string and file scanner
  functions for TOML symbols has been added.
- SHA-3 message digest functions have been added to the
  msgdigest.s7i library.
- The new library bzip2.s7i has been added. This library supports
  the decompression of BZIP2 compressed data.
- The new library archive.s7i has been added. This library supports
  opening TAR, CPIO, ZIP, RPM and AR archives. Which archive to open
  is decided either by magic number or by the file extension.
- The library zip.s7i has been improved:
  - Support for the compression methods Shrink, Deflate64, bzip2,
    LZMA, Zstandard and XZ has been added.
  - Support for references to existing files in the archive
    (identified with compression method 92) has been added.
  - When opening a ZIP archive the ZIP magic is checked.
  - Constants for compression methods and extra field IDs have
    been introduced.
  - Corrupt extra fields are ignored now and the function
    writeExtraField() has been improved.
  - Now the functions inflate() and inflate64() are invoked with
    the file as parameter. This saves memory if the compressed data
    is huge.
  - The functions initializeFileReferenceMap, getReferencePaths,
    lzwDecompressShrink, getReference and readDataDescriptor have
    been added.
  - The write permission obtained with getFileMode() when the host
    system is DOS have been changed.
- The tar7 example program has been improved:
  - Support to list, extract and create ZIP, RPM, CPIO and AR
    archives has been added.
  - Support to list and extract BZIP2 compressed TAR archives has
    been added.
- Support for the enhanced deflate (deflate64) compression has been
  added to the library inflate.s7i.
- In inflate.s7i the functions decodeLength and decodeDistance have
  been refactored.
- In deflate.s7i the function deflateBlock() has been refactored
  and renamed to deflate(). The function deflate() now creates
  multiple deflate blocks. Calls of deflateBlock() in gzip.s7i
  have been adjusted.
- The function lzwDecompressShrink has been added to the library
  lzw.s7i.
- The decompression functions in lzw.s7i have been improved to use
  fixed size arrays.
- In bitdata.s7i the function eof() has been added for the types
  lsbInBitStream and msbInBitStream.
- In bitdata.s7i the performance of getBits(msbInBitStream) has
  been improved by 20% and the performance of
  getBits(lsbInBitStream) has been improved by 15%.
- In chkbitdata.sd7 tests for getBit() and getBits() have been
  improved and tests for bit-stream eof() have been added.
- In chktime.sd7 tests for the string to time conversion have been
  added.
- The new test program chktoml.sd7, with tests for the TOML scanner
  functions, has been added.
- Support for the CRC-32 cyclic redundancy check of BZIP2 has been
  added to the library crc32.s7i.
- In magic.s7i support for MAGIC_BZIP2 has been added to the
  function getMagic.
- The library tar.s7i has been improved to process UTF-8 paths
  only if TAR_MAGIC is okay.
- The library tar_cmds.s7i has been improved to support listing,
  extracting and creating ZIP, RPM, CPIO and AR archives.
- Support to list and extract BZIP2 compressed TAR archives has
  been added to tar_cmds.s7i.
- The library rpm.s7i has been improved to support a BZIP2
  compressed payload.
- In rpm.s7i the function readLead() has been improved to check if
  packageType is in the allowed range.
- The function xzDecompress has been added to the xz.s7i library.
- The function zstdDecompress has been added to the zstd.s7i
  library.
- The function lzmaDecompress has been added to the lzma.s7i
  library.
- The library gif.s7i has been improved to read past unknown
  extension blocks.
- The library jpeg.s7i has been improved to ignore a superfluous
  restart marker after the last ECS segment.
- The library png.s7i has been improved to only raise RANGE_ERROR
  if the CRC of a critical chunk is incorrect.
- The json.s7i library has been improved:
  - A for-each-loop which loops over the keys has been added.
  - A for-each-loop which loops over keys and values has been
    added.
  - Functions to create a JSON object have been added.
- In scanjson.s7i the function getJsonString has been refactored.
- In chkjson.sd7 the tests of getJsonString() and getJsonNumber()
  have been refactored. Tests for getJsonNumber() have been
  added.
- Tests for JSON strings with \u parts have been added to
  chkjson.sd7.
- The function createMsbHuffmanDecoder with codeLengths parameter
  has been added to the library huffman.s7i.
- In huffman.s7i the function createMsbHuffmanDecoder has been
  refactored to use a for-loop with a repeat count. The unused
  local variable currentCode has been removed.
- In ccittfax.s7i the function addCode(msbHuffmanDecoder, ...)
  has been refactored to use a for-loop with a repeat count.
- The functions ceil() and floor() have been moved from the
  math.s7i library to the float.s7i library.
- The function round10() has been added to the float.s7i library.
- The library httpserv.s7i has been improved to leave the loop
  which reads the HTTP header after the double CR LF sequence.
- The config value WITH_RTL_ARRAY_CAPACITY has been added to the
  library cc_conf.s7i and to the programs confval.sd7 and
  s7c.sd7.
- The documentation of the parse operator has been improved in
  bigint.s7i and integer.s7i.
- The documentation of the digits and sci operators has been
  improved in bigint.s7i, bigrat.s7i, float.s7i, integer.s7i and
  rational.s7i.
- The documentation of the exp operator in float.s7i has been
  improved.
- The documentation of the bin64 conversion functions in
  bin64.s7i has been improved.
- The documentation of the mode parameter in file open functions
  has been improved.
- The Seed7 compiler (s7c.sd7) has been improved:
  - Special cases of string append (&:=) now use the functions
    strAppendChMult() and strAppendZeroMult().
  - Optimizations for bytes2Int(aString, SIGNED, BE) and
    bytes2Int(aString, SIGNED, LE) have been added.
  - In arr_act.s7i the function process (ARR_IDX, ...) has been
    improved to avoid subtracting minIdx if it is zero.
- Tests for string append with the mult operator (e.g.:
  stri &:= "x" mult n;) have been added to chkstr.sd7.
- Tests for the bytes2Int(aString, SIGNED, BE) and
  bytes2Int(aString, SIGNED, LE) optimizations have been added to
  chkint.sd7.
- In filesys.s7i and osfiles.s7i the deprecated function readlink()
  has been removed. The function readLink() should be used instead.
- In unicode.s7i the deprecated functions striToUtf8() and
  utf8ToStri(), have been removed. The functions toUtf8() and
  fromUtf8() should be used instead.
- In graph.s7i the deprecated function DRAW_FLUSH() has been
  removed. The function flushGraphic() should be used instead.
- In graph.s7i the deprecated function setCloseAction() has been
  removed. Instead of setCloseAction(popupWindow, RETURN_KEY); the
  statement selectInput(popupWindow, KEY_CLOSE, TRUE); should be
  used.
- In draw.s7i the deprecated put() functions with PSET and XOR
  parameter have been removed. The functions without PSET
  respectively XOR should be used instead.
- Support for the action DRW_SET_CLOSE_ACTION has been removed from
  interpreter and compiler.
- In arr_rtl.c the logging functions have been improved.
- The files arrlib.c, arr_rtl.c, cmd_rtl.c, config.h, heaputl.h,
  libpath.c, strlib.h and str_rtl.c have been prepared for arrays
  with capacity.
- The files cmd_rtl.c, data.h and data_rtl.h have been changed to
  support the config value WITH_RTL_ARRAY_CAPACITY.
- In drw_emc.c the function reloadPage has been changed to wait for
  a quarter of a second.
- The functions strAppendChMult() and strAppendZeroMult() have been
  added to str_rtl.c.
- Documentation comments have been improved in bigint.s7i,
  bigrat.s7i, clib_file.s7i, external_file.s7i, float.s7i, ftp.s7i,
  huffman.s7i, integer.s7i, json.s7i, lzma.s7i, lzw.s7i,
  tar_cmds.s7i, fillib.c and fil_rtl.c.

20241118:
- A new Seed7 installer for Windows (seed7_05_20240812_win.exe) has
  been released. This installer correctly identifies if the Windows
  operating system is 32- or 64-bit. Many thanks to Bruce Axtens
  and Simon Dash for reporting errors caused by 32-bit Seed7
  installations (running out of memory with bigfiles.sd7 and a
  failing test with chkarr.sd7).
- In idxarray.s7i the type 'array [integer] baseType' has been
  mapped to 'array baseType'. Many thanks to Simon Dash for
  reporting that the use of 'array [integer] baseType' triggered
  errors.
- In httpserv.s7i the function getHttpRequest() has been improved to
  assure that something can be read from the socket without waiting.
- In fixarray.s7i fixed size arrays have been improved to support
  for-each-loops.
- In bitdata.s7i, the types lsbOutBitStream and msbOutBitStream have
  been introduced. These types support the functions putBit(),
  putBits(), length(), truncate(), flush() and getBytes().
- The function putBits(lsbOutBitStream) is 22% faster than the
  deprecated function putBitsLsb().
- The function putBits(msbOutBitStream) is 24% faster than the
  deprecated function putBitsMsb().
- Tests for lsbOutBitStream and msbOutBitStream have been added to
  chkbitdata.sd7. The tests check putBit(), putBits(), length() and
  truncate().
- Tests have been added to chkbitdata.sd7. The tests check the
  addition of zero bit sequences to a bit stream.
- The library lzw.s7i has been improved to use a lsbOutBitStream or
  a msbOutBitStream for the LZW compression.
- In bitdata.s7i the types lsbBitStream and msbBitStream and the
  functions openLsbBitStream and openMsbBitStream are deprecated.
  The types lsbInBitStream and msbInBitStream and the
  functions openLsbInBitStream and openMsbInBitStream should be
  used instead.
- Support for Huffman encoding has been added to the huffman.s7i
  library.
- The libraries ccittfax.s7i, gzip.s7i, huffman.s7i, inflate.s7i,
  lzw.s7i and zstd.s7i have been changed to replace the deprecated
  type lsbBitStream with lsbInBitStream. The deprecated function
  openLsbBitStrea has been replaced with openLsbInBitStream as
  well.
- The libraries ccittfax.s7i, huffman.s7i, jpeg.s7i, lzw.s7i and
  tiff.s7i have been changed to replace the deprecated type
  msbBitStream with msbInBitStream. The deprecated function
  openMsbBitStream has been replaced with openMsbInBitStream as
  well.
- Support for the dynamic deflate compression has been added to
  the library deflate.s7i.
- In deflate.s7i the functions putDistance and encodeLz77Distance
  have been refactored to use a case statement instead of an
  if-elsif-chain. This improves the performance of
  encodeLz77Distance by 30%.
- The libraries deflate.s7i and gzip.s7i have been improved to use
  a lsbOutBitStream for the DEFLATE compression.
- In inflate.s7i the function decodeDynamicHuffmanCodes() has been
  refactored.
- In inflate.s7i and ccittfax.s7i the decoder names have been
  refactored.
- In huffman.s7i, inflate.s7i and jpeg.s7i the functions
  createHuffmanTableMsb and createHuffmanTableLsb have been renamed
  to createMsbHuffmanDecoder respectively createLsbHuffmanDecoder.
- In huffman.s7i, ccittfax.s7i, inflate.s7i and jpeg.s7i the
  undocumented types msbHuffmanTable and lsbHuffmanTable have been
  renamed to msbHuffmanDecoder respectively lsbHuffmanDecoder.
- In ccittfax.s7i type, variable, parameter and function names have
  been refactored.
- In bitdata.s7i the functions putBitLsb(), putBitsLsb(),
  putBitMsb() and putBitsMsb() with a string or file as parameter
  are deprecated. The functions with the types lsbOutBitStream
  and msbOutBitStream should be used instead.
- The new library compress.s7i has been added. This library supports
  compression and decompression with PackBits (Tiff version and PDF
  version).
- The library tiff.s7i has been improved to use the new function
  fromPackBits() instead of unpackBits(). The declaration of
  unpackBits() in tiff.s7i has been removed.
- The declaration of the unused type tiffIDFEntry has been removed
  from tiff.s7i.
- The functions toAsciiHex() and fromAsciiHex() have been added to
  the library encoding.s7i.
- In encoding.s7i the function toAscii85() has been fixed to
  handle the last partial group correctly.
- In encoding.s7i the function fromPercentEncoded() has been
  improved to scale better with the string length.
- In encoding.s7i the function fromUrlEncoded has been changed to
  avoid a change of pos in a for-key-loop.
- In lzw.s7i the LZW compressions have been fixed to write the end
  code with the correct number of bits. If necessary the clear code
  is written before the end code.
- In gzip.s7i the function gzcompress() has been fixed to use the
  correct header.
- The library deflate.s7i has been improved to use 'fixLen' instead
  of 'len' for the Lz77 compression in the function deflate().
- In charsets.s7i support for PostScript Standard Encoding has been
  added.
- In charsets.s7i the code page mac_os_roman has been fixed.
- The library ico.s7i has been improved to support ICO files with
  a PNG image.
- In pbm.s7i the reading of a PBM (portable bitmap) image files
  has been fixed to avoid an INDEX_ERROR if the image width is a
  multiple of 8.
- In pbm.s7i, pgm.s7i and ppm.s7i functions to read image lines
  have been introduced. These functions use a 1D pixelArray instead
  of a 2D pixelImage array. This avoids array index checks in the
  innermost loop.
- The function setPixels() has been added to the library
  pixelimage.s7i. This function uses a 1D pixelArray parameter.
- The library ccittfax.s7i has been improved to use the function
  setPixels().
- In ccittfax.s7i the functions processCcittFaxRow(),
  processCcittT4Fax2dRow() and processCcittT4Fax1dRow() have been
  improved to use the 1D array pixelArray instead of the 2D array
  pixelImage.
- In ccittfax.s7i the fixed base array type ccittFaxValues has been
  introduced for A and B values.
- The unused functions putBits0Msb, putBits1Msb and ccittFaxDecode
  have been removed from ccittfax.s7i.
- In huffman.s7i and ccittfax.s7i the element maxBitWidth has been
  renamed to maximumCodeLength.
- In huffman.s7i the function computeSymbolsWithCodeLength() has
  been introduced. This function is used by
  createLsbHuffmanDecoder(), reduceMaximumHuffmanCodeLength() and
  createHuffmanEncoder().
- In huffman.s7i parameter and variable names have been refactored.
- In zstd.s7i the type zstdHuffmanDecodingTable() has been renamed
  to zstdHuffmanDecoder(). Variables of this type have been renamed
  from 'table' to 'decoder'.
- In hash.s7i documentation for the hash update function has been
  added.
- Tests for the hash update function have been added to chkhsh.sd7.
- In exif.s7i The function readExifData has been changed to be
  usable from png.s7i. The call of readExifData in jpeg.s7i has
  been adjusted.
- The library png.s7i has been improved:
  - The Exif orientation is considered in PNG images.
  - Support for writing PNG images has been added.
  - The function computeBytesPerPixel uses a case-statement instead
    of an if-elsif-chain.
  - Constants for the PNG color type (PNG_COLOR_TYPE_GRAYSCALE,
    PNG_COLOR_TYPE_RGB, PNG_COLOR_TYPE_PALETTE,
    PNG_COLOR_TYPE_GRAYSCALE_ALPHA and PNG_COLOR_TYPE_RGB_ALPHA)
    have been introduced.
  - The functions fillPngImageLine1Bit(), fillPngImageLine2Bit(),
    fillPngImageLine4Bit(), fillPngImageLine8Bit(),
    fillPngImageLine16Bit(), fillPngImageLine24Bit() and
    fillPngImageLine48Bit() have been introduced. The line by line
    processing of images improves the performance by up to 3%.
- The library gif.s7i has been refactored. The functions showHeader,
  showImageHeader, showExtension, readGraphicControlExtension and
  readApplicationExtension have been introduced. The type gifData
  has been introduced as well.
- The library gif.s7i has been changed to process images line by
  line. This improves the performance by 2% to 4%.
- The function readGifColorMap has been introduced in gif.s7i. This
  function is used in readHeader() and readImageHeader().
- The library tar_cmds.s7i has been fixed to write the TAR EOF
  marker just once.
- In crc32.s7i a fixed size array is used for the crc32Table.
- Some icon pictures have been added to pic32.s7i.
- In strifile.s7i the functions getwd() and getln() have been
  improved to ignore the '\r' of a "\r\n" sequence.
- Definitions of TLS extensions have been added to tls.s7i and
  showtls.s7i.
- In dialog.s7i the function bossMode() has been improved to use a
  sub-window.
- In dialog.s7i the undocumented function buttonWindow() has been
  deprecated. The function clickedWindow() should be used
  instead. The programs carddemo.sd7, klondike.sd7, pairs.sd7,
  panic.sd7 and sokoban.sd7 have been changed to use
  clickedWindow() instead of the deprecated function.
- Support for the PackBits compression has been added to calc7.sd7.
- The program castle.sd7 has been improved to store castle.dat as
  a bstring named castleData in the program.
- Several improvements have been made in the program panic.sd7:
  - Mouse clicks can be used as commands in addition to keyboard
    commands.
  - Sub-windows are used for player and monster images.
  - The await time is recomputed if it has already passed.
  - Unnecessary calls of allObjectsInvisible() and
    allObjectsVisible() have been removed.
  - The function process_command uses a case-statement instead of
    an if-elsif chain.
- Several improvements have been made in the program dnafight.sd7:
  - Selecting bacteria and starting the simulation can be done
    with the mouse.
  - Constants for line and column delta have been introduced.
  - A glitch when positioning bacteria has been fixed.
- In the program lander.sd7 a glitch in advanced lander has been
  fixed.
- Several improvements have been made in the program sokoban.sd7:
  - Mouse clicks can be used to trigger a movement.
  - Clickable buttons for commands have been introduced. This
    allows Sokoban to be played without a keyboard.
  - The congratulations have been moved from line 31 to line 13.
  - The position where a level number can be entered has been
    changed.
- In klondike.sd7 the destination places are now marked with a
  rectangle, and the bottom of the card pile is marked with a
  ring.
- In klondike.sd7 mouse wheel keys are now allowed during the
  victory animation.
- Several improvements have been made in the program pairs.sd7:
  - An exit button has been added.
  - The mouse buttons 2 to 5 are ignored.
  - A congratulation is displayed when the board is cleared.
  - Several games can be played in succession.
- A congratulation screen has been added to mahjong.sd7.
- A congratulation has been added to shisen.sd7.
- The program wator.sd7 has been improved to check if the value
  entered is a number.
- An exit button has been added to keyboard test program gkbd.sd7.
- The Seed7 compiler (s7c.sd7) has been improved:
  - The function handleOverlappingStrings() has been added to
    s7c.sd7. This function determines if the head of a new string
    is the same as the tail of the existing striChars. The old code
    searched for one character from the end of striChars. The new
    function searches for up to 8 character from the end of
    striChars. This improves the performance of this functionality
    considerably.
  - The functions write_striChars() and write_bstriChars() have
    been improved to directly write to the file c_prog (instead of
    appending the data to a string variable). This avoids a
    MEMORY_ERROR for huge string and bstring constant tables.
  - Now functions are inlined if they are undeclared and calling a
    special action.
  - In comp/arr_act.s7i the prototype declaration for the ARR_TIMES
    operator has been fixed to use the parameter elementType.
  - In comp/intrange.s7i the function getIntRange() has been
    improved to avoid a potential endless recursion with compiler
    option -oc3.
  - In comp/const.s7i the constant constantExpressionCategories
    has been renamed to basicExpressionCategories.
  - The functions isPureExpression() and equalExpressions() have
    been added to comp/const.s7i.
  - In comp/str_act.s7i the functions process_str_substr_slice,
    process_str_substr_fixlen_slice and
    optimize_str_eq_of_substr_fixlen have been introduced.
  - The index checks for the action STR_SUBSTR_FIXLEN have been
    improved.
  - In comp/bin_act.s7i and comp/int_act.s7i a slice is used for the
    optimization of BIN_BYTES_BE_2_UINT, BIN_BYTES_LE_2_UINT,
    INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT.
  - An optimization for the comparison of two fixLen sub-strings has
    been added.
  - In comp/drw_act.s7i the support for the action DRW_SET_SIZE has
    been added.
  - In comp/ref_act.s7i a REF_ADDR pointer is cast to void *.
- The function check_bstring_constants, which tests the compiler
  behavior if two bstrings overlap, has been added to chkbst.sd7.
- Tests for the comparison of two fixLen sub-strings have been added
  to chkstr.sd7 and chkidx.sd7.
- Interpreter and compiler have been improved to support the actions
  BIN_BYTES_BE_2_UINT, BIN_BYTES_LE_2_UINT and DRW_SET_SIZE.
- The library bin64.s7i has been improved to use the actions
  BIN_BYTES_BE_2_UINT and BIN_BYTES_LE_2_UINT.
- The function setSize() has been added to the graph.s7i library.
- Tests for the conversion from string to bin64 have been added to
  chkbin.sd7. The program chk_all.sd7 has has been adjusted to
  consider the changes in chkbin.sd7.
- In chkarr.sd7 the functions testFixArrayIndex() and
  testBaseArrayIndex() have been fixed to work correctly if
  POINTER_SIZE is 32.
- The function getHexDigits() has been added to scanstri.s7i and
  scanfile.s7i.
- Tests for getHexDigits() have been added to chkscan.sd7.
- In chkccomp.c the tests for setjmp and sigsetjmp have been
  improved to recognize if they always return 0.
- A mechanism to recognize timer throttling in the browser has been
  added to drw_emc.c and gkb_emc.c. A throttled program probably
  displays graphics in a newly opened tab instead of a popup.
  In this case, the old tab (where the program is running) is
  repurposed to display the graphics. To do that, the graphic
  content is moved from the newly opened tab to the old tab, and the
  newly opened tab is closed. This moves the focus from the newly
  opened tab to the tab where the program runs. This stops the
  throttling.
- Several improvements have been done in drw_emc.c:
  - The functions pointerXPos() and pointerYPos() have been improved
    to work correctly for all browser windows. To do that, they use
    getWindowLeftPos() and getWindowTopPos().
  - In the function drwOpen a heuristic has been introduced to
    decide if a popup or a tab has been opened by window.open().
    The heuristic assumes that a tab has been opened if the viewport
    scale is not 1. If the screenX and screenY position of the
    window is not at the requested place, it is also assumed that a
    tab has been opened.
  - The new function openDocumentTabAsWindow() has been introduced.
    It puts a canvas in the current browser tab and uses the canvas
    as a graphic window. When the program terminates, the current
    browser tab is reloaded.
  - The browser window property is_tab has been added. It is set by
    openDocumentTabAsWindow().
  - The function drwOpen has been improved to call
    openDocumentTabAsWindow() if window.open() opens a tab instead
    of a popup. Only the first call of drwOpen might invoke
    openDocumentTabAsWindow().
  - The function drwToTop has been improved to use canvas.focus() if
    windowObject.focus() is not available.
  - The function drwToBottom has been improved to insert the
    sub-window canvas after the main canvas. This way, it also works
    in tabs (if is_tab(parent) is TRUE). 
  - The function closeWindow has been introduced. This function is
    used by drwFree() and moveWindowToDocumentTab().
  - The function closeWindow has been improved to deregister browser
    windows when they are freed with deregisterWindowFunction().
  - The function copyWindow() has been improved to save the window
    title before the window is removed.
  - The function copyWindow() has been improved to move sub-windows
    as well. This is done with the new function moveCanvas().
  - The function removeWindowMapping() has been introduced. This
    function is used by copyWindow().
  - The function getNameFromTitle has been introduced. It gets the
    JavaScript window name from the window title.
  - The function copyWindow() has been changed to return NULL if
    it fails. The functions gkbGetc() and waitOrGetc() will raise
    the exception GRAPHIC_ERROR if copyWindow() fails.
  - The function drwGetPixmap has been refactored to work without
    local imageData variable.
  - The style position of the main canvas of a window has has been
    changed to absolute. The main canvas has been changed to be
    the first child in the document.body of the window.
  - The functions clickedWindowLeftPos and clickedWindowTopPos have
    been renamed to getWindowLeftPos respectively getWindowTopPos.
  - The functions isSubWindow(), isTab(), closeWindow(),
    moveCanvas(), removeWindowMapping(), getNameFromTitle(),
    openDocumentTabAsWindow(), moveSubWindowsToDocumentTab(),
    moveWindowToDocumentTab(), windowIsInNewTab() and drwSetSize()
    have been added.
- Several improvements have been made in gkb_emc.c:
  - Support for WebAssembly Web Worker threads of has been added.
    The macro USE_WASM_WORKERS decides if a worker thread is used.
    Due to some errors in Emscripten USE_WASM_WORKERS is currently
    set to 0. For web workers, the HTTP server needs to set some
    values in the HTTP header:
      Cross-Origin-Opener-Policy: same-origin
      Cross-Origin-Embedder-Policy: require-corp and
      Access-Control-Allow-Origin: *
    If window.crossOriginIsolated is FALSE (no web worker threads
    are available) the old code (without a worker thread) is used.
  - Touch movements are now considered as movements with a pressed
    mouse key. This is needed to support mobile phones.
  - Calls of os_exit() have been removed from the async functions
    decodeBeforeunloadEvent(), decodeFocusEvent(),
    decodeVisibilitychange() and decodeUnloadEvent(). The functions
    gkbGetc() and waitOrGetc() call os_exit() instead.
  - In gkb_emc.c the functions gkbGetc() and waitOrGetc() have been
    improved to call os_exit() or raise an exception depending on
    the variables exitOrException and emc_err_info.
  - The functions decodeTouchstartEvent(), decodeTouchendEvent(),
    decodeTouchcancelEvent(), decodeTouchmoveEvent(),
    timerIsThrottled(), checkIfWindowIsInNewTab(), timeOver(),
    timeoutWorker(), setupTimeoutPromise(), freeTimeoutPromise(),
    terminateWorker() and startWorker() have been introduced.
  - A printf() has been removed from decodeUnloadEvent().
- In pre_js.js a definition of deregisterWindowFunction has been
  added.
- In tim_emc.c the function timAwait() has been improved to
  avoid waiting for 0 milliseconds.
- In emc_utl.c, emc_utl.h, gkb_emc.c, gkb_win.c and gkb_x11.c the
  elements buttonWindow and button_window have been renamed to
  clickedWindow.
- The function drwSetSize() has been added to drw_x11.c, drw_win.c
  drw_emc.c and drw_drv.h.
- The function drw_set_size() has been added to drwlib.c and
  drwlib.h.
- In gkb_x11.c in processEvents() a case for the buttonPress event
  has been added. This case triggers that inputReady() returns TRUE
  for a buttonPress event. The default case in processEvents() has
  been changed to ignore unspecified events (e.g. DestroyNotify).
- Support for XResizeWindow has been added to fwd_x11.c, fwd_x11.h
  and x11_x.h.
- In int_rtl.c and int_rtl.h the functions uintBytesBe2UInt() and
  uintBytesLe2UInt() have been added.
- In str_rtl.c the function strCLit() has been improved to write
  octal character representations with a minimum of digits. The
  tests in chkstr.sd7 have been adjusted to the new behavior.
- The actions BIN_BYTES_BE_2_UINT, BIN_BYTES_LE_2_UINT and
  DRW_SET_SIZE have been added to primitiv.c.
- Documentation comments have been improved in bin64.s7i,
  bitdata.s7i, encoding.s7i, hash.s7i, huffman.s7i, lzw.s7i,
  strifile.s7i, drw_emc.c, hshlib.c and hsh_rtl.c.

20240812:
- A new Seed7 installer for Windows (seed7_05_20240630_win.exe) has
  been released. This installer works without a previously
  installed gcc. Many thanks to Simon Dash for reporting that the
  old Seed7 installer for Windows was aborting.
- The declaration processing for functions with parameters in name.c
  has been improved to leave original_name_list unchanged. Many
  thanks to Simon Dash for reporting an error which happened with
  array templates.
- The run-time library has been improved to reliably raise
  FILE_ERROR if gets(), getln() or getwd() are called with a write
  only file. Many thanks to Joe Thompson for pointing out that the
  chkexc.sd7 test failed with MinGW (GCC 14.1).
- The test of _wrename() and the definition of os_rename_orig has
  been removed from chkccomp.c. Many thanks to Liam O'Brien for
  pointing out that chkccomp.c could not define os_rename_orig on a
  new Windows 10 PC.
- The library jpeg.s7i has been improved to use Exif data to change
  the orientation of an image if necessary. Many thanks to
  Johannes Gritsch for pointing out that pv7 displayed some images
  with the wrong orientation.
- The new library elf.s7i has been added. This library supports the
  ELF executable and link format.
- The new library pbm.s7i has been added. This library supports the
  PBM (portable bitmap) image format in the ASCII and the binary
  version.
- The new library pgm.s7i has been added. This library supports the
  PGM (portable graymap) image format in the ASCII and the binary
  version.
- Support for the ASCII PPM (portable pixmap) image format has been
  added to the library ppm.s7i. The existing binary PPM function
  has been refactored.
- The library imagefile.s7i has been improved to support PBM, PGM
  and PPM image files in the ASCII and the binary version.
- The new library pixelimage.s7i has been added. This library
  defines the type pixelImage (2D array of pixels) and functions to
  convert (getPixmap() and getPixelImage()), rotate and mirror
  pixel images. The type pixelImage is a 2D array with a fixed
  minimum index.
- The libraries bmp.s7i, ccittfax.s7i, gif.s7i, ico.s7i, jpeg.s7i,
  png.s7i, ppm.s7i and tiff.s7i have been refactored to use the
  type pixelImage.
- Explanations about specifying number formats and what happens
  during  "make depend" have been added to the FAQ.
- The tutorial about templates in the manual has been improved.
- An explanation of the interpreter option -te (trace exceptions)
  has been added to the chapter "errors" of the manual.
- The new library exif.s7i has been added. This library supports
  the exchangeable image file format. It also defines the function
  changeOrientation() which changes an image orientation according
  to the Exif orientation value.
- In jpeg.s7i the function readEntropyCodedSegment() has been
  refactored to use getTerminatedString with '\255;' as terminator.
  This improves the performance of readEntropyCodedSegment() by a
  factor of 3. The run-time of the function readJpeg() has been
  reduced by 4.7% (measured with gcc and valgrind and the s7c
  options -oc3 -O3).
- In huffman.s7i array types with fixed minimum index have been
  introduced (huffmanSymbolArray and msbHuffmanCodeLengthArray).
  The run-time of the function readJpeg() has been reduced by 2.8%
  (measured with gcc and valgrind and the s7c options -oc3 -O3).
- The library ccittfax.s7i has been adjusted to use the types
  huffmanSymbolArray and msbHuffmanCodeLengthArray and to work
  without a generic huffmanTable type.
- A definition of the type colorLookupTable has been added to the
  library graph.s7i.
- The libraries bmp.s7i, ccittfax.s7i, gif.s7i, png.s7i and tiff.s7i
  have been refactored to use the new type colorLookupTable for
  palette values.
- The interpreter has been improved to allow the termination of a
  program with a stack trace. After pressing ctrl-c the menu allows
  selecting # (+return) to terminate the program with a stack trace.
- In basearray.s7i a times operator for arrays with a fixed minimum
  index has been added.
- In basearray.s7i the default value of arrays with a fixed minimum
  index has been fixed.
- Tests for fixed size arrays and arrays with a fixed minimum index
  have been added to chkarr.sd7.
- Support for interlaced GIF images has been added to gif.s7i.
- Support for the ThunderScan 4-bit compression algorithm has been
  added to the library tiff.s7i.
- In tiff.s7i the functions tagValueAsString() and tagValueAsArray()
  have been improved to read up to 4 bytes from valueOrOffset.
- The library tiff.s7i has been improved to use Exif data to change
  the orientation of an image if necessary.
- In jpeg.s7i the function readBlock() has been simplified.
- The types twoDataBlocksArray, fourDataBlocksArray and
  fourHuffmanTables have been introduced in jpeg.s7i. These types
  define fixed size arrays.
- The types jpegComponentArray and jpegScanArray have been
  introduced in jpeg.s7i. These types define arrays with a fixed
  minimum index.
- Magic numbers for Mach-O, PE, MZ, PBM, PGM, PPM and the shebang
  have been added to magic.s7i.
- The function getLetters() has been added to scanfile.s7i and
  scanstri.s7i.
- Tests for the function getLetters() have been added to
  chkscan.sd7.
- Support for TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 has been added
  to tls.s7i.
- The library rpm.s7i has been improved:
  - Support for file sizes >= 4GB has been added.
  - Now a unique inode number is assigned to each new RPM catalog
    entry.
  - The function rpmDependencyFlagsString() has been improved.
  - Declarations of the flags RPMFILE_NONE, RPMFILE_UNPATCHED,
    RPMFILE_PUBKEY and RPMFILE_ARTIFACT have been added.
  - The function initLead() has been added.
  - The function readLead() has been improved to read the RPM lead
    name without trailing zero bytes.
  - The new enumeration type rpmPackageType has been added.
  - The field lead.fileType has been renamed to lead.packageType.
  - The sizes of regular files and sizes of symlinks are summed up
    and stored in RPMTAG_SIZE respectively RPMTAG_LONGSIZE
    (when >= 4GB).
  - The sha-256 digest of the uncompressed payload is computed
    and stored under RPMTAG_PAYLOADDIGESTALT.
  - The new function updateDependencies() has been introduced. It
    computates RPMTAG_FILEDEPENDSX, RPMTAG_FILEDEPENDSN and
    RPMTAG_DEPENDSDICT.
  - RPMTAG_FILEDEPENDSX and RPMTAG_FILEDEPENDSN are only written if
    RPMTAG_DEPENDSDICT exists.
  - Code to read RPMTAG_DEPENDSDICT has been added to doSettings().
  - The dependencies are computed when an ELF file is added to the
    RPM archive.
  - Operators to compare rpmDependency values (with = and <> ) have
    been added.
  - The rpmDependency functions compare(), findDependency() and
    addDependency() have been added.
  - The functions updateProvisions(), updateRequirements(),
    updateDependencies(), update(), checkUncompressedDigest() and
    setDependencies() have been added.
  - The functions sectionStri() and updateStore() have been improved
    to process index entry data ordered by tag number.
  - The catalog entry elements dirIndex and fileClass have been
    changed to be zero based instead of one based.
  - The function putFile() has been improved to set file color and
    file class when an existing file is overwritten.
  - The element dirNameList has been renamed to dirNames.
  - The functions makeLink(), putFile(), makeDir(), removeFile() and
    openFileInRpm() have been changed to call archiveFilePath().
    This assures that a relative ./ path is used in the basic CPIO
    archive.
- The new library rpmext.s7i has been added. This library contains
  extensions for the rpm.s7i library. It allows getting and setting
  additional properties of an RPM archive.
- The library cpio.s7i has been improved to assign a unique inode
  number to each new CPIO header. The cpioHeader field ino has been
  renamed to inode.
- The function getStriUpToChar() has been removed from bytedata.s7i.
  The function getTerminatedString() can be used instead.
- The function terminated_read() has been added to clib_file.s7i.
- The compiler has been improved:
  - The code generation for array indexing has been fixed to work
    for a negative minIdx.
  - The array indexing for arrays with a fixed minimum index has
    been optimized.
  - Creating a two dimensional array with the times operator has
    been optimized. The run-time of the function readJpeg() has been
    reduced by 2.1% (measured with gcc and valgrind and the s7c
    options -oc3 -O3).
  - The times operator for two dimensional arrays with a fixed
    minimum index has been optimized. The run-time of the function
    readJpeg() has been reduced by 2.1% (measured with gcc and
    valgrind and the s7c options -oc3 -O3).
  - A counter for suppressed overflow checks has been added.
  - In arr_act.s7i the function declare_prototype_if_necessary()
    has been renamed to declare_times_prototype().
  - The functions isFixedMinIdxTimes() and
    two_dimensional_times_optimization() have been added to
    arr_act.s7i.
  - In arr_act.s7i subtractions of integer literals have been
    changed to insert a space after the "-" operator. This avoids
    writing "--" (which triggers a C compiler error message).
  - The functions define_array_size_variable(), process_arr_free()
    and process_sct_free() have been added to comp/destr.s7i.
  - The function process_arr_alloc() has been added to
    comp/create.s7i.
  - Support for fix size array free lists has been added in
    create.s7i and destr.s7i. This functionality is currently
    deactivated in config.s7i.
  - The function getParameterInResultStatement has been added to
    comp/expr_utl.s7i.
- The function getTerminatedString() has been added to file.s7i,
  external_file.s7i, null_file.s7i and strifile.s7i.
- Unnecessary string assignments have been removed from chkfil.s7i.
- Tests for the function getTerminatedString have been added to
  chkfil.sd7.
- Tests in chkfil.sd7 have been improved to check if bufferChar has
  the correct value after calls of getln() and getwd().
- Interpreter and compiler have been improved to support the action
  FIL_TERMINATED_READ.
- In common.h the boolean fields readingAllowed and writingAllowed
  have been added to the fileStruct.
- In the files fil_emc.c, fil_rtl.c, fil_rtl.h, fil_unx.c,
  fil_win.c, pcs_unx.c, pcs_win.c and traceutl.c initializations
  of the new fields readingAllowed and writingAllowed have been
  added.
- In fil_rtl.c the function get_mode() has been improved to
  determine readingAllowed and writingAllowed from the opening mode.
- In fil_rtl.c the parameters of get_mode() have been refactored to
  get_mode(file_mode, os_mode).
- In fil_rtl.c and utf_rtl.c the functions filGets, filLineRead,
  filWordRead, ut8Gets, ut8LineRead and ut8WordRead have been
  improved to check readingAllowed if the macro
  FREAD_WRONG_FOR_WRITE_ONLY_FILES is defined. This way, the
  functions reliably raise FILE_ERROR on an attempt to read from a
  write-only file.
- In the functions filWrite() (in fil_rtl.c) and ut8Write() (in
  utf_rtl.c) checks with system specific flags have been replaced
  with checks using the boolean value writingAllowed.
- In fil_rtl.c the call of get_mode() has been moved from
  cFileOpen() to filOpen().
- The function filTerminatedRead() has been added to fil_rtl.c.
- The function fil_terminated_read() has been added to fillib.c.
- The function free_matched_list() has been added to name.c.
- The global interpreter flag catch_exceptions has been defined in
  runerr.h.
- In prclib.c the functions prc_block(), prc_block_catch_all() and
  prc_block_otherwise() have been improved to catch an exception
  only if catch_exceptions is TRUE.
- In runerr.c the functions continue_question() and
  uncaught_exception() have been improved to allow that '#'
  terminates the program with a stack trace. In this case the global
  interpreter flag catch_exceptions is set to FALSE.
- In chkccomp.c the test to determine if fclose() fails after a
  previous error has been improved.
- The program chkccomp.c has been improved to define reparse point
  macros and the macro INVALID_FILE_ATTRIBUTES if necessary.
- Support for the option LINK_TIME has been added to chkcccomp.c and
  to makefile, mk_clang.mak, mk_freebsd.mk, mk_icc.mak,
  mk_linux.mak, mk_osx.mak, mk_osxcl.mak and mk_tcc_l.mak.
- The command "make strip" has been improved in the makefiles to
  strip Seed7 interpreter, compiler and libraries.
- A check if memcpy() with zero bytes does nothing has been added to
  chkccomp.c.
- The function findLinkerOptionForDll has been added to chkccomp.c.
  This function is used if LINK_TIME=BUILD.
- Descriptions of the packages needed for the Linux build have been
  added to src/readme.txt, src/readme.htm, doc/faq.txt and
  doc/faq.htm.
- Documentation comments have been improved in bin32.s7i, bin64.s7i,
  rpm.s7i, ppm.s7i, imagefile.s7i, ppm.s7i, scanfile.s7i,
  scanstri.s7i and fil_rtl.c.

20240630:
- Explanations about scanner functions and why some write statements
  raise RANGE_ERROR have been added to the FAQ.
- The new library json.s7i has been added. This library supports
  reading processing and writing JSON data. A JSON DOM is used to
  store the JSON data.
- A test program for JSON functions (chkjson.sd7) has been added.
- The program calc7.sd7 has been improved to support JSON functions.
- The new library magic.s7i has been added. This library supports
  getting magic numbers (signatures) from strings and files.
- The new library basearray.s7i has been added. This library
  supports arrays with a fixed minimum index.
- Tests for arrays with fixed size or fixed minimum index have been
  added to chkarr.sd7.
- A test program for scanner functions (chkscan.sd7) has been added.
- The Seed7 compiler (s7c.sd7) has been improved:
  - Support to compile dynamic functions with a type result has been
    added.
  - The compilation of an array sort has been improved to avoid
    unnecessary copying of the array.
  - The code generation for a fixed size array index access has been
    refactored.
  - The code generation for dynamic function calls has been
    refactored.
  - The optimizations for array indexing have been improved.
- Interpreter and compiler have been improved to raise INDEX_ERROR
  instead of RANGE_ERROR if indexing into a hash map fails.
- Tests for INDEX_ERROR have been added to chkhsh.sd7.
- A function to sort an array in reverse order has been added to the
  library array.s7i.
- Tests for array assignment and array sort have been added to
  chkarr.sd7.
- The program chk_all.sd7 has has been adjusted to consider the
  changes in the test suite.
- In ar.s7i, cpio.s7i, rpm.s7i, tar.s7i, tar_cmds.s7i and zip.s7i
  the function getFileMode has been improved to return only the
  permission bits.
- In tar.s7i and zip.s7i the function setFileMode() has been
  improved to only change the permission bits.
- In ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i the function
  close() has been changed to reset the file system to be empty.
- In ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i the functions
  fileType() and fileTypeSL() have been changed to return
  FILE_UNKNOWN for an unknown file type.
- The libraries ar.s7i, cpio.s7i, rpm.s7i and tar.s7i have been
  improved such that newly created files in an archive get an UID
  and GID of 0.
- The library ar.s7i has been improved to use only ASCII file names
  without a slash (/) and a length less than 16. All other file
  names are stored as long name.
- The function makeDir() has been added to ar.s7i and zip.s7i.
- The function makeLink() has been added to filesys.s7i,
  osfiles.s7i, ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i.
- Support for the function removeFile() has been added to cpio.s7i,
  rpm.s7i, tar.s7i and zip.s7i.
- In ar.s7i the function removeFile() has been improved to remove
  any file except non-empty directories.
- Support for the function readLink() has been added to ar.s7i and
  zip.s7i.
- In cpio.s7i, rpm.s7i and zip.s7i the function readLink() has been
  improved to support symlinks with UTF-8.
- In ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i the function
  fileType() has been improved to return FILE_SYMLINK if the
  symbolic link chain is too long.
- The constant MAX_SYMLINKS has been renamed to
  MAX_SYMLINK_CHAIN_LENGTH.
- The functions mkdir(), symlink() and cmd_sh() are deprecated now.
  The functions makeDir(), makeLink() and shellCmd() should be used
  instead. The parameters of makeLink() differ from the parameters
  of symlink(). The symlinkPath is the first parameter of makeLink()
  and the second parameter of symlink(). The function shellCmd()
  raises FILE_ERROR if executing the command fails.
- The files cc_conf.s7i, cli_cmds.s7i, cmd_act.s7i, cpio.s7i,
  filesys.s7i, ftp.s7i, osfiles.s7i, rpm.s7i, shell.s7i, tar.s7i,
  chkcmd.sd7, ftp7.sd7, sydir7.sd7, cmdlib.c, cmd_rtl.c and
  cmd_rtl.h have been changed to use makeDir(), makeLink() and
  shellCmd() instead of the deprected functions.
- The function implicitDir() has been added to archive_base.s7i.
  This allows removing declarations of implicitDir() from ar.s7i,
  cpio.s7i, rpm.s7i, tar.s7i and zip.s7i.
- The function isEmptyDir() has been added to archive_base.s7i. This
  function is used in ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i
  to assure that removeFile() removes only directories which are
  empty.
- The library ar.s7i has been improved to read and store the file
  mode as octal number.
- The library rpm.s7i has been improved:
  - Now, it computes dirIndex and baseName when a file is created.
  - Now, it sets the RPM file class when a file is created. This is
    done with the functions getMagic() and magicDescription() from
    the library magic.s7i.
  - The function getNameIndex() has been introduced as helper
    function.
  - User and group names are stored additionally to UIDs and GIDs.
  - Now, the function close() does not write the tag ARCHIVESIZE as
    it might overflow.
  - Support for the RMP file color (1 for 32bit ELF, 2 for 64bit ELF
    and 0 otherwise) has been added.
  - Declarations for RPMFILE flags have been added.
- The library tar.s7i has been improved:
  - Now the end-of-file marker is considered.
  - The exception FILE_ERROR is raised if the check-sum of a header
    is not okay.
  - The function setGroup(... SYMLINK) has been fixed to set the gid
    and the gname.
- The library zip.s7i has been improved:
  - Now it sets the modification time when a file is created.
  - Now, the last access time and the modification time are updated
    together.
  - The helper functions isRegularFile() and isSymlink() have been
    added.
  - The crc32 check in getFile() has been simplified.
- Symbolic link setters for mTime have been added to ar.s7i and
  zip.s7i.
- Setters for owner and group of normal files and symbolic links
  have been added to ar.s7i and zip.s7i.
- The libraries des.s7i and tdes.s7i have been improved to use fixed
  size arrays for the encryption sub keys.
- In scanfile.s7i the function getQuotedText() has been fixed to
  move past the closing quotation character.
- The function getWord(), with allowed characters as parameter, has
  been added to scanstri.s7i and scanfile.s7i.
- The library tar_cmds.s7i has been improved:
  - The functions tarTell() and tarXtract() have been improved to
    write an error message if the magic number or the check-sum is
    not okay.
  - The function tarTell() has been improved to write the file type
    indicator for all type flag values.
  - The function tarXtract() has been improved to look for existing
    files with fileTypeSL() instead of fileType().
  - Support for the extraction of symbolic links has been added.
  - The functions tarTell(), tarXtract() and tarCreate() have been
    improved to consider the end-of-file marker.
- The function isSetType has been added to bitset.s7i, bitsetof.s7i
  and hashsetof.s7i.
- The copyright notice of interpreter and compiler has been
  updated.
- Comparisons for the type void have been added to seed7_05.s7i.
- In syntax.s7i the priority of the shift operators >> and << has
  been changed from 9 to 6. Now the shift operators have the same
  priority as multiplication and division.
- Interpreter and compiler have been improved to support the action
  ARR_SORT_REVERSE.
- The functions qsort_array_reverse() and arr_sort_reverse() have
  been added to arrlib.c.
- The functions rtl_qsort_array_reverse() and arrSortReverse() have
  been added to arr_rtl.c.
- In strlib.c the functions str_toutf8() and str_utf8tostri() have
  been renamed to str_to_utf8() and str_from_utf8() respectively.
- In str_rtl.c the function strUtf8ToStri has been renamed to
  strFromUtf8().
- The actions CMD_MKDIR, STR_TOUTF8 and STR_UTF8TOSTRI have been
  renamed to CMD_MAKE_DIR, STR_TO_UTF8 respectively STR_FROM_UTF8.
- Documentation comments have been improved in array.s7i, ar.s7i,
  cpio.s7i, filesys.s7i, float.s7i, getf.s7i, hash.s7i, osfiles.s7i,
  rpm.s7i, scanfile.s7i, shell.s7i, stdio.s7i, string.s7i, tar.s7i,
  zip.s7i, cmdlib.c, cmd_rtl.c, hshlib.c and hsh_rtl.c.

20240429:
- The compilation of s7c with tcc has been fixed. Many thanks to
  Cheap-Ad9743 for pointing out that compiling s7c with tcc failed.
- Chapters about hashes and templates have been added to the manual.
- The library hash.s7i has been improved to support hash table
  literals and the comparison of hash tables with = and <> .
- The new library scanjson.s7i has been added. This library supports
  scanning (reading) JSON (JavaScript Object Notation) symbols from
  strings and files.
- The experimental readjson.s7i library has been removed.
- The new library fixarray.s7i has been added. This library supports
  arrays with a fixed size. The minimum and maximum index of these
  arrays is encoded in the type. The functions minIdx(), maxIdx()
  and length() can be used with an array or the type as parameter.
  The times operator can be used with: arrayType times elementValue.
- The library msgdigest.s7i has been refactored to use fixed size
  arrays. The reduction in run-time for some functions is md5: 6%,
  sha1: 26%, sha256: 21%, sha512: 22%.
- The library lzma.s7i has been refactored to use fixed size arrays.
  The run-time of the XZ decompression has been reduced by 10%.
- The library jpeg.s7i has been refactored to use the fixed size
  array type dataBlockType instead of array integer.
- In jpeg.s7i the restart interval handling (with mcuCount) has been
  improved.
- The libraries deflate.s7i and gzip.s7i have been refactored to use
  a fixed size array for the sliding window.
- The library aes_gcm.s7i has been refactored to use fixed size
  arrays for the factor H.
- The interface types for bitStream and huffmanTable have been
  removed. This way, bitStream and huffmanTable functions are called
  without dynamic dispatch. This change reduces the run-time of the
  function readJpeg() by 5.2% (measured with gcc and valgrind and
  the s7c options -oc3 -O3).
- The templates DECLARE_CcittModifiedGroup3Fax_FUNCTIONS,
  DECLARE_CcittT6Fax_FUNCTIONS and DECLARE_CcittT4Fax2d_FUNCTIONS
  have been added to ccittfax.s7i. The templates are instantiated
  for MSB and LSB bit ordering. This way ccittfax functions work
  without dynamic dispatch.
- A declaration of the template DECLARE_MIN_MAX has been added to
  integer.s7i. This template is used to define the functions min()
  and max() for the types bigInteger, bigRational, float, integer
  and rational (in bigint.s7i, bigrat.s7i, float.s7i, integer.s7i
  and rational.s7i respectively).
- Now non-SYMLINK getters and setters in cpio.s7i, tar.s7i and
  rpm.s7i follow relative symlinks inside the archive.
- Getters for fileMode, mTime, owner and group of symbolic links
  have been added to cpio.s7i, tar.s7i and rpm.s7i.
- Setters for mTime, owner and group of symbolic links have been
  added to cpio.s7i, tar.s7i and rpm.s7i.
- In osfiles.s7i SYMLINK setters for mTime, owner and group have
  been added for the type osFileSys.
- Setter interface functions for mTime, owner and group of symbolic
  links have been added to filesys.s7i.
- The functions removeDotFiles and symlinkDestination have been
  added to filesys.s7i.
- In encoding.s7i the functions toBase and toBase58 have been fixed
  to allow encoding "". The functions toBase and fromBase have been
  improved to work with any digit for 0 (toBase58 encodes 0 with 1).
- In scanfile.s7i the function getLineComment has been fixed to
  leave line endings unchanged.
- In scanstri.s7i the function getEscapeSequence has been fixed to
  assume that numeric escape sequences end with a semicolon (;).
  The function getNumber has been refactored as well.
- A definition of HASHELEMOBJECT has been added to category.s7i.
- The function conv2unicode in the charsets.s7i library has been
  improved to use a for-each loop.
- A declaration of the function arrayLength has been added to the
  progs.s7i library. This function is used by the compiler.
- The Seed7 compiler (s7c.sd7) has been improved:
  - The maximum and minimum values in a constant integer array are
    determined. This way the range of possible values for indexing
    into this array can be estimated. This allows for the removal of
    some overflow checks. The run-time of the function md5() has
    been reduced by 2.6% (measured with gcc and valgrind and the s7c
    options -oc3 -O3).
  - Now assignments with the times operator like
      dest := aSize times 0
    are optimized to use memset().
  - Assignments to an integer array where the source array contains
    only zeros are optimized to use memset(). The assignment does
    realloc the array if the size changes. For fixed size arrays the
    check of the size and the call of realloc is optimized away.
  - For fixed size arrays index checks are optimized away if the
    range of possible index values is always inside the array. This
    optimization reduces the run-time of the function readJpeg()
    by 7.5% (measured with gcc and valgrind and the s7c options
    -oc3 -O3).
  - Fixed size array assignments have been improved to omit the
    copy of minIdx and maxIdx (for fixed size arrays they cannot
    change with an assignment).
  - The index check for fixed size arrays has been simplified. For
    these arrays the lower and upper bounds of the index are known
    at compile time. This optimization reduces the run-time of the
    function readJpeg() by 7.9% (measured with gcc and valgrind and
    the s7c options -oc3 -O3).
  - Indexing into an array has been improved for fixed size arrays
    if the index checks are suppressed.
  - In str_act.s7i the index check for the fixLen substring
    operation (stri[start fixLen length]) has been simplified.
  - Now the division of product with mdiv is optimized. The division
    or the multiplication is removed if possible.
  - The recognition of constant expressions has been improved.
    Constants defined with a parameter list are not considered
    constant if at least one parameter is not constant.
  - The code generation in set_act.s7i has been improved to avoid
    adjacent - operators (e.g. number--1).
  - Now a generic function for user defined hashCode function is
    generated.
  - In int_act.s7i the statistic of suppressed range checks has been
    improved.
- Regression tests which create adjacent - operators in the
  generated C code have been added to chkset.sd7.
- In drw_x11.c the graphics driver has been improved to support
  window titles with Unicode.
- In chkccomp.c test programs have been improved to call
  XRenderQueryExtension() only if XOpenDisplay("") succeeded.
- In bitdata.s7i the deprecated functions getBitLsb(), getBitsLsb(),
  peekBitsLsb(), skipBitsLsb(), getBitMsb(), getBitsMsb(),
  peekBitsMsb() and skipBitsMsb() with a string as parameter have
  been removed. The functions with the types lsbBitStream and
  msbBitStream should be used instead.
- Tests for the deprecated bitdata functions with a string as
  parameter (getBitLsb, getBitsLsb, peekBitsLsb, getBitMsb,
  getBitsMsb and peekBitsMsb) have been removed from chkbitdata.sd7.
- In huffman.s7i the deprecated functions
  getHuffmanSymbolMsb(string, ...) and
  getHuffmanSymbolLsb(string, ...) have been removed. The functions
  getHuffmanSymbol(msbBitStream, ...) and
  getHuffmanSymbol(lsbBitStream, ...) should be used instead.
- In strifile.s7i the deprecated function openStrifile() has been
  removed. The function openStriFile() should be used instead.
- In stritext.s7i the deprecated function openStritext() has been
  removed. The function openStriText() should be used instead.
- The syntax of hash literals and fixed size arrays has been added
  to syntax.s7i.
- Generic hashCode functions have been introduced in big_gmp.c,
  big_rtl.c, bst_rtl.c, int_rtl.c, pcs_rtl.c, set_rtl.c and
  str_rtl.c. Function prototypes of these functions are defined
  in big_act.s7i, bst_act.s7i, pcs_act.s7i, set_act.s7i and
  str_act.s7i. Function pointers to these functions are used by
  s7c.sd7 in the function action_address.
- The functions hsh_concat_key_value, hsh_gen_hash and
  hsh_gen_key_value have been added to hshlib.c.
- The functions hshConcatKeyValue, hshGenHash and hshGenKeyValue
  have been added to hsh_rtl.c.
- The function bld_hashelem_temp has been added to objutl.c.
- Interpreter and compiler have been improved to support the actions
  HSH_CONCAT_KEY_VALUE, HSH_GEN_HASH and HSH_GEN_KEY_VALUE.
- Logging functions have been improved in drw_win.c, drw_x11.c,
  hshlib.c and sctlib.c.
- Documentation comments have been improved in array.s7i, bin32.s7i,
  bin64.s7i, cpio.s7i, hash.s7i, rpm.s7i, tar.s7i and int_rtl.c.

20240322:
- The compiler has been fixed to be able to compile itself without
  using the X11 library. Many thanks to Pietro Cerutti for pointing
  out that compiling s7c.sd7 under FreeBSD failed. Now the function
  colorPixel() is only used if there is at least one non-empty
  window object.
- In drw_x11.c the function drwRgbColor() has been improved to raise
  GRAPHIC_ERROR if it is called without a successful drawInit().
  Many thanks to Zachary Menzies for pointing out that the
  compilation of the Seed7 compiler on AlmaLinux 9 triggered a
  segmentation fault.
- In tim_win.c the function timAwait has been improved to always
  raise RANGE_ERROR on february 29th of a non-leap-year. Many thanks
  to Joe Thompson for pointing out that the chktime.sd7 test failed
  with MinGW (gcc 8.1). The program chkccomp.c has been improved to
  define the macro CHECK_NON_LEAP_YEAR_FEBRURARY_29 in version.h if
  SystemTimeToFileTime() allows february 29th of a non-leap-year.
- The file readjson.s7i with experimental functions to read JSON
  files has been added. Thanks to Bruce Axtens for driving the
  attention towards reading JSON.
- The program make7 hase been improved to support commands enclosed
  in backticks. The change has been made in cli_cmds.s7i.
- The Seed7 compiler (s7c.sd7) has been improved:
  - A heap corruption is avoided if the RHS (right hand side) of an
    assignment changes the target variable. E.g.:
      aVariable := changeParameter(aVariable);
    This has been fixed for the types string, bstring, bigInteger,
    bitset, array, clib_file, struct, window, pointList,
    sqlStatement, interface, ref_list, process, program, and
    database.
  - The generated code to handle assignments has been improved in
    arr_act.s7i, big_act.s7i, bst_act.s7i, drw_act.s7i, fil_act.s7i,
    itf_act.s7i, pcs_act.s7i, pol_act.s7i, prg_act.s7i, rfl_act.s7i,
    sct_act.s7i, set_act.s7i, sql_act.s7i and str_act.s7i.
  - In inline.s7i the function process_inline_func() has been fixed
    to define the result name. Now the inlining of a result
    expression works correctly. A test for this has been added to
    chkhsh.sd7 (function chkInlineHashKeys).
  - Now the initialization of window constants assumes an identical
    pixel encoding if the pixel masks are zero.
  - The initialization of POLLOBJECT, REFLISTOBJECT, PROGOBJECT,
    DATABASEOBJECT, SQLSTMTOBJECT objects has been improved.
  - An explanation about the use of special actions for inlining
    has been added to lib/comp/const.s7i.
- Tests for an assignment where the RHS (right hand side) changes
  the variable have been added to chkarr.sd7, chkbig.sd7,
  chkbst.sd7, chkdb.sd7, chkfil.sd7, chkflt.sd7, chkint.sd7,
  chkset.sd7 and chkstr.sd7. The program chk_all.sd7 has been
  adjusted for these tests.
- The graphic driver for the browser in drw_emc.c and gkb_emc.c has
  been improved:
  - The handling of the close button of a browser window (X) has
    been improved. In case the browser decides to delete the window
    immediately (without asking) the contents of the old window is
    copied to a new window at the same location and KEY_CLOSE is
    submitted to the program.
  - In gkb_emc.c the variable closePopupStateList and the functions
    getClosePopupState(), setClosePopupState(), isClosePopupActive()
    and leavePageWasPressed() have been added. The functions
    maintain the state after the close button (X) has been clicked
    (the closePopupState).
  - Documentation about the closePopupState has been added to
    gkb_emc.c.
  - The function decodeFocusEvent() has been added to gkb_emc.c.
  - Now drwOpen and copyWindow search for the presence of the
    JavaScript function registerWindow. If it is present, it is
    invoked with the new window as parameter. The HTML page can
    define registerWindow to maintain open windows. This way, the
    HTML page can delete open windows.
  - Now a local substitute window is opened if the browser does not
    allow a new window (popup). This is done in the function
    openSubstituteWindow().
  - The elements is_substitute and parentWindow have been added to
    the emc_winRecord struct.
  - The functions windowExists, copyWindow, clickedWindowLeftPos
    and clickedWindowTopPos have been added to drw_emc.c.
  - The functions clickedXPos and clickedYPos have been improved to
    work correctly in the browser.
  - Freeing a window object in drwFree() now sets the entries in
    mapIdToWindow, mapIdToCanvas and mapIdToContext to undefined
    (before, they were set to null).
  - In pre_js.js the strategy to determine the program name when
    a program runs in the browser has been improved.
- In keybd.s7i the deprecated functions getxpos() and getypos() have
  been removed. The function clickedXPos() and clickedYPos() should
  be used instead.
- In unicode.s7i the deprecated functions striToUtf16be(),
  striToUtf16le(), utf16beToStri(), utf16leToStri() and utf7ToStri()
  have been removed. The functions toUtf16Be(), toUtf16Le(),
  fromUtf16Be(), fromUtf16Le() and fromUtf7() should be used
  instead.
- The actions GKB_BUTTON_XPOS and GKB_BUTTON_YPOS have been renamed
  to GKB_CLICKED_XPOS respectively GKB_CLICKED_YPOS. Changes have
  been made in keybd.s7i, comp/action.s7i, comp/gkb_act.s7i,
  primitiv.c, drwlib.h, drwlib.c, drw_drv.h, drw_dos.c, emc_utl.h,
  emc_utl.c, gkb_emc.c, gkb_win.c and gkb_x11.c.
- In kbd_inf.c and kbd_poll.c the functions kbdGetc() and
  kbdInputReady() have been improved to call fflush(stdout).
- The X11 function forwarding has been improved to allow direct use
  of function pointers. Function forwarding is only used if the X11
  libraries were missing at build time. The direct use of function
  pointers can be activated by defining the macro
  FORWARD_X11_FUNCTION_POINTERS. In this case, logging of X11
  functions (that intermediate functions can do) is not possible.
  These changes introduce the file fwd_x11.h.
- In gkb_emc.c, gkb_win.c and gkb_x11.c the function
  remove_window() has been improved to call hshExcl only if the
  window_hash is not NULL.
- In drw_emc.c, drw_win.c and drw_x11.c the function
  getCloseAction() has been improved to check that actual_window
  is not NULL.
- In drw_win.c the function drwPut() has been improved to check for
  RANGE_ERROR at one place.
- Now the empty window is always a singleton. The function
  generateEmptyWindow() has been introduced in drw_x11.c and
  drw_emc.c. In drawInit() the singelton is generated with a call
  of generateEmptyWindow().
- The management of the usage counter (usage_count) for windows,
  databases and sqlStatements has been improved. Now they are
  permanent if the usage_count is 0. A usage_count of 0 will neither
  increase nor decrease. Currently only the empty window is
  permanent. The changes took place in gkb_emc.c, gkb_win.c,
  gkb_x11.c, ref_data.c, sql_cli.c, sql_oci.c, sql_post.c and
  sql_rtl.c.
- The function determineTimeFunctionProperties() has been added to
  chkccomp.c. This function checks if SystemTimeToFileTime() accepts
  2001-02-29 (which does not exist).
- The program chkccomp.c has been changed to always call
  defineX11rgbToPixelMacro() if X11 is used. This function
  determines the X11 pixel masks.
- Now the program chkccomp.c defines in version.h that GLX uses an
  absolute point list with an int size of 16-bits.
- The makefile mk_emccl.mak has been improved to call node.js with
  `which node`. Some make utilities trigger a "Permission denied"
  error if node is called directly.
- The logging in graphic drivers has been improved. Changes have
  been made in drw_emc.c, drw_rtl.c, drw_win.c, drw_x11.c, drwlib.c,
  gkb_emc.c, gkb_win.c and gkb_x11.c.
- Logging functions have been added in arr_rtl.c, drwlib.c,
  drw_rtl.c, drw_emc.c, drw_win.c, drw_x11.c, gkb_emc.c, gkb_win.c,
  gkb_x11.c, pol_unx.c, ref_data.c and sql_rtl.c.

20240301:
- Many thanks to Neal Collins for correcting the handling of double
  quotes in toCsvLine and for fixing /./../ sequences in toAbsPath.
- Many thanks to Jules Amonith for fixing a typo (Respose was used
  instead of response).
- Many thanks to Federico Ercole for helping with JavaScript issues.
  Now clicks on the close button of a browser window can be
  processed in the program (as KEY_CLOSE). Starting programs
  from HTML has been improved as well. A terminating program now
  calls the JavaScript function reloadPage (defined in the HTML
  document).
- The parser has been improved to stop parsing if the include of an
  essential file (seed7_05.s7i) fails. Many thanks to Dominik Dorn
  for reporting that a misspelled seed7_05.s7i triggered many
  errors.
- The build of Seed7 has been fixed to work if CreateSymbolicLinkW()
  is missing. Many thanks to Cheap-Ad9743 for pointing out that the
  build with tcc under Windows failed.
- The chapters about declarations, parameters, operating system
  access and graphics in the manual have been improved.
- In mahjong.sd7 the drawing of mahjong tiles has been improved.
  Now the tiles are correctly displayed in the browser as well.
- In lander.sd7 the drawing of the rocket has been improved.
  Now the rocket is correctly displayed in the browser as well.
- In osfiles.s7i the function cloneFile has been improved to copy
  symbolic links under Windows. FILE_ERROR is raised if cloneFile
  cannot create a symbolic link.
- The functions bitLength and lowestSetBit have been added to
  bin32.s7i and bin64.s7i. Tests for bitLength and lowestSetBit have
  been added to chkbin.sd7.
- The libraries pic_util.s7i, tiff.s7i and png.s7i have been
  improved to use mdiv instead of div if the divisor is a power of
  two.
- Functions for the type pointList have been refactored in graph.s7i
  and progs.s7i. Before pointList used bstring (BST_...) actions.
  Now pointList uses PTL_... actions.
- Conversion functions to convert between pointList and bstring have
  been added to graph.s7i.
- Definitions of PIXEL_ALPHA_MASK, POINT_LIST_INT_SIZE,
  POINT_LIST_ABSOLUTE and USE_START_MAIN have been added to
  cc_conf.s7i. The file cmd_rtl.c and the program confval.sd7
  have been adjusted accordingly.
- In chkstr.sd7 the checking of stri := aString[start .. stop]
  has been refactored.
- The tests of file manipulating functions in chkcmd.sd7 have been
  refactored.
- Tests in chkbig.sd7, chkbin.sd7, chkchr.sd7, chkflt.sd7,
  chkidx.sd7, chkint.sd7, chkset.sd7, chkstr.sd7 and chktime.sd7
  have been refactored to reduce the size of the functions.
- Tests have been added to chkbig.sd7, chkbin.sd7, chkchr.sd7,
  chkcmd.sd7, chkdb.sd7, chkflt.sd7, chkidx.sd7, chkint.sd7,
  chkset.sd7 and chkstr.sd7 to improve the code coverage of the
  compiler.
- Several improvements have been made for Emscripten (running Seed7
  programs in the browser):
  - In drw_emc.c the function drwText() has been improved to draw
    text with the specified background color.
  - In drw_emc.c the functions drwPArc(), drwPFArc(), drwPFArcChord()
    and drwPFArcPieSlice have been fixed to correctly draw arcs in
    the browser if the sweep angle is negative.
  - In drw_emc.c the function drwPut() has been improved to do
    nothing if the source is an empty pixmap.
  - In drw_emc.c the function drwFree() has been improved to remove
    the canvas of a sub-window.
  - The function getCloseAction has been added to drw_emc.c.
  - In fil_emc.c the call of setOsProperties has been fixed.
  - The file gkb_emc.c has been improved to allow reading KEY_CLOSE
    in the browser.
  - The event handling in gkb_emc.c has been improved. Now the
    events visibilitychange and unload are used for program
    termination. Upon program termination the JavaScript function
    reloadPage (defined in the HTML document) is called.
  - The functions decodeBeforeunloadEvent, decodeVisibilitychange and
    decodeUnloadEvent have been added to gkb_emc.c.
  - The functions startMainButtonPresent,
    addEventPromiseForStartButton, setupEventPromises,
    freeEventPromises, asyncButtonClick and
    executeStartMainOnButtonClick have been added to emc_utl.c
- The Seed7 compiler (s7c.sd7) has been improved:
  - Now unsupported options trigger an error.
  - Now empty temporary files (tmp_*.c) are overwritten.
  - An optimization for bin32(a+b) & constBin32 has been added. The
    generated code works without overflow checks. Tests for this
    case have been added to chkbin.sd7.
  - An optimization for bin32(a+b) & constBin32 with bigInteger a
    and b has been added. The generated code works with integers
    and without overflow checks.
  - The optimization for ord(aBigInteger mod number1) + number2
    has been improved.
  - An optimization for aString[length(aString)] has been added.
  - An optimization that recognizes if aString[start .. stop] always
    raises an INDEX_ERROR has been added.
  - The code generation for aString[start .. stop] has been
    improved.
  - An optimization for aString @:= [length(aString)] aChar; has
    been added
  - The code generated for aString @:= [pos] aChar; has been
    improved.
  - The optimization of aString &:= str(charExpression); has been
    improved.
  - An optimization for the string multiplication
    str(aChar) mult aConstantInteger
    has been added.
  - An optimization for the division of a product has been added.
  - The code generation of card(bitset(anInteger)) has been
    refactored. Tests for this case have been added to chkset.sd7.
  - The conversion from a bin32 to a single-precision
    floating-point number has been optimized. Tests for this case
    have been added to chkbin.sd7.
  - Image constants are now stored in the target pixel encoding. The
    compiler will convert the pixels of an image if necessary. The
    target pixel encoding is specified with the configuration values
    RED_MASK, GREEN_MASK, BLUE_MASK and ALPHA_MASK.
  - The actions PLT_BSTRING, PLT_CMP, PLT_EQ, PLT_HASHCODE, PLT_NE,
    PLT_POINT_LIST and PLT_VALUE are listed as pure functions.
  - The code generation for the actions STR_ELEMCPY, SQL_CPY_DB and
    SQL_CPY_STMT has been refactored.
  - The configuration value USE_START_MAIN is used to produce code
    for the browser. In this case, main() will check if a startMain
    button exists in the HTML page. If no startMain button exists,
    the program will start. If a startMain button exists, the program
    will wait until it is pressed. After the button is pressed, the
    function startMain() will be invoked (which executes the rest of
    the program).
  - The pointList data is now stored in the target encoding. The
    compiler will convert a pointList if necessary. The target
    encoding is specified with the configuration values
    POINT_LIST_INT_SIZE and POINT_LIST_ABSOLUTE.
  - The pointList coordinates are now aligned for Emscripten HEAP32
    access. If the macro POINT_LIST_ALIGNMENT is defined, an
    alignment is necessary. In this case, the function pltAlign()
    will carry out the alignment. If POINT_LIST_ALIGNMENT is not
    defined, pltAlign() will just forward its parameter.
  - In type.s7i POINTLISTOBJECT and REFLISTOBJECT have been added to
    the heapCategories set.
  - Unused code has been removed from flt_act.s7i and str_act.s7i.
  - The functions optimize_big_mod_dividend, process_const_bin_and,
    optimize_div_of_product, pointListLiteral, process_str_push,
    process_str_elemcpy_last_char, process_str_idx_last_char,
    process_plist_declaration, pixelEncodingIdentical,
    pixelEncodingWithoutAlphaChannel, swapRedAndBlue, fixPixels,
    pointListEncodingIdentical, toPointListAbsolute,
    toPointListRelative16, toPointListRelative32,
    toTargetPointListBstring, init_plist_constants and
    assign_plist_constants have been added.
- The functions createSymlink and winCopySymlink have been added to
  cmd_win.c. Tests for symlinks have been added to chkcmd.sd7.
- The functions set_excl (in setlib.c) and setExcl (in set_rtl.c)
  have been improved to resize the set. Tests for
  excl(bitset, integer) have been added to chkset.sd7.
- In set_rtl.c and setlib.c the heap statistic has been fixed for
  several operations.
- The logging infrastructure has been improved. Now the macros
  LOG_FUNCTIONS and VERBOSE_EXCEPTIONS can be set to -1. With -1
  logging is deactivated even if LOG_FUNCTIONS_EVERYWHERE
  respectively VERBOSE_EXCEPTIONS_EVERYWHERE is active. Support
  to activate the function logMessage in every file with
  LOG_MESSAGES_EVERYWHERE has been added as well.
- An explanation of the logging infrastructure has been added to
  common.h.
- Interpreter and compiler have been improved to support the actions
  BIN_BIT_LENGTH, BIN_LOWEST_SET_BIT, DRW_GET_PIXEL_DATA_FROM_ARRAY,
  PLT_BSTRING, PLT_CMP, PLT_CPY, PLT_EQ, PLT_HASHCODE, PLT_NE,
  PLT_POINT_LIST and PLT_VALUE.
- The unused action LST_ELEM has been removed form interpreter and
  compiler.
- Support for the category POINTLISTOBJECT has been added to
  interpreter and compiler.
- The functions drwGetPixelDataFromArray and pltAlign have been
  added to drw_rtl.c.
- In gkb_win.c the function gkbInputReady() has been improved to
  work correctly if GetMessageW() does not return the message
  promised by PeekMessageW(). Now it is generally assured that only
  fields of the correct message are accessed.
- In drw_x11.c the function drwConvPointList has been fixed to work
  for an empty pointList.
- In drw_dos.c, drw_emc.c, drw_win.c, drw_x11.c and drw_drv.h the
  function drwImage has been improved to consider an alpha channel.
- In cmd_rtl.c the function doReadLink has been refactored to
  distinguish between link_size (from link_stat.st_size) and
  dest_buffer_size. This simplifies the check for a truncation.
- Instances of the words minimal and maximal have been replaced
  with minimum and maximum in several files.
- The Seed7 build system has been improved:
  - The build with emcc under Linux and Windows has been fixed.
    The makefiles mk_emccl.mak and mk_emccw.mak and the program
    chkccomp.c have been adjusted. Now a stack-size is specified
    for 'make utils'.
  - Now chkccomp.c uses a better way to determine group and user
    functions.
  - Now size and signedness of gid_t and uid_t are determined in
    chkccomp.c. The macros GID_T_SIZE, GID_T_SIGNED, UID_T_SIZE and
    UID_T_SIGNED are defined accordingly.
  - In chkccomp.c global variables for sizeof_int, sizeof_long,
    sizeof_long_long, sizeof_pointer, sizeof_float and sizeof_double
    have been introduced.
  - In chkccomp.c the function testOutputToBuffer() has been improved
    to work correctly if the first character read is a newline. A
    check for the buffer size has been added to testOutputToBuffer()
    as well.
  - Now chkccomp.c determines if the function symlink() is present
    and sets the macro HAS_SYMLINK accordingly.
  - Performance measurements for left shift have been added to
    chkccomp.c. The macros LSHIFT_BUILTIN_MUL_TIME,
    LSHIFT_TWO_ARG_CHECKS_TIME, LSHIFT_ONE_ARG_CHECK_TIME,
    LSHIFT_RESULT_CHECK_TIME and LSHIFT_NO_CHECK_TIME are defined
    accordingly.
  - In chkccomp.c check if ferror() returns true after reading from
    write only file (FERROR_WRONG_WHEN_READING_FROM_WRITE_ONLY_FILE).
  - The number of C compiler warnings in chkccomp.c has been reduced.
  - The functions checkOverflowSignal, timeLShiftOverflowCheck,
    determineGrpAndPwFunctions and determineCurrentWorkingDirectory
    have been added to chkccomp.c.
  - The program chkccomp.c has been improved to define the macros
    GID_T_SIZE, GID_T_SIGNED, UID_T_SIZE, UID_T_SIGNED, GROUP_0_NAME,
    USER_0_NAME, FERROR_WRONG_WHEN_READING_FROM_WRITE_ONLY_FILE,
    HAS_SYMLINK, POINT_LIST_INT_SIZE, POINT_LIST_ABSOLUTE,
    POINT_LIST_ALIGNMENT, LSHIFT_BUILTIN_MUL_TIME,
    LSHIFT_TWO_ARG_CHECKS_TIME, LSHIFT_ONE_ARG_CHECK_TIME,
    LSHIFT_RESULT_CHECK_TIME and LSHIFT_NO_CHECK_TIME.
- In several files flag macros for logging have been introduced:
  - In pol_sel.c and pol_unx.c the flag macro DUMP_POLL has been
    introduced. This macro decides if detailed information about
    pollData should be written.
  - In soc_rtl.c the flag macro SHOW_ADDRINFO has been introduced.
    This macro decides if detailed information about the address info
    should be written.
  - In sql_oci.c and sql_post.c the flag macro SHOW_DETAILS has been
    introduced. This macro decides if detailed information should be
    written.
  - In sql_oci.c the flag macro DEBUG_LONG_CALLBACK has been
    introduced. This macro decides if detailed information about a
    long callback should be written.
- Logging functions have been added or improved in cmdlib.c,
  cmd_rtl.c, cmd_unx.c, cmd_win.c, con_inf.c, con_win.c, drw_emc.c,
  drw_win.c, drw_x11.c, gkb_x11.c, pol_sel.c, pol_unx.c, scanner.c,
  set_rtl.c, sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c,
  sql_post.c, sql_rtl.c, sql_tds.c, str_rtl.c and timlib.c.
- Deactivated code has been removed from big_rtl.c, blockutl.c,
  cmd_rtl.c, con_cap.c, con_inf.c, con_win.c, gkb_x11.c, hshlib.c,
  itflib.c, lstlib.c, name.c,  parser.c, pol_sel.c, pol_unx.c,
  prclib.c, reflib.c, scanner.c, sctlib.c, setlib.c, set_rtl.c,
  sql_fire.c, sql_odbc.c, striutl.c, strlib.c, str_rtl.c, tim_win.c,
  typlib.c and ut8_rtl.c.
- Documentation comments have been improved in array.s7i,
  bigint.s7i, bin32.s7i, bin64.s7i, bitsetof.s7i, bitset.s7i,
  csv.s7i, enable_io.s7i, font.s7i, http_response.s7i, idxarray.s7i,
  integer.s7i, osfiles.s7i, vectorfont.s7i, big_gmp.c, big_rtl.c,
  biglib.c, binlig.c, intlib.c and int_rtl.c.

20231217:
- The FAQ has been improved. Many thanks to Liam O'Brien for creating
  a list suggested changes. Thanks for helping to improve Seed7
  in general.
- Support for symbolic links under Windows has been added:
  - Symbolic link reparse points and mount reparse points are both
    treated as symbolic links.
  - The interface does not distinguish between directory symbolic
    links and normal symbolic links. A normal symbolic link may refer
    to a directory and readDir(symlink) reads the directory contents
    (like it does under Linux/Unix/BSD).
  - The functions fileType() and fileTypeSL() have been improved to
    work under Windows like they do under Linux/Unix/BSD:
    - fileType() follows symbolic links and returns the file type of
      the final destination.
    - fileTypeSL() returns FILE_SYMLINK for symbolic links. For
      all other file types fileTypeSL() works like fileType().
    - fileTypeSL() does return FILE_SYMLINK only if readLink() works
      correctly.
    - fileTypeSL() has been fixed to return FILE_DIR for the emulated
      root directory and FILE_ABSENT if the file path cannot be
      mapped to a system path.
  - The functions readLink(path) and readLink(path, ABSOLUTE) have
    been improved to read the symbolic links of Windows. The function
    readLink(path) can read relative and absolute symbolic links.
    Both functions can read dangling symlinks. The functions are
    implemented with DeviceIoControl(). If DeviceIoControl() is not
    available (HAS_DEVICE_IO_CONTROL is not defined), they raise
    FILE_ERROR.
  - The functions getFileMode(path), setFileMode(path),
    getOwner(path), setOwner(path), getGroup(path), setGroup(path)
    and readDir(path) have been improved to follow symlinks under
    Windows (like they do under Linux/Unix/BSD).
  - Owner and group of the emulated root directory is "root".
  - The function moveFile() has been improved to avoid following
    symlinks under Windows (like it does under Linux/Unix/BSD).
  - The function symlink() has been improved to allow the creation
    of relative and absolute symbolic links under Windows. Under
    Windows administrator rights or the developer mode are necessary
    to create symbolic links.
- Several file functions have been improved:
  - The function getCTime(path) has been improved to return the
    change time instead of the creation time in Windows (like it
    does in Linux/Unix/BSD).
  - The file owner and group functions have been improved to avoid
    localized user and group names under Windows.
  - The function finalPath(path), which follows a symbolic link
    chain, has been added to the osfiles.s7i library.
  - The functions getFileMode(path, SYMLINK),
    getATime(path, SYMLINK), getMTime(path, SYMLINK),
    setMTime(path, time, SYMLINK), getOwner(path, SYMLINK),
    setOwner(path, owner, SYMLINK), getGroup(path, SYMLINK) and
    setGroup(path, group, SYMLINK) have been added to the
    osfiles.s7i library. These functions work only for symbolic
    links and get or set symbolic link data.
    They raise FILE_ERROR if 'path' does not refer to a symbolic
    link.
  - The functions getFileMode(fileSys, path, SYMLINK),
    getMTime(fileSys, path, SYMLINK),
    getOwner(fileSys, path, SYMLINK) and
    getGroup(fileSys, path, SYMLINK) have been added to the
    filesys.s7i library.
  - The functions copyFile(), cloneFile() and moveFile() have been
    improved to prohibit that a dangling symlink is overwritten.
  - In osfiles.s7i and filesys.s7i the function fileMode(path) is
    deprecated now. The function getFileMode(path) should be used
    instead.
  - The files ar.s7i, cpio.s7i, ftpserv.s7i, process.s7i, rpm.s7i,
    tar_cmds.s7i, tar.s7i and zip.s7i have been altered to use
    getFileMode(path) instead of the deprecated fileMode(path).
- The Seed7 build system has been improved:
  - The makefiles mk_msys.mak, mk_nmake.mak, mk_mingw.mak and
    mk_mingc.mak have been improved to support 32-bit and 64-bit
    C compilers.
  - Now, definitions of the library names LIBINTL_DLL, LIBEAY32_DLL,
    LIBCRYPTO_DLL and LIBSSL_DLL are written to version.h only under
    Windows.
  - The build tries to load dynamic/shared libraries and logs if
    they are present or not.
  - For dynamic/shared libraries with an absolute path the build
    logs, if they are 32-bit or 64-bit.
  - The functionality of setpaths.c has been moved to chkccomp.c.
  - The file setpaths.c has been removed.
  - The files makefile, mk_bcc32.mak, mk_bccv5.mak, mk_clang.mak,
    mk_clangw.mak, mk_cygw.mak, mk_djgp2.mak, mk_djgpp.mak,
    mk_emccl.mak, mk_emccw.mak, mk_freebsd.mk, mk_icc.mak,
    mk_linux.mak, mk_mingc.mak, mk_mingw.mak, mk_msvc.mak,
    mk_msys.mak, mk_nmake.mak, mk_osxcl.mak, mk_osx.mak,
    mk_tcc_l.mak and mk_tcc_w.mak have been changed to work without
    setpaths.c and to call chkccomp with the parameters of setpaths
    (S7_LIB_DIR, SEED7_LIBRARY and CC_ENVIRONMENT_INI).
  - The search for the SQLite include file in chkccomp.c has been
    improved to continue if the include file is not in C:/sqlite.
  - The directory seed7/bin has been added as possible place of the
    sqlite3.dll (or .so).
  - Tests for the presence of the functions CreateSymbolicLinkW(),
    GetFinalPathNameByHandleW(), DeviceIoControl(),
    GetFileInformationByHandleEx() and lutimes() have been added to
    chkccomp.c.
  - In chkccomp.c global variables for buildDirectory, s7LibDir and
    seed7Library have been introduced.
  - The functions testOutputToBuffer(),
    determineCurrentWorkingDirectory(), mapCodePageToUtf8(),
    mapToUtf8(), canLoadDynamicLibrary(),
    pointerSizeOfDynamicLibrary(), getCodePage(), setS7LibDir(),
    setSeed7Library() and setPaths() have been added to chkccomp.c.
- The Seed7 compiler (s7c.sd7) has been improved:
  - Now, it writes warnings if parameter aliasing can happen.
    A function triggers parameter aliasing if two reference
    parameters refer to the same value and one of them is changed
    in the function. In this case the other reference parameter
    changes as well. The Seed7 compiler checks if a function call
    uses the same actual parameter twice and at least one of the
    parameters is modified in the function.
  - Now, it writes the line that triggers a compilation error.
  - The error messages for case statements have been improved.
  - The string index access optimizations have been improved.
  - The estimation of possible string length results has been
    improved.
  - Now, the range of possible integer results of BIN_AND is
    computed.
- Tests for integer +:=, -:= and *:= with itself have been added to
  chkint.sd7 and chkovf.sd7.
- Tests for bigInteger *:= with itself have been added to
  chkbig.sd7.
- The function open() has been improved such that opening a
  non-existing absolute path under Windows (a path that cannot be
  mapped to a system path) returns STD_NULL.
- In aes_gcm.s7i the run-time of gcmMult has been reduced by 7%
  (measured with gcc and valgrind).
- The function inputReady(socket) has been added to the socket.s7i
  library.
- The library ftpserv.s7i has been improved to use the function
  getFileMode(fileSys, path, SYMLINK).
- In bas7.sd7 an error, found by parameter aliasing checks, has
  been fixed.
- The program err.sd7, which triggers most parsing errors, has been
  updated.
- In sql_lite.c an initialization of the SQLite connection has been
  added. This way the connection can be safely checked if
  sqlite3_open() fails.
- The file stat_drv.h has been improved to redefine all S_IS...
  macros if S_IFLNK is not defined.
- In striutl.c the function stri_to_standard_path() has been
  improved to avoid a use after free if realloc changes the pointer.
- In soc_rtl.c the function socInetAddr() has been improved to check
  if the host name is the name of the local host.
- Logging functions have been added or improved in cmd_rtl.c,
  kbd_inf.c, kbdlib.c, sql_lite.c, stat_win.c and striutl.c.
- In cmd_win.c logging has been changed to log the return code of
  security functions.
- Documentation comments have been added or improved in filesys.s7i,
  osfiles.s7i, cmdlib.c, cmd_rtl.c, cmd_unx.c and cmd_win.c.
- Macro arguments have been enclosed with parentheses in big_rtl.c,
  cmd_rtl.c, drw_emc.c, drw_win.c drw_x11.c, int_rtl.c, levelup.c,
  numutl.c pcs_unx.c, pol_unx.c, str_rtl.c, strlib.c and tracutul.c.
- In stat_win.c calls of os_stat_orig() have been replaced with
  calls of FindFirstFileW().
- The functions wstati64FollowSymlink(), wstatChangeTime(),
  lstati64Ext() and wchmodExt() have been added to stat_win.c. The
  function correctAdjustedUnixTime() has been removed from
  stat_win.c (it was necessary to correct the times of
  os_stat_orig() that is not used anymore).
- The functions winRename(), wSymlink(), winSymlink(),
  getSymlinkDestination(), winReadLink(), followSymlinkRecursive(),
  winFollowSymlink(), setupWellKnownSids(), cmdGetGroupOfSymlink(),
  cmdGetOwnerOfSymlink(), cmdSetGroupOfSymlink(),
  cmdSetMTimeOfSymlink() and cmdSetOwnerOfSymlink() have been added
  to cmd_win.c.
- Non-ascii characters in con_wat.c have been replaced with
  escape sequences.
- The function wOpenDir() has been added to dir_win.c.
- The function cp_from_os_path_buffer() has been added to stritul.c.
- The actions CMD_LS, CMD_FILEMODE and CMD_SET_FILEMODE have been
  renamed to CMD_READ_DIR, CMD_GET_FILE_MODE and CMD_SET_FILE_MODE
  respectively.
- The actions CMD_FINAL_PATH, CMD_GET_ATIME_OF_SYMLINK,
  CMD_GET_FILE_MODE_OF_SYMLINK, CMD_GET_GROUP_OF_SYMLINK,
  CMD_GET_MTIME_OF_SYMLINK, CMD_GET_OWNER_OF_SYMLINK,
  CMD_SET_GROUP_OF_SYMLINK, CMD_SET_MTIME_OF_SYMLINK and
  CMD_SET_OWNER_OF_SYMLINK have been added.

20231104:
- In tim_rtl.c the function timFromIntTimestamp() has been fixed to
  work with negative timestamps under Windows. Many thanks to Liam
  O'Brien for pointing out that "chk_all" failed on the "chktime" test
  in Windows.
- The answer concerning return type overloading in the FAQ has been
  improved.
- In the manual links have been added to the list of parsing errors.
  The links refer to an example that triggers this parsing error.
- The error messages of the interpreter and compiler have been
  improved:
  - If something is redeclared an additional error has been added that
    refers to the previous declaration. Additionally the lines of
    current and previous declarations are shown.
  - Error messages referring to functions have been improved to write
    function parameter names.
  - Now longer identifiers are written correctly in error messages.
- The utility program sydir7.sd7 has been improved to support the
  options -t (only do time corrections of identical files) and -a
  (only add files that are missing in the destination).
- The new library aes_gcm.s7i has been added. This library supports
  the AES GCM cipher.
- Support for the AES GCM cipher has been added to the tls.s7i
  library.
- The constant stdEccKeyPair has been added to elliptic.s7i. This
  constant defines public and private keys for elliptic curve
  cryptography (ECC).
- The constant stdEccCertificate has been added to x509cert.s7i. This
  constant defines a certificate for elliptic curve cryptography.
- The function readLink(filePath, ABSOLUTE) has been added to the
  library osfiles.s7i.
- In bitdata.s7i the functions getBitLsb(), getBitsLsb(), getBitMsb()
  and getBitsMsb() with a file as parameter are deprecated now.
  The functions with the types lsbBitStream and msbBitStream should be
  used instead.
- The library zstd.s7i has been refactored to use lsbBitStream instead
  of the deprecated functions getBitLsb and getBitsLsb.
- The handling of the TIFF magic number in the tiff.s7i library has
  been improved.
- In seed7_05.s7i the function isDigitString(), with the base as
  parameter, has been fixed to correctly check the range of possible
  digits. Additionally the function now raises RANGE_ERROR if the
  base is less than 2.
- In seed7_05.s7i the function integer(), with the base as parameter,
  has been fixed to trigger RANGE_ERROR if a digit is not in the
  allowed range.
- The function sourceLine(PROGRAM) has been added to the
  environment.s7i library.
- The compiler (s7c.sd7) has been improved:
  - Do not optimize constants with -oc0
  - Call optimize_int_add starting with -oc2
  - Optimize string expressions starting with -oc2
  - The compilation stops if unsupported options are found.
  - Optimizations for the string pos function have been added:
    - If the main string is actually a byte string.
    - If the search string is known to have a length of 1.
    - The main string length for char search is reduced if there are
      previous occurrences of the last characters.
  - An optimization for div and rem operators has been added that
    takes effect if the dividend is known to be >= 0 and the divisor
    is a power of two.
  - The optimization of mod has been improved to consider the case
    that dividend or divisor is always >= 0.
  - The optimization of addition-/subtraction-chains has been improved
    to optimize more overflow checks away.
  - The optimization of the integer negate operation has been improved.
  - An optimization for the assignment of an array concatenation has
    been added.
  - Unnecessary range checks in the conversion from integer to byte
    strings have been omitted.
  - The compiler counts if range checks are optimized away, and the
    count is written in the compilation statistics.
  - The code generation of several assignment statements has been
    refactored.
  - An optimization for the string length has been added, if the
    result is known at compile-time.
  - The computation of possible integer expression results in
    lib/comp/intrange.s7i has been improved:
    - The function getIntRange has been improved to work for inline
      parameters.
    - The determination of of possible left shift results has been
      improved (in the function getIntLshiftRange). Corresponding
      tests have been added to chkint.sd7 and chkovf.sd7.
    - The range of possible loop variable values of for-downto loop
      has been fixed. Tests for this case have been added to
      chkprc.s7i.
    - The estimation of possible integer results of the div, mdiv
      and ? : operators has been improved.
    - The possible result of string search and string length is
      estimated more accurately.
    - The possible result of a binary to integer conversion is
      estimated more accurately. Corresponding tests have been added to
      chkint.s7i
    - The function getIntRange has been improved to consider the
      actions CMD_FILESIZE, CON_HEIGHT, CON_WIDTH, DRW_HEIGHT,
      DRW_WIDTH, DRW_SCREEN_HEIGHT, DRW_SCREEN_WIDTH,
      INT_BYTES_BE_2_INT, INT_BYTES_LE_2_INT, INT_FACT, INT_PARSE1
      and INT_PLUS.
    - The functions getIntBytes2IntRange, getIntBytes2UIntRange,
      getIntRange, getArrLenRange, getStrLenRange, lessEqualLimit,
      greaterEqualLimit, getIntParse1Range and getBlnTernaryRange
      have been added.
  - An error in the bytes2Int optimization has been fixed and
    corresponding tests have been added to chkint.sd7.
  - The compiler options have been refactored (they are now stored
    locally instead of globally).
- The programs bas7.sd7 and pv7.sd7 have been refactored to use mdiv
  instead of div (since the dividend is known to be >= 0).
- The Seed7 build system has been improved:
  - Now the system libraries needed for bigInteger, console, database
    and drawing support (SYSTEM_BIGINT_LIBS, SYSTEM_CONSOLE_LIBS,
    SYSTEM_DATABASE_LIBS, SYSTEM_DRAW_LIBS) are stored as string
    with a newline (\n) between individual libraries.
  - The functions removeQuotesFromQuotations, appendToMakeMacros,
    replaceUnquotedSpacesWithNl, visualDepthOf32BitsSupported and
    defineCMacro have been added to chkccomp.c.
  - Building Seed7 with tcc under Windows has been fixed.
  - The makefiles have been adjusted to work with CLion.
  - The warning about missing packages has been improved.
  - The description of the build system in src/read_me.txt and
    src/read_me.htm has been improved.
- In cmd_unx.c, infile.c, pol_sel.c, pol_unx.c, sql_oci.c and symbol.c
  a memory leak is avoided if realloc fails.
- The action CMD_READLINK has been renamed to CMD_READ_LINK.
- Empty statements (;;) have been removed in fltlib.c, gkb_win.c,
  pcs_win.c and sql_fire.c.
- Spelling corrections have been made in several files.
- Comments in C files have been changed to use the term function
  instead of the term procedure.
- Documentation comments have been added or improved in bitdata.s7i,
  cipher.s7i, chkccomp.c, numutl.c, pcs_win.c and striutl.c.

20230913:
- The parameters of getHttp(), getHttps() and getFtp() have been
  renamed from 'url' to 'location'. A location is a URL without
  http://, https:// and ftp://, respectively. Many thanks to Liam
  O'Brien for pointing out that getHttps("https://example.com/") does
  not work. The documentation has been improved to contain the example
  getHttps("example.com").
- The exit() function has been moved from seed7_05.s7i to the library
  environment.s7i. Many thanks to u/IllegalMigrant for pointing out
  that exit() was not documented.
- The libraries lower.s7i, more.s7i, upper.s7i, archive_base.s7i,
  http_response.s7i, makedata.s7i, tar_cmds.s7i and tee.s7i have been
  added to the library section and the subject index of the homepage.
  Many thanks to Liam O'Brien for pointing out that they were missing.
- The contrast of menus in the Seed7 homepage has been improved. Many
  thanks u/SachemAgogic for pointing out that the contrast was too low.
- The make7 example program has been improved to support C++. Now the
  macros CXX and CXXFLAGS are supported as well as the target .cpp.o
  and the pattern rule "%.o" with a dependency of "%.cpp" (changes have
  been made in make.s7i and makedata.s7i).
- Chapters about the types 'database' and 'sqlStatement' have been
  added to the manual.
- The file to generate a man page for the Seed7 compiler (doc/s7c.1)
  has been improved.
- A test program for time functions (chktime.sd7) has been added.
- The program findchar.sd7 has been improved to support the option -e
  (specify extension) and to allow a search for any char (with the
  option c).
- The program calc7.sd7 has been improved to support the function
  getFtp().
- The program tar7.sd7 has been improved:
  - Wildcards can be used when an archive is created.
    This works even if the OS shell does not support wildcards.
  - Specific members from an archive can be requested when an archive
    is extracted (or when listing archive contents with tell).
- The library tar_cmds.s7i has been improved to support the changes of
  tar7.sd7.
- In lib/comp/int_act.s7i the integer overflow checks created by the
  compiler have been improved. This improvement is used if both factors
  are unknown at compile time and for C compilers that have neither
  builtin overflow operations, nor an option like -ftrapv, nor support
  for 128-bit integers.
- Tests for the improved overflow checks have been added to chkint.sd7
  and chkovf.sd7.
- In the library makedata.s7i, the rule 'name' has been renamed to
  'target'. The library make.s7i has been adjusted to use 'target'.
- In scanfile.s7i and scanstri.s7i the functions getNextXmlAttribute()
  and getNextHtmlAttribute() have been aligned to behave identically if
  there are no more attributes in a tag.
- In htmldom.s7i the function readHtmlNode has been adjusted to the
  change of getNextHtmlAttribute().
- Several improvements have been made in the time.s7i library:
  - The function time() with a micro seconds parameter has been added.
  - The function toLocalTZ() has been added.
  - The functions hashCode(), toUTC(), timestamp1601() and
    timestamp1601ToTime() have been fixed to work correctly.
- In duration.s7i the function hashCode() has been fixed to work
  correctly.
- In httpserv.s7i the functions processHttpRequest() and getRequest()
  have been renamed to getHttpRequest(). The webserver comanche.sd7
  has been changed to call getHttpRequest() instead of getRequest().
- In tee.s7i the type teeFile has been improved to allow writing to
  many files at once.
- The libraries lower.s7i, more.s7i, tee.s7i and lower.s7i have been
  refactored to use camel case identifiers and documentation comments.
- In asn1.s7i the struct asn1DataElement has been changed. Using the
  tagCategory of an asn1DataElement is deprecated now. Use tagType
  instead of tagCategory as tagType is also used in the ASN.1
  documentation. The renaming has also been done in x509cert.s7i.
- The program chk_all.sd7 has been improved to write a warning if the
  execution of a test program fails.
- Tests for hash tables with time keys and values have been added to
  chkhsh.sd7.
- In tim_rtl.c the function timSetLocalTZ() has been improved to raise
  RANGE_ERROR if a value is not in the allowed range.
- In sql_cli.c and sql_lite.c calls of timSetLocalTZ() have been
  simplified.
- The abstract data type (template) to define enumeration types has
  been moved from seed7_05.s7i to the new enumeration.s7i library.
- In drw_emc.c and gkb_emc.c opening a window with a requested size has
  been improved to work correctly if the Firefox window is maximized.
- Logging functions have been added in con_emc.c, drw_emc.c, emc_utl.c,
  gkb_emc.c, tim_rtl.c and tim_unx.c.
- In str_rtl.c comments about the silencing of a C compiler warning
  have been added to strHeadAssign() and strHeadTemp().
- In common.h the definitions of TIME_T_MIN, TIME_T_MAX and
  inTimeTRange() have been improved.
- Documentation comments have been added or improved in ar.s7i,
  archive_base.s7i, array.s7i, asn1.s7i, bitset.s7i, bitsetof.s7i,
  boolean.s7i, cpio.s7i, ftp.s7i, gethttp.s7i, gethttps.s7i,
  hashsetof.s7i, http_response.s7i, httpserv.s7i, idxarray.s7i,
  lower.s7i, makedata.s7i, more.s7i, pkcs1.s7i, rpm.s7i, scanfile.s7i,
  scanstri.s7i, sql_base.s7i, tar.s7i, tar_cmds.s7i, tee.s7i, time.s7i,
  upper.s7i, zip.s7i, tim_rtl.c and tim_unx.c.

20230709:
- Explanations about the initialization with 'is', the 'return'
  declaration construct and the meaning of dollar signs have been
  added or improved in the FAQ.
- A chapter about arrays has been added to the tutorial.
- In the manual, chapters about variants of for-each loops have been
  added or improved.
- A chapter about the exception GRAPHIC_ERROR has been added to the
  manual.
- The compiler (s7c.sd7) has been improved:
  - The generated code for array indexing that always raises
    INDEX_ERROR, has been improved to be accepted by clang. A cast to
    the desired type has been added.
  - The code generation for the hash set functions card() and rand()
    has been improved to support temporary sets.
  - Spezialized code is now generated, if the hash set function rand()
    is used with constant sets.
  - The functions strHeadAssign and strTailAssign are used now. They
    are always called like this: aString = strHeadAssign(aString, pos);
- In the library gzip.s7i the functions length() and tell() have been
  added for a gzipWriteFile.
- In the library tar.s7i the function putFile() has been improved to
  check for seekable() before applying seek().
- The function pemObject() which creates a PEM object from 'pemType'
  and 'content' has been added to pem.s7i.
- Support for the generation of non-self-signed certificates has been
  added to the x509cert.s7i library.
- Support for X509 extensions has been added to the x509cert.s7i
  library.
- A function to create an x509Name has been added to x509cert.s7i.
- In x509cert.s7i several things have been renamed:
  - The types validityType and nameType have been renamed to
    x509Validity and x509Name respectively.
  - The function getName() has been renamed to getX509Name().
  - The parameter encryptionKey has been renamed to issuerKey.
- In x509cert.s7i the type x509cert is deprecated now. The type
  x509Cert should be used instead.
- In asn1.s7i and x509cert.s7i parameters and result variables have
  been renamed from 'stri' to 'asn1'.
- In pkcs1.s7i an additional function to generate a RSA key pair has
  been added.
- Now 'in varfunc' call-by-name parameters can be specified with 'in'
  and 'ref'. This is done in the library seed7_05.s7i by defining
  IN_PARAM_IS_REFERENCE(varfunc aType).
- In seed7_05.s7i the boolean condition parameters of loops have been
  changed to be defined with 'ref'. This corresponds to the fact that
  changing a condition variable in the loop body can terminate the
  loop.
- The test suite has been improved to increase the code coverage.
- A test program for enumerations (chkenum.sd7) has been added.
- Tests have been added to chkbig.sd7:
  - Tests for bigInteger comparisons (=, <>, <, <=, >=, > and compare).
  - Tests for the optimization of ord(a mod b).
  - Tests for the multiplication of a constant with a bigInteger.
  - Tests for the divRem operator and for the rand and gcd functions.
  - Tests for the modulus of a bigInteger by a power of two.
- Tests have been added to chkbin.sd7:
  - Tests for the bin64 &, | and >< operators.
  - Tests for the optimization of bin64(a mod b).
  - Tests for bin64 shift operator have been improved.
- Tests have been added to chkbst.sd7:
  - Tests for bstring length.
  - Improve tests for bstring assignments.
- Tests have been added to chkchr.sd7:
  - Tests for char literals and conversions
  - Tests for the char functions succ(), pred(), lower() and upper().
- Tests in chkhsh.sd7 have been improved:
  - Tests for hash tables with enumeration type keys and values have
    been added.
  - Tests for hash tables with bstring keys and values have been added.
  - Tests for hash tables with bitset keys and values have been added.
  - Tests for hash keys() and values() function have been added.
- Tests in chkstr.sd7 have been improved:
  - Tests for c_literal() have been added.
  - Tests for string head (stri[.. stop]) have been added.
  - Tests for string tail (stri[start ..]) have been added.
  - Tests for the string pos(), rpos() and replace() functions have
    been added. These tests trigger a Boyer-Moore string search.
  - Tests for fromUtf8() have been added.
  - Tests for lower() and upper() have been added.
  - Tests for string assignment have been added.
- Tests for the expression A * B ** C have been added to chkint.sd7
  and chkovf.sd7.
- Tests for string head (stri[.. n]) and string tail (stri[n ..]) have
  been added to chkidx.sd7.
- In chkset.sd7 tests for the hash set functions card(), rand() and
  toArray() have been added. Tests for the operators 'in' and 'not in'
  have been added as well.
- In chkprc.sd7 tests for for-until loops have been added.
- Tests for the type clib_file and for the functions seekable(),
  tell(), bigTell() and seek() have been added to chkfil.sd7.
- The handling of the version level (the last number in the version
  string) has been improved:
  - The file src/level_rl.h which contains the release level has been
    introduced.
  - The files src/level.h and src/level_bk.h have been removed from the
    release.
  - In the makefiles the target distclean has been improved to remove
    src/level.h and src/level_bk.h.
  - The program levelup.c has been improved to maintain the file
    level.h. If level_rl.h has changed it will be copied to level.h. If
    there is no change in level_rl.h every compilation of s7 will
    increment the level.
  - The program wrdepend.c has been improved to check if level.h is
    missing. In this case, level_rl.h is copied to level.h.
  - The minor version number of s7 and s7c has been incremented.
- In seed7_05.s7i, forloop.s7i, chkarr.sd7, chkbig.sd7, chkbin.sd7,
  chkbst.sd7, chkfil.sd7, chkflt.sd7, chkidx.sd7, chkint.sd7,
  chkovf.sd7, chkset.sd7 and chkstr.sd7 'ref func' parameters have been
  replaced with 'in func' parameters.
- In chk_all.sd7, chkarr.sd7, chkfil.sd7, chkidx.sd7, chkovf.sd7 and
  chkstr.sd7 'ref proc' parameters have been replaced with 'in proc'
  parameters.
- In str_rtl.c the functions strHeadAssign and strTailAssign have been
  introduced. These functions leave the string parameter intact in case
  of an error.
- In str_rtl.c the function strHeadTemp has been refactored to assume
  that the string parameter is always tempory and can be freed in case
  of an error.
- Documentation comments have been improved in pem.s7i and
  x509cert.s7i.

20230529:
- The FAQ concerning break and continue has been improved.
- Chapters about assignment and constants have been added to the
  tutorial, which is part of the manual. A description of the function
  fraction() has been added to the chapter about predefined types.
- The new library archive_base.s7i has been added. This library
  defines common functions for file archives. It currently defines the
  function readDir() which is used by the archive libraries ar.s7i,
  cpio.s7i, rpm.s7i, tar.s7i and zip.s7i.
- In the zip.s7i library the function readDir() has been improved to
  work for absolute paths (by calling readDir() from archive_base.s7i).
- Several improvements have been made in the rpm.s7i library:
  - The signature section digests are checked when the RPM file is
    opened.
  - The payload digests are only checked if the payload is used.
  - Provided and required dependencies are read when the RPM file is
    opened.
- The compiler (s7c.sd7) has been improved:
  - It recognizes if an array index access would always raise
    INDEX_ERROR. This is done for a constant array and with the range
    of possible index values.
  - The optimization of the floating point power operator with an
    integer exponent has been improved. There are cases where the base
    is constant, and the range of possible exponents allows a
    simplification.
  - The optimization of the floating point left and right shift
    operators has been improved. It considers cases where the number
    that needs to be shifted is constant and cases where nothing is
    constant. In both situations the range of possible shift amounts
    allows simplifications.
  - The optimization of A * B ** C with A and B float and C integer,
    has been improved. This considers cases where B is a power of two
    and the range of possible exponents C allows a simplification.
  - It is recognized if the integer left shift operator would always
    raise OVERFLOW_ERROR. Depending on the range of possible values
    for the shift amount and the value to be shifted, this optimization
    is made.
  - The number of checks for OVERFLOW_ERROR and NUMERIC_ERROR of the
    integer power operator has been reduced. Depending on the range of
    possible values for base and exponent, some checks can be omitted.
  - Now the range of possible integer values is determined for the
    expression ord(aBigInteger mod 2_ ** n).
  - Now the range of possible integer values is determined for the
    length of a sub-string.
  - The generated code for 'elsif FALSE then end if' as been fixed.
  - String index checks are optimized away if the range of possible
    index values always remains inside a constant string.
  - Computing the length of a fixLen substring has been optimized
    (e.g.: length(aString[A fixLen B]) will always return B).
  - The optimization of the string length function has been changed to
    sum up the length of the components as integers.
- The test suite has been improved to increase the code coverage of the
  compiler.
- Tests for array assignment, array length and array index access have
  been added to chkarr.sd7.
- Tests of the optimization of expressions like ord((A + B) mod C)
  (the modulus of a bigInteger sum converted to an integer) have been
  added.
- Several tests have been added to chkflt.sd7:
  - Tests for float left shift (<<).
  - Tests for float right shift (>>).
  - Tests for float ** integer.
  - Tests for the A * B ** C optimization.
  - Tests for float ** float.
  - The tests for decompose() have been improved.
  - Tests for ceil(), floor() and trigonometric functions have been
    added.
- Tests for the power operator (**) and for the integer >>:= operator
  have been added to chkint.sd7.
- Tests for the overflow of shift left (<<) and for the power operator
  (**) have been added to chkovf.sd7.
- Tests for string head have been added to chkidx.sd7.
- Tests for empty if-, while- and repeat-statements have been added to
  chkprc.sd7.
- Tests for card(), rand() and assignment have been added to
  chkset.sd7.
- Several tests have been added to chkstr.sd7:
  - Tests for string length.
  - Tests for string index access.
  - Tests for the string head function.
  - Tests for string concatenation.
  - Tests for string assignment.
- The phrase "works correct" has been replaced with "works correctly"
  in the files chk_all.sd7, chkarr.sd7, chkbig.sd7, chkbin.sd7,
  chkbigdata.sd7, chkbool.sd7, chkbst.sd7, chkchr.sd7, chkcmd.sd7,
  chkexc.sd7, chkfil.sd7, chkflt.sd7, chkhsh.sd7, chkidx.sd7,
  chkint.sd7, chkovf.sd7, chkprc.sd7, chkset.sd7 and chkstr.sd7.
- The value STMT_BLOCK_IN_PARENTHESES_OK has been added to confval.sd7.
- The initialization of local variables and constants with a single
  local value has been fixed (in dcllib.c).
- In flt_rtl.c the function fltLdexp() has been improved to work
  correctly for infinity, even if ldexp() does not.
- The program chkccomp.c has been improved to determine
  LDEXP_OF_INFINITY_OKAY (which defines if ldexp() works for infinity).
- Documentation comments have been improved in null_file.s7i.

20230422:
- The compiler option -S to specify the stack size has been added.
  Many thanks to Bruce Axtens for pointing out problems with the
  Ackermann function at RosettaCode. This triggered the -S improvement.
- Many thanks to Bruce Axtens for adding Seed7 to the Exercism project.
  Discussions about that resulted in several improvements:
  - Now call-by-name parameters can be specified with 'in' and 'ref'.
  - Support for syntax statements without $ (dollar) has been added.
  - The error message for an unspecified kind of in-parameter has been
    improved.
- Many thanks to Gary Chike for pointing out problems:
  - The RosettaCode example "Convert decimal number to rational" did
    not work correctly. To fix that, the function fraction(), which
    gets a fraction as string (e.g. "1/3"), has been added to
    bigrat.s7i and rational.s7i.
  - Mac OS 13.2.1 had permission problems when installing Seed7. The
    copying of manual pages failed. In mk_osx.mak and mk_osxcl.mak, the
    copying of the s7 and s7c manual pages to /usr/share/man/man1 has
    been changed to allow a failure.
  - On some computers, vim syntax highlighting is turned off by
    default. The FAQ has been improved to describe the steps for
    enabling vim syntax highlighting.
- Explanations about design principles, compiler options, syntax
  highlighting, forward declarations, function overloading, function
  declarations and declaring break/continue statements have been
  added or improved in the FAQ.
- Chapters about function declarations and overloading have been
  added to the tutorial (part of the manual).
- In the manual the chapters about types, parameters and expressions
  have been improved.
- In seed7_05.s7i the function literal() has been defined for
  enumeration types.
- The files panic.sd7, wiz.sd7, savehd7.sd7, cards.s7i, sql_base.s7i
  and boolean.s7i have been changed to use the new function literal().
- Support for the ternary operator ?: has been added for enumerations
  and for the types 'type' and 'category'.
- The compiler (s7c.sd7) has been improved:
  - At several places the function integerLiteral() is used instead of
    str() to create integer literals.
  - Assignments to temp variables in inline functions have been fixed.
    This allows: float parse ("0." & "0" mult 307 & "1")
  - If-statements are used in overflow checks for the operators +:=,
    -:=, *:=, <<:= and >>:=.
  - Generated temporary variables have been renamed in int_act.s7i.
  - The code of the factorial function has been optimized.
  - Support for the action ENU_LIT has been added.
  - The action ENU_LIT has been added to the list of special actions.
  - Allocated result data of inlined special actions is now freed.
  - Now integer comparisons are checked with -oc3 if they can be
    computed at compile time. With -w2, a warning is written if this
    is the case.
  - The compiler option -S to specify the stack size has been added.
- In zip.s7i the function fileMode() has been fixed to work for short
  file names.
- The test program chkflt.sd7 has been improved to have detailed error
  messages. Tests for converting between floats to strings in both
  directions have been added as well.
- Definitions of LINKER_OPT_STACK_SIZE and DEFAULT_STACK_SIZE have been
  added to cc_conf.s7i. The file cmd_rtl.c and the program confval.sd7
  have been adjusted accordingly.
- The interpreter has been improved to support the actions DCL_SYNTAX,
  ENU_LIT and PRC_BEGIN_NOOP.
- Support for empty func ... end func constructs has been added.
- The error messages "Syntax declared twice", "Associativity expected",
  "Dot expression expected" and "Integer literal expected" have been
  improved in error.c.
- The functions err_expr_type() and err_expr_obj_stri() have been added
  to error.c.
- In fil_rtl.c the function filClose() has been improved to work
  correctly if fclose() fails after a previous error.
- In flt_rtl.c the function fltParse() has been improved to consider
  STRTOD_ACCEPTS_INF, STRTOD_ACCEPTS_INFINITY, STRTOD_ACCEPTS_NAN and
  STRTOD_ACCEPTS_SIGN_WITHOUT_DIGITS.
- In gkb_win.c definitions of XBUTTON1, XBUTTON2, WM_MOUSEWHEEL,
  GET_WHEEL_DELTA_WPARAM, VK_OEM_PLUS, VK_OEM_MINUS and VK_OEM_1 to
  VK_OEM_8 are added if they are not present in the include files.
- In heaputl.c the function setupStack() has been improved to have the
  requested stack size as a parameter.
- In os_decls.h the definition of safe_fileno() has been improved to
  use os_fileno() instead of fileno().
- Functions for X11 selection (cut and paste) have been added to
  fwd_x11.c and x11_x.h.
- In pcs_unx.c and pcs_win.c the function pcsPipe2() has been improved
  to leave *childStdin and *childStdout unchanged if the corresponding
  call of os_fdopen() fails.
- The function prc_begin_noop() has been added to prclib.c.
- In soc_rtl.c the functions socInetAddr(), socInetLocalAddr() and
  socInetServAddr() have been improved to set 'result' to NULL if
  ai_addrlen is negative.
- The function prot_dot_expr() has been added to traceutl.c. This
  function is used to write the error message SYNTAX_DECLARED_TWICE.
- The program chkccomp.c has been improved to determine
  STRTOD_ACCEPTS_SIGN_WITHOUT_DIGITS, STRTOD_ACCEPTS_INF,
  STRTOD_ACCEPTS_INFINITY, STRTOD_ACCEPTS_NAN,
  OS_GETCWD_INCLUDE_DIRECT_H, OS_OPENDIR_INCLUDE_DIRECT_H and
  FCLOSE_FAILS_AFTER_PREVIOUS_ERROR. The computation of
  FLOAT_NAN_COMPARISON_OKAY has been improved.
- In chkccomp.c recent PostgreSQL versions are considered now.
- In cmd_rtl.c and dir_drv.h the file direct.h is now conditionally
  included depending on OS_GETCWD_INCLUDE_DIRECT_H respectivily
  OS_OPENDIR_INCLUDE_DIRECT_H.
- Includes of stdlib.h have been added to literal.c, sql_rtl.c,
  syvarutl.c and tim_rtl.c.
- The makefiles mk_bcc32.mak, mk_bccv5.mak, mk_clangw.mak, mk_cygw.mak,
  mk_mingc.mak, mk_mingw.mak, mk_msvc.mak, mk_msys.mak, mk_nmake.mak
  and mk_tcc_w.mak have been improved to define DEFAULT_STACK_SIZE and
  LINKER_OPT_STACK_SIZE.
- Documentation comments have been added to float.s7i and rational.s7i.

20230305:
- The make7 example program has been improved to support quoted
  dependencies (changes have been made in makedata.s7i). A warning is
  written if the quoted dependency does not end with ", or when it is
  not followed by whitespace.
- The comanche web-server example program has been improved:
  - CGI scripts with shebang are supported now. Shebang means that the
    first line of the script starts with #! and is followed by the
    command (and possible options) to interpret the script.
  - Now the root directories for HTML files (html-dir) and CGI files
    (cgi-dir) are converted to an absolute path.
  - On startup of comanche, the current working directory is changed
    to the root directory for CGI files (some CGI scripts need this).
  - The new option -c can be used to specify the cgi-name used in the
    HTTP(S) requests. If cgi-name is "", the cgi-name is taken from
    cgi-dir. Without -c, the default cgi-name of "/cgi-bin/" is used.
  - The new parameter env-file can be used to specify a property file
    with environment variables to be defined.
  - The help text written with the option -? or -h has been improved.
  - Definitions of the environment variables REQUEST_METHOD,
    CONTENT_LENGTH and DOCUMENT_ROOT have been added (in
    http_response.s7i). These environment variables are used by CGI
    scripts.
- An explanation about the compilation to a dll/so has been added to
  the FAQ.
- An explanation of the fixLen sub-string has been added to the manual.
- The compiler s7c has been improved to read configuration values with
  the option -c. This allows s7c to be able to switch between
  generating machine code (default) or JavaScript/web-assembly
  (with -cemcc).
- The compiler has been improved to generate better code for insert()
  (insert elements into an array). For arrays of plain values (e.g.
  array integer) unnecessary copying of data will be avoided now.
  Changes have been made in arr_act.s7i, expr_util.s7i, arr_rtl.c and
  arr_rtl.h.
- The library propertyfile.s7i has been improved so that EOF terminates
  a property key or value.
- The functions assignConfigValue() and readConfig() have been added
  to the cc_conf.s7i library.
- In bitdata.s7i the close() function for LSB/MSB bit streams has been
  fixed to also work near the end of the file and for MSB bit streams.
- In bitdata.s7i the function gets() has been improved so that a
  maxLength of 0 sets the position to the beginning of the next byte
  and returns an empty string. If bytePos is beyond the length of the
  string, an INDEX_ERROR is avoided.
- In echo.s7i, editline.s7i, line.s7i, strifile.s7i and stritext.s7i
  the function gets() has been improved to always raise RANGE_ERROR
  for a negative maxLength. A maxLength of 0 always returns an empty
  string.
- In png.s7i reading of PNG chunks has been refactored.
- In gzip.s7i, iobuffer.s7i, lzma.s7i, strifile.s7i, xz.s7i and
  zstd.s7i the function seek() has been improved to raise RANGE_ERROR
  for positions <= 0.
- In asn1.s7i, ccittfax.s7i, cli_cmds.s7i, csv.s7i, ftp.s7i, html.s7i,
  htmldom.s7i, http_response.s7i, makedata.s7i, stritext.s7i and
  wildcard.s7i, appending an element to an array has been improved. Now
  it is done with "anArray &:= element" instead of
  "anArray &:= [] (element)".
- In chkstr.sd7 the tests for the functions lower() and upper() have
  been improved to use expression arguments.
- In chkbig.sd7 tests for the bigInteger sci operator have been added.
- Tests for close() of LSB/MSB bit streams have been added to
  chkbitdata.sd7.
- The program chk_all.sd7 has been adjusted to the changes in
  chkbig.sd7 and chkbitdata.sd7.
- The libraries bigint.s7i, bigrat.s7i, deflate.s7i, elliptic.s7i,
  encoding.s7i, gzip.s7i, inflate.s7i, iobuffer.s7i, lzma.s7i, png.s7i,
  rational.s7i, scanstri.s7i, strifile.s7i, stritext.s7i, xz.s7i and
  zstd.s7i have been improved to use fixLen sub-strings.
- The program bas7.sd7 has been improved to use fixLen sub-strings.
- In s7c.sd7 names of array and hash types have been refactored.
- In bin32.s7i the deprecated functions bin32AsFourBytesBe and
  bin32AsFourBytesLe have been removed.
- In bin64.s7i the deprecated functions bin64AsEightBytesBe and
  bin64AsEightBytesLe have been removed.
- In bytedata.s7i the deprecated functions int16AsTwoBytesBe,
  int32AsFourBytesBe, int64AsEightBytesBe, int16AsTwoBytesLe,
  int32AsFourBytesLe, int64AsEightBytesLe, bigAsEightBytesBe and
  bigAsEightBytesLe have been removed.
- In lzw.s7i the deprecated functions lzwEncodeMsb() and lzwDecodeMsb()
  have been removed.
- In gzip.s7i the deprecated functions openGunzipFile(aFile) and
  openGzipFile(aFile) have been removed.
- In arr_rtl.c the function arrInsertArrayTemp() has been added, and
  the function arrInsertArray() has been changed to leave the
  'elements' array as is.
- The "clean" target of the makefiles has been improved to only remove
  the libraries created by the same makefile.
- The library names in mk_emccl.mak and mk_emccw.mak have been changed
  from *.a to *_emc.a. Additionally, the file ../bin/cc_conf_emcc.prop
  is created, when running make. This allows the Emscripten
  version of Seed7 to be installed parallely to the normal Seed7
  installation.
- The makefiles mk_mingw.mak and mk_nmake.mak have been improved to
  avoid the "file too big"/"too many sections" error.
- Documentation comments have been improved in bitdata.s7i, echo.s7i,
  editline.s7i, keybd.s7i, line.s7i, osfiles.s7i, stritext.s7i,
  tls.s7i, arr_rtl.c, drwlib.c and kbdlib.c.

20230130:
- The drivers used in the browser (when Seed7 is compiled with
  Emscripten) have been improved (in con_emc.c, drw_emc.c, fil_emc.c,
  gkb_emc.c, tim_emc.c and emc_utl.c). Now graphic Seed7 programs can
  be compiled to JavaScript and Webassembly to run them in the browser.
- A new sub-string operation with a guaranteed length (fixLen) has been
  introduced. E.g.: "abcde"[2 fixLen 3].
- 30 libraries have been adjusted to use the fixLen sub-string. The
  guaranteed sub-string length assures that conversions like
  bytes2Int() do not get data that is too short.
- The library zip.s7i has been fixed to work correctly if a descriptor
  signature follows the deflated data.
- The library jpeg.s7i has been refactored to use the segment length
  for reading a segment into a string.
- A close() function for LSB and MSB bit streams has been addded to
  bitdata.s7i. The close() sets the the position of the underlying
  file directly after the bit stream. This is used by the function
  inflate() (in the inflate.s7i library).
- The function flush() has been added to the tee.s7i library.
- Several characters in the fonts stdfont10.s7i, stdfont12.s7i,
  stdfont14.s7i, stdfont16.s7i, stdfont18.s7i, stdfont20.s7i,
  stdfont24.s7i, vecfont10.s7i and vecfont18.s7i have been improved.
- Interpreter and compiler have been improved to support the action
  STR_SUBSTR_FIXLEN.
- The compiler (s7c.sd7) has been improved:
  - Support for arcs with thickness has been added (action DRW_PFARC).
  - Code that reports a GRAPHIC_ERROR is now generated.
  - The optimizations for string sub-strings ("abcde"[2 len 3] and
    "abcde"[2 fixLen 3]) have been improved.
  - The optimizations for combinations of sub-string and conversion to
    integer (e.g.: bytes2Int(stri[5 fixLen 4], UNSIGNED, LE) ) have
    been improved.
  - The size of the generated init_values function has been reduced.
  - If requested by USE_DO_EXIT, the function doExit() is called at the
    end of the program.
  - Profiling data is stored in allocated memory instead of an array.
    Some C compilers had problems with the array approach.
- The documentation in doc/faq.htm, doc/faq.txt, src/read_me.htm and
  src/read_me.txt has been updated.
- More detailed error messages have been introduced in chkbig.sd7,
  chkint.sd7 and chkset.sd7.
- Tests in chkint.sd7, chkstr.sd7 and chkidx.sd7 have been improved to
  check the new sub-string function (fixLen) with and without a
  subsequent conversion to integer.
- Tests in chkidx.sd7 have been refactored to use if-statements
  instead of using an ok variable.
- An optional event tracing has been added to con_win.c.
- The event tracing in drw_win.c and gkb_win.c has been improved.
- The program chkccomp.c has been improved to determine
  SYSTEM_RESULT_FOR_RETURN_0 in a way that works also with Emscipten.
- The test programs to determine LIMIT_FMT_E_MAXIMUM_FLOAT_PRECISION
  and LIMIT_FMT_F_MAXIMUM_FLOAT_PRECISION in chkccomp.c have been
  improved to define the large array outside of main (Emsripten
  needs this).
- In common.h the format strings for OS_OFF_T have been changed to
  prefer the long format if sizeof(int) = 4 and sizeof(long) = 4.
- An include of traceutl.h has been added to actlib.c, biglib.c,
  blnlib.c, bstlib.c, chrlib.c, conlib.c, drwlib.c, fillib.c, fltlib.c,
  intlib.c, pcslib.c, pollib.c, setlib.c and strlib.c. This allows
  enabling LOG_FUNCTIONS with strict C compilers.
- The function printSet() has been added to set_rtl.c. This function
  is used in set_rtl.c as replacement for prot_set() when LOG_FUNCTIONS
  is enabled. This allows logging in compiled programs.
- Logging functions have been improved in arr_rtl.c, con_win.c,
  drw_win.c, drw_x11.c, fil_rtl.c and gkb_win.c.
- Occurrences of exit() and atexit() have been replaced by os_exit()
  respectively os_atexit(). This way, the makefiles mk_emccl.mak and
  mk_emccw.mak can define os_exit() and os_atexit() to use doExit()
  and registerExitFunction() instead of the default functions.
- JavaScript specific functions have been moved from fil_unx.c to
  new file fil_emc.c.
- Keyboard functions have been moved from drw_emc.c to the new file
  gkb_emc.c.
- The JavaScript keyboard drivers in con_emc.c and gkb_emc.c have
  been improved to work with synchronous I/O although JavaScript works
  asynchronous in the browser.
- In the new file tim_emc.c the function timAwait() has been
  introduced. This function saves keypresses that happen during the
  wait (it works together with the keyboard drivers from con_emc.c or
  gkb_emc.c).
- The new file emc_utl.c has been introduced. This file contains
  registerExitFunction() and doExit() which replace atexit() and exit()
  under Emscripten. It also defines enqueue() and dequeue() which are
  used during timAwait() to queue keypresses. And finally, it defines
  mapKeyNameIdToKey() which is used by the keyboard drivers.
- Functions to register and execute callbacks have been added to
  pre_js.js.
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  use the linker options ASYNCIFY, ASYNCIFY_STACK_SIZE and
  EXIT_RUNTIME. The new files emc_utl.c, fil_emc.c, tim_emc.c and
  gkb_emc.c have also been added.
- JavaScript strings in the .c files have been refactored to use "
  instead of '.
- The definition of USE_DO_EXIT has been added to cc_conf.s7i. The file
  cmd_rtl.c and the program confval.sd7 have been adjusted accordingly.
- The keyboard driver gkb_x11.c has been improved to work correctly
  when the keyboard layout is switched.
- Documentation comments have been improved in string.s7i, str_rtl.c
  and strlib.c.

20221218:
- Examples for reading from the keyboard have been added to the manual.
- In src/read_me.txt and src/read_me.htm the description "compiling
  Seed7 under windows with cl from MSVC" has been improved. The
  description of possible C compiler warnings has also been improved.
- Support for the ternary operator ?: has been added to the types
  bitset, color, duration and time.
- The graphic keyboard test program gkbd.sd7 has been improved to
  support super/windows keys.
- Definitions of KEY_SUPER, KEY_LEFT_SUPER and KEY_RIGHT_SUPER have
  been added to the libraries keybd.s7i and keydescr.s7i.
- The tls.s7i library has been improved to reopen a socket if the
  old session cannot be reused.
- In gif.s7i a small error in reading a GIF header has been fixed.
- The compiler (s7c.sd7) has been improved:
  - Unsupported Seed7 compiler options trigger a warning now.
  - Better optimizations for abs(), mdiv and mod are done.
  - More integer overflow checks of abs(), <<, *, div, mdiv, mod and
    rem are optimized away (with option -oc3).
  - More division by zero checks are optimized away.
  - Computing the range of possible integer results for abs(),
    bitLength(), log2(), log10(), sqrt(), +, -, <<, >>, - (negate), *
    and ?: (ternary operator) has been improved. This also helps in
    reducing the number of integer overflow checks.
  - The statistics about integer overflow checks and division checks
    have been improved.
  - A warning is written at a catch of otherwise when checks for an
    exception have been suppressed (this is done with -w2).
- The code coverage of the integer tests in chkint.sd7 and
  chkovf.sd7 has been increased. Now, all code in comp/int_act.s7i
  is tested (except code for non-twos-complement computers).
- Several tests in chkint.sd7 have been refactored to avoid
  optimizations that skip tests (Expressions are compared with
  intExpr(value) instead of just value).
- Documentation comments have been improved in time.s7i.
- The graphic driver for windows (drw_win.c) has been improved:
  - Windows are now created with a size that includes decorations.
  - The windows class is registered with with RegisterClassExW() now.
    This triggers the creation of Unicode windows (where keypresses
    return Unicode characters).
  - A function to draw filled chords (drwPFArcChord) under windows has
    been added.
  - An empty window is just created once on initialization and stored
    globally.
- The graphic keyboard driver for windows (gkb_win.c) has been
  improved:
  - The function getc(GRAPH_KEYBOARD) now returns Unicode characters.
  - Dead keys are returned directly and are not combined with the next
    character pressed (this combining can be done by the program).
  - Holding down a windows/super key and pressing a cursor key is
    supported now (this resizes and moves the current active window).
    In this case the program now receives KEY_RESIZE characters (if
    they have been requested with selectInput()).
  - Combinations of CTRL + ALT + letter are now recognized correctly
    (CTRL is preferred over ALT in combinations with a letter).
  - The combination of cursor, function and mouse keys with modifier
    keys now prefers SHIFT over the other modifiers and CTRL over ALT.
  - The recognition of button presses in gkbButtonPressed() has been
    improved to also work for Unicode characters.
  - Now wide char functions (CreateWindowW(), CreateWindowExW(),
    MapVirtualKeyW(), PeekMessageW(), GetMessageW()) are used and only
    correctly received messages are processed.
  - The lowest four bits of a system command (wParam of WM_SYSCOMMAND
    message) are ignored now.
  - Macros are used to recognize mouse wheel and xbuttons.
  - Macro definitions have been added, as some C compilers do not
    provide them.
- The graphic keyboard drivers (gkb_win.c and gkb_x11.c) have been
  improved to support super/windows keys.
- The support for the unused action CHR_CONV has been removed.
- The number of C compiler warnings has been reduced.
- Unnecessary initialisations and assignments have been removed in
  several C files.
- Usages of strcpy() and wcscpy() have been reduced.
- In hshlib.c the hash table for-loops have been adjusted to process
  the elements in the same succession as in compiled programs. The
  code has also been simplified.
- The program chkccomp.c has been improved:
  - Now, a backup copy of the source file (e.g. ctest123.cbak) is
    created if a test program fails.
  - Now, an empty output of a test program is recognized and the test
    is repeated (Some anti-virus software of Windows may trigger this).
  - Now, it considers wasm files for an Emscripten build.
  - The macros os_setmode, os_fdopen and os_fileno are determined.
- Usages of isatty(), fdopen() and fileno() have been replaced by
  os_isatty(), os_fdopen() and os_fileno() respectively.
- Some fixes for Emscripten have been done:
  - The files mk_emccl.mak and mk_emccw.mak have been adjusted for the
    newest version of Emscripten. Now, there is source information in a
    stack trace, and the stack size used by Emscipten has been
    increased.
  - In chkccomp.c wasm files are considered now.
  - The size of functions has been reduced in chkchr.sd7, chkint.sd7
    and chkstr.sd7. This avoids a stack overflow in Node.js.
- Logging functions have been added or improved in drw_win.c,
  gkb_win.c, gkb_x11.c and intlib.c.

20221105:
- The picture viewer pv7.sd7 has been improved to support zooming
  and moving.
- The graphical keyboard test program gkbd.sd7 has been improved to
  write the cursor position when a mouse key is clicked.
- The function isLetter() in char.s7i has been improved to support
  Unicode 15.0.
- When matching an expression failed, two errors were reported.
  A match error and an exception error (Exception MEMORY_ERROR
  raised). The unnecessary exception error has been removed from
  interpreter and compiler.
- Additional versions of getPixmap() have been added to the library
  draw.s7i.
- In x509cert.s7i the algorithm OID of the signature in
  stdCertificate and other generated certificates has been corrected.
- The function getDigestOidFromSignatureAlgorithm() has been added
  to x509cert.s7i.
- In syntax.s7i the definition of the ternary operator (a ? b : c)
  has been improved to allow chaining (e.g.: a ? b : c ? d : e).
- The function fromAsciiz() has been added to bytedata.s7i.
- Functions to convert null terminated UTF-16 strings
  (fromNullTerminatedUtf16Be(), fromNullTerminatedUtf16Le(),
  getNullTerminatedUtf16Be() and getNullTerminatedUtf16Le()) have
  been added to unicode.s7i.
- In editline.s7i the function getln() has been improved to use a
  case-statement instead of an if-then-else chain.
- Tests for the new conversion functions of unicode.s7i have been
  added to chkstr.sd7.
- The program chkchr.sd7 has been adjusted to test the improved
  function isLetter().
- The graphic keyboard driver of Windows (in gkb_win.c) has been
  improved to return the mouse wheel button position in window
  coordinates (instead of screen coordinates).
- In gkb_win.c usages of the macros LOWORD and HIWORD have been
  replaced with GET_X_LPARAM and GET_Y_LPARAM.
- In prclib.c the functions prc_begin(), prc_local(),
  prc_res_begin(), prc_return(), prc_return2(), prc_varfunc(),
  prc_varfunc2() have been improved to raise CREATE_ERROR instead
  of MEMORY_ERROR, if the block_body is NULL. This removes an
  unnecessary MEMORY_ERROR when matching an expression fails.
- In chr_rtl.c the function chrIsLetter() has been improved to
  support Unicode 15.0.
- In drw_x11.c the function drwGetPixmap() has been improved to set
  destination pixels from areas outside of the source window to
  black.
- Logging functions have been improved in exec.c, expr.c and
  syntax.c.
- The console keyboard drivers (in kbd_inf.c and kbd_poll.c) have
  been improved to support reading of alt-A to alt-Z when upper
  case letters are pressed.
- In gkb_x11.c the performance of setupModState() has been improved.
- Build now uses the macro POTENTIAL_PARTIAL_LINKING_OPTIONS
- The graphic keyboard driver of Linux (in gkb_x11.c) has been
  improved to reduce number of XQueryKeymap() calls
- Parameters in bin32.s7i and bin64.s7i have been renamed.
- Undocumented functions to cast between integer and float have been
  removed from float.s7i.
- In wildcard.s7i the function findMatchingFiles() has been improved
  to support case insensitive pattern matching.
- The library cli_cmds.s7i has been improved to use case insensitive
  file pattern matching for DOS/Windows commands.
- The files chkccomp.c, mk_djgpp.mak and mk_djgp2.mak have been
  altered to take into account that error redirection with 2> fails
  under DOS.
- Support for the actions FLT_CAST and FLT_ICAST has been removed
  from interpreter and compiler.
- Spelling errors have been fixed in faq.htm, faq.txt, manual.htm,
  manual.txt, chlog.txt, bitdata.s7i, bmp.s7i, ftp.s7i, gif.s7i,
  ico.s7i, jpeg.s7i, pem.s7i, png.s7i, ppm.s7i, tiff.s7i,
  sql_cli.c, striutl.c.
- Documentation comments have been improved in bytedata.s7i,
  char.s7i, draw.s7i, chr_rtl.c, chrlib.c and drw_win.c.

20220724:
- The operating system DOS is supported (with DJGPP) again. The tests
  have been done with Dosbox.
- Explanations about syntax highlighting, static type checking and
  return type overloading have been improved in the FAQ.
- In the manual, the chapter about the keyboard has been improved to
  explain the window close button and window resize events.
  The manual has also been adjusted to describe the new functions
  instead of the deprecated ones.
- The error messages for failed declarations have been improved.
- The error reporting has been improved to also show an error line
  if parsing the file has finished.
- Reading from a Windows console with getc(KEYBOARD) has been
  improved to support all Unicode characters (including characters
  outside of the Basic Multilingual Plane). This allows the reading
  of characters that have been pasted from the clipboard to a console
  window.
- The functions inputReady(), getc(aFile, NO_WAIT), clickedXPos()
  and clickedYPos() have been added to keybd.s7i.
- The functions toUtf8(), fromUtf8(), toUtf16Be(), fromUtf16Be(),
  toUtf16Le(), fromUtf16Le() and fromUtf7() have been added to
  unicode.s7i.
- The functions toUtf16Be() and toUtf16Le() raise RANGE_ERROR if a
  surrogate character is present.
- The functions fromUtf16Be() and fromUtf16Le() raise RANGE_ERROR
  if an invalid surrogate pair is found (a single surrogate character
  or surrogate characters not in the proper succession).
- In unicode.s7i the function replaceUtf16SurrogatePairs() has been
  fixed to work correctly.
- Tests for toUtf16Be(), fromUtf16Be(), toUtf16Le(), fromUtf16Le()
  and replaceUtf16SurrogatePairs() have been added to chkstr.sd7.
- Several improvements have been done in chkccomp.c:
  - If reading a numeric test result fails, the program waits for a
    second before restarting the test.
  - It shows an error message if a test fails to deliver a numeric
    result.
  - It does not create an empty test program. Some anti virus
    software considers an empty program to be dangerous.
  - It determines if partial linking is actually working.
  - A list of potential partial linking options is tested to find
    the correct one.
  - The number of warnings has been reduced.
- In tim_dos.c, tim_unx.c and tim_win.c the function timNow() has
  been improved to work also for an unsigned time_t.
- The support for the unused action SCT_ELEM has been removed.
- In keybd.s7i the functions keypressed(), busy_getc(), getxpos()
  and getypos() are deprecated now. The functions inputReady(),
  getc(aFile, NO_WAIT), clickedXPos() and clickedYPos() should be
  used instead.
- The files dialog.s7i, bas7.sd7, carddemo.sd7, castle.sd7,
  clock.sd7, clock2.sd7, clock3.sd7, dnafight.sd7, ftp7.sd7,
  gkbd.sd7, hal.sd7, kbd.sd7, klondike.sd7, lander.sd7,
  mahjong.sd7, mandelbr.sd7, mirror.sd7, pac.sd7, pairs.sd7,
  panic.sd7, planets.sd7, prime.sd7, pv7.sd7, rand.sd7,
  savehd7.sd7, shisen.sd7, sl.sd7, snake.sd7, sokoban.sd7,
  sudoku7.sd7, tet.sd7, tetg.sd7 and wator.sd7 have been altered
  to use inputReady(), getc(aFile, NO_WAIT), clickedXPos() and
  clickedYPos() instead of the deprecated functions.
- In keybd.s7, the implementation of getc(aFile, NO_WAIT) is now
  based on inputReady(). The primitive actions KBD_BUSY_GETC and
  GKB_BUSY_GETC are not needed anymore.
- The support for the primitive actions KBD_BUSY_GETC and
  GKB_BUSY_GETC has been removed from interpreter and compiler.
  Changes have been done in drwlib.c, drwlib.h kbdlib.c, kbdlib.h,
  primitiv.c, comp/action.s7i, comp/gkb_act.s7i and
  comp/kbd_act.s7i.
- The actions GKB_KEYPRESSED and KBD_KEYPRESSED have been renamed
  to GKB_INPUT_READY and KBD_INPUT_READY respectively.
- In unicode.s7i the functions striToUtf8(), utf8ToStri(),
  striToUtf16be(), utf16beToStri, striToUtf16le, utf16leToStri and
  utf7ToStri() are deprecated now. The functions toUtf8(),
  fromUtf8(), toUtf16Be(), fromUtf16Be(), toUtf16Le(),
  fromUtf16Le() and fromUtf7() should be used instead.
- The files ar.s7i, cgi.s7i, cgidialog.s7i, charsets.s7i, cpio.s7i,
  csv.s7i, ftp.s7i, ftpserv.s7i, gethttp.s7i, httpserv.s7i, rpm.s7i,
  tar.s7i, zip.s7i, chkstr.sd7, ide7.sd7 s7c.sd7, comp/debug.s7i and
  comp/expr_util.s7i have been altered to use the new functions
  instead of the deprecated function.
- The exception CLOSE_ERROR has been renamed to GRAPHIC_ERROR.
- The graphic drivers have been changed to raise GRAPHIC_ERROR
  instead of FILE_ERROR.
- The C macro SUPPORTS_PARTIAL_LINKING has been renamed to
  LINKER_OPT_PARTIAL_LINKING in chkccomp.c and several makefiles.
- The functions checkPartialLinking() and determinePartialLinking()
  have been added to chkccomp.c. These functions determine if
  partial linking is actually working.
- Documentation comments have been improved in keybd.s7i,
  unicode.s7i, drwlib.c and kbdlib.c.
- In several files phrases like "illegal encoding" and
  "illegal file names" have been replaced with "invalid encoding"
  and "invalid file names".

20220626:
- Syntax highlighting for the Nano editor has been added. Many
  thanks to Duke Normandin for creating seed7.nanorc.
- The syntax highlighting of vim (in seed7.vim) has been improved.
- The file syntaxhl.sd7 has been improved.
- Explanations about type inference, return type overloading and
  integer overflow have been improved in the FAQ.
- In the manual the tutorial chapter "For loop and containers" has
  been improved. The chapter about errors has been improved also.
- The documentation in src/read_me.txt has been improved and the
  new file src/read_me.htm has been introduced.
- The interpreter (s7) has been improved to write the error message
  with the correct line if a declaration fails (changes have been
  done in dcllib.c and error.c).
- The new library pem.s7i has been added. This library supports the
  PEM cryptographic file format.
- In encoding.s7i the function fromBase64 has been improved to
  check that no = is in the middle of a base64 string.
- The library zstd.s7i has been fixed to work correctly if the ID
  field size of the dictionary is 0.
- The Seed7 compiler (s7c) has been improved to support warning
  levels.
- The compiler has been improved to support case statements if the
  C switch statement does not work for int64Type (in prc_act.s7i).
- In the compiler the string concatenation optimizations have been
  improved (in str_act.s7i).
- Tests for string concatenation have been added to chkstr.sd7.
- Checks for converting float expressions to bin32 and bin64 have
  been added to chkbin.sd7.
- The support for the function log1p has been improved (in
  flt_rtl.c, flt_rtl.h and flt_act.s7i).
- In the library asn1.s7i the function printAsn1 has been improved.
- The usage of the GMP library has been disabled by default. It
  turned out that database connection libraries used GnuTLS which
  used GMP with a custom memory allocator. This caused a memory
  corruption. All makefiles now define USE_GMP as 0.
- The program chkccomp.c has been improved to:
  - Determine the C language version supported by the compiler.
  - Determine C overflow behavior of int division.
- The handling of integer division overflow has been fixed to avoid
  a MinGW gcc bug that triggers an endless loop.
- Several types in database drivers have been renamed to avoid
  violating the C++ One Definition Rule (in sql_cli.c, sql_db2.c,
  sql_fire.c, sql_ifx.c, sql_lite.c, sql_my.c, sql_oci.c,
  sql_post.c, sql_srv.c and sql_tds.c).
- Adjustments have be done in s7c.sd7 and comp/str_act.s7i to
  support compilation with a C++ compiler.
- In common.h the macro logErrorIfTrueX has been introduced.
- Function logging has been added to big_gmp.c, kbd_inf.c and
  kbd_poll.c.
- Errors in function logging have been fixed in arr_rtl.c,
  big_rtl.c, drw_x11.c and sql_rtl.c.
- Definitions of LOG1P_FUNCTION_OKAY, INT_DIV_OVERFLOW and
  INT_REM_OVERFLOW have been added to cc_conf.s7i. The definition
  of HAS_LOG1P has been removed. The file cmd_rtl.c and the program
  confval.sd7 have been adjusted.
- Documentation comments have been updated in array.s7i, bin32.s7i,
  bin64.s7i, cc_conf.s7i, external_file.s7i, file.s7i, hash.s7i,
  math.s7i and flt_rtl.c.

20220522:
- An explanation for Seed7 syntax highlighting has been added to
  the FAQ.
- Syntax highlighting for vim and UltraEdit has been fixed in the
  files doc/sd7.vim, doc/seed7.vim and doc/seed7.uew.
- Syntax highlighting support for notepad++ has been added with the
  file doc/seed7udl.xml
- The file syntaxhl.sd7 has been added. It can be used to test
  Seed7 syntax highlighting.
- In the string.s7i library, the functions lower() and upper() now
  use an up to date Unicode definition.
- The library gzip.s7i has been refactored to use the new type
  gzipHeader and to avoid calling getUInt16Le().
- The function getDigestOidFromAlgorithm() has been added to the
  library x509cert.s7i.
- The pac.sd7 example program has been refactored. Now it also
  works when compiled.
- The calc7 example program has been improved to support functions
  from the draw.s7i library.
- Tests for array append ( &:= ), the 'times' operator and the
  function remove() have been added to chkarr.sd7.
- Tests in chkovf.sd7 have been refactored.
- Tests for Unicode case conversions and for conversions to UTF-8
  have been added to chkstr.sd7.
- Errors in getGidFromGroup() and getUidFromUser() have been fixed
  in the file cmd_unx.c.
- In literal.c the error message for empty char literals has been
  improved.
- The number of C compiler warnings has been reduced in sql_oci.c,
  drw_win.c and int_rtl.c.
- In drw_drv.h, drw_dos.c, drw_emc.c, drw_win.c, drw_x11.c, s7.c,
  s7c.sd7 and comp/drw_act.s7i, the graphics support has been
  changed to call drawInit() at program start.
- The function drawInit() has been added to drw_dos.c and
  drw_emc.c.
- With these changes in the graphics support, an explicit
  initialization of graphics is no longer necessary. The explicit
  graphics initialization has been removed from bmp.s7i, gif.s7i,
  ico.s7i, jpeg.s7i, png.s7i, ppm.s7i and tiff.s7i.
- In str_rtl.c the functions toLower() and toUpper() have been
  improved to use an up to date Unicode definition.
- In drw_x11.c the exception checks in the function drwText have
  been improved.
- In src/read_me.txt the explanation for how to compile under
  Windows with cl from MSVC has been improved.
- In sql_fire.c the function setupParameters() has been changed to
  check wether malloc() returns NULL.
- In sql_ifx.c the function createConnectionString has been
  changed to optionally consider the DB_LOCALE. Now, the function
  opening the Informix DB will try to do so with and without
  DB_LOCALE.
- The compiler (s7c.sd7) has been changed to use stderr for a
  trace of functions (option: -tf).
- The compiler has been improved to support tracing of dynamic
  calls (option: -td). This tracing is also written to stderr.
- The compiler has been changed to raise ACTION_ERROR if a dynamic
  call would result in an endless recursion.
- The program chkccomp.c has been improved to restart tests if no
  numeric result could be obtained. This is necessary for the
  program to work reliable under Windows with certain virus
  detection software.
- Documentation comments have been improved in color.s7i.

20220410:
- In time.s7i, the function time(string) has been improved to
  consider the daylight saving time. Many thanks to Anders
  Carstensen for pointing out the problem and for providing a test
  program.
- Explanations of the times operator and the functions bytes(),
  bytes2Int(), bytes2BigInt(), expm1(), log1p(), ignore() and
  openServerTls() have been added to the manual.
- In the manual, the chapters about primitive actions and about the
  foreign function interface have been improved.
- The FAQ and manual have been improved to consider the Informix
  database.
- In ccittfax.s7i, the CCITT fax decoding has been improved.
- In tiff.s7i, reading of TIFF files has been improved. Now, the
  requested length of Lempel Ziv Welch compressed data is computed
  correctly.
- In jpeg.s7i, reading of JPEG files has been improved to use the
  component ID. Now, a hash from component ID to component type is
  used. The old code assumed that component ID and component type
  would be equal, and it raised RANGE_ERROR when this was not the
  case.
- In bitdata.s7i, the performance of the functions getBit() and
  getBits() with a msbBitStream has been improved.
- In array.s7i, the times operator has been improved to work with
  [A len L] times element.
- A definition of the [A len L] operator has been added to
  syntax.s7i.
- In x509cert.s7i reading and validating certificates has been
  improved. Now, there is partial support for PKCS #7 certificates.
- The libraries tls.s7i and showtls.s7i have been improved to
  support TLS certificate_request, client_certificate and
  certificate_verify messages.
- The compiler (s7c.sd7) has been improved to write better error
  messages for duplicate when values.
- The program gkbd.sd7 has been improved to consider the space key.
- In ref_data.c the function refArrToList() has been improved to
  raise RANGE_ERROR for an illegal array value.
- In dcllib.c the function dcl_elements() has been improved to work
  correctly when push_stack() is a noop.
- The files sql_fire.c and sql_tds.c have been improved to reduce C
  compiler warnings.
- The program chkccomp.c has been improved to allow build tests to
  deliver a result after a delay.
- In soc_rtl.c the functions socGets() and receive_and_alloc_stri()
  have been improved to set the EOF indicator instead of raising
  FILE_ERROR if the peer has crashed.
- In soc_rtl.c, the function logError() will now be called if
  recv() fails.
- In chkccomp.c, the function determineInformixDefines has been
  improved to avoid the definition of an empty C array.
- The makefile mk_msvc.mak has been changed to define
  LIMITED_CSTRI_LITERAL_LEN. This avoids that the C compiler runs
  out of heap space.
- Documentation comments have been updated in graph.s7i, tls.s7i,
  x509cert.s7i, ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i.

20220312:
- Two typos in fwd_x11.c have been fixed. Thanks to Zachary Menzies
  for pointing them out.
- Interpreter and compiler have been improved to support Informix
  databases.
- The example program portfwd7.sd7 has been added. Portfwd7 is a
  port forwarder to redirect network communication.
- The run-time to write a BMP file has been reduced to 74% (measured
  with gcc and valgrind).
- The error messages for "Match failed" and "Variable expected"
  errors have been shortened.
- The program gkbd.sd7 has been improved to show when mouse
  buttons are pressed.
- The browser interface in browser.s7i has been improved to support
  Chromium and Edge.
- In http_response.s7i, the HTTP response has been improved to
  support JPEG, ICO and TIFF files.
- The pv7 picture viewer has been improved to use the path of the
  image.
- The function hasImageExtension() has been moved from pv7.sd7 to
  the imagefile.s7i library.
- The example program findchar.sd7 has been improved to support
  Windows/DOS paths.
- The support for primitive actions in the compiler has been
  improved.
- The function loadBaseDlls() has been added to sql_post.c.
- In tls.s7i an error in processing change_cipher_spec has been
  fixed.
- The program chkbig.sd7 has been refactored to use smaller
  functions.
- An additional test for case statements has been added to
  chkprc.sd7.
- The function getPixelArray() has been added to draw.s7i.
- The function setPointerPos() has been added to graph.s7i.
- The libraries bmp.s7i, ico.s7i and ppm.s7i have been improved to
  use the function getPixelArray() to write BMP, ICO and PPM images.
- In the libraries bmp.s7i, gif.s7i, jpeg.s7i, png.s7i, ppm.s7i and
  tiff.s7i calls of imagePixmap() have been replaced by calls of
  getPixmap().
- The undocumented functions imagePixmap() and getImage() have been
  renamed to getPixmap() and getPixelData() respectively.
- The compiler (s7c) has been improved to inline the action
  DRAW_PIXEL_TO_RGB.
- The makefiles have been improved to simplify the build system. Now
  utilities like chkccomp, wrdepend, setwpath and sudo are compiled
  with extra commands. Support for Informix databases has also been
  added.
- Several improvements have been made in chkccomp.c:
  - It now writes more detailed error messages.
  - The function appendOption() has been improved to check if an
    option is already an element in the list.
  - The functions fileIsPresentPossiblyAfterDelay(), runTest(),
    doTestNoResultCheck(), addDynamicLibToDllListWithRpath(),
    addDynamicLib(), addDynamicLibsWithRpath() and
    determineInformixDefines() have been added.
  - Now the macros ODBC_SIZEOF_SQLWCHAR, DB2_SIZEOF_SQLWCHAR and
    INFORMIX_SIZEOF_SQLWCHAR, SQL_SERVER_SIZEOF_SQLWCHAR are
    written into version.h.
  - Macros to support Informix databases are written into version.h.
- In sql_base.c the error message concerning the searching for
  dynamic libraries has been improved.
- Now the static functions hasDataType() and dataTypeIsUnsigned() in
  sql_cli.c are only defined when needed.
- In all C source files, the types wcharType and wstriType have been
  replaced by utf16charType and utf16striType respectively. This
  avoids confusion, since sizeof(wchar_t) is 2 in Windows and 4 in
  Linux/Unix/BSD (although sizeof(wcharType) was always 2).
- Definitions of utf32charType and utf32striType have been added to
  common.h.
- Explanations of utf16charType, utf16striType, utf32charType and
  utf32striType have been added to the manual.
- In heaputl.h, the macros SIZ_WSTRI, MAX_WSTRI_LEN and ALLOC_WSTRI
  have been removed. Definitions of the macros SIZ_UTF16, SIZ_UTF32,
  MAX_UTF16_LEN, MAX_UTF32_LEN, ALLOC_UTF16, ALLOC_UTF32,
  REALLOC_UTF16, REALLOC_UTF32, UNALLOC_UTF16 and UNALLOC_UTF32
  have been added.
- The database drivers sql_cli.c sql_db2.c, sql_odbc.c and sql_srv.c
  have been changed to use SQLWCHAR instead of wcharType and
  wstriType.
- In sql_cli.c the macros SIZ_SQLWSTRI, MAX_SQLWSTRI_LEN,
  ALLOC_SQLWSTRI, UNALLOC_SQLWSTRI, stri_to_sqlwstri,
  sqlwstri_to_stri and copy_to_sqlwstri have been introduced. These
  macros allow the DB interface to work for sizeof(SQLWCHAR) == 2
  and sizeof(SQLWCHAR) == 4.
- The Informix database driver sql_ifx.c has been added.
- The macro BIGINT_LIB has been renamed to BIGINT_LIBRARY in
  chkccomp.c, common.h, big_gmp.c, big_rtl.c, flistutl.c and
  heaputl.h.
- Documentation comments have been improved in bmp.s7i, ccittfax.s7i,
  draw.s7i, hmac.s7i, huffman.s7i, ico.s7i, imagefile.s7i, lzw.s7i,
  ppm.s7i,
- In sql_base.s7i, the value DB_INFORMIX has been added to the
  enumeration type dbCategory.
- Functions to open Informix databases have been added to
  sql_base.s7i and sqllib.c.
- The function quoteTableNames() has been added to sql_base.s7i.
- The program db7.sd7 has been improved to quote table names
  depending on the database type.
- The function drwPFArc() has been added to drw_dos.c and drw_emc.c.
- The program wrdepend.c has been improved to support
  INFORMIX_INCLUDE_OPTION.
- The function XWarpPointer() has been added to fwd_x11.c and
  x11_x.h.
- Interpreter and compiler have been improved to support the actions
  DRW_GET_PIXEL_ARRAY, DRW_SET_POINTER_POS and SQL_OPEN_INFORMIX.
- The actions DRW_IMAGE, DRW_GETIMAGE and DRW_GET have been renamed
  to DRW_GET_PIXMAP_FROM_PIXELS, DRW_GET_PIXEL_DATA and
  DRW_GET_PIXMAP respectively.
- Action and function names have been refactored to fit to each
  other. The actions DRW_CONVPOINTLIST, DRW_FPOLYLINE,
  DRW_GENPOINTLIST, DRW_GETIMAGEPIXEL, DRW_GETPIXEL, DRW_PIXELTORGB,
  DRW_POLYLINE, DRW_SETCLOSEACTION, DRW_SETCONTENT,
  DRW_SETCURSORVISIBLE, DRW_SETPOS, DRW_SETTRANSPARENTCOLOR,
  DRW_SETWINDOWNAME, DRW_TOBOTTOM and DRW_TOTOP have been renamed to
  DRW_CONV_POINT_LIST, DRW_FPOLY_LINE, DRW_GEN_POINT_LIST,
  DRW_GET_IMAGE_PIXEL, DRW_GET_PIXEL, DRW_PIXEL_TO_RGB,
  DRW_POLY_LINE, DRW_SET_CLOSE_ACTION, DRW_SET_CONTENT,
  DRW_SET_CURSOR_VISIBLE, DRW_SET_POS, DRW_SET_TRANSPARENT_COLOR,
  DRW_SET_WINDOW_NAME, DRW_TO_BOTTOM and DRW_TO_TOP respectively.
- The file primitiv.c has been adjusted to use the new action names.
- The files drwlib.c and drwlib.h have been refactored to use
  function names that correspond to action names.
- In drw_rtl.c the functions memcpy_pixel() and drwRtlImage() have
  been renamed to memcpy_to_pixel() and drwGetPixmapFromPixels()
  respectively.
- The functions memcpy_from_pixel() and drwGetPixelArray() have been
  added to drw_rtl.c.
- In drw_win.c, the function rwGetImage() and drwGet() have been
  renamed to drwGetPixelData() and drwGetPixmap() respectively.
- The function drwSetPointerPos() has been added to drw_win.c and
  drw_x11.c.
- In error.c the new macro MAX_DEPTH_SHOWN defines the expression
  depth shown in "Match failed" and "Variable expected" error
  messages.
- The functions stri_to_wstri16(), stri_to_wstri32(),
  wstri16_to_stri() and wstri32_to_stri() have been added to
  striutl.c.
- The files comp/drw_act.s7i and comp/sql_act.s7i have been adjusted
  to support the new action names.

20220130:
- An arc() function (to draw an arc) with a width (thickness)
  parameter has been added to the draw.s7i library. Many thanks to
  Zachary Menzies for pointing out that it was missing.
- The new library tiff.s7i has been added. This library supports the
  TIFF image file format.
- The new library ccittfax.s7i has been added. This library supports
  CCITT fax decoding as it is used in TIFF files.
- The library zip.s7i has been improved to support reading zip64
  archives.
- A chapter about the type 'process' has been added to the manual.
  The chapter about case statements and other chapters of the manual
  have been improved as well.
- Bit streams have been introduced and the huffman decoding has been
  improved. The run-time to extract a gzipped Seed7 archive with tar7
  has been reduced to 46% (measured with gcc and valgrind). Other
  usages of the inflate algorithm (PNG, ZIP, etc.) also benefit from
  the improvements.
- The compiler has been improved to:
  - Optimize overflow checks away for shift operations.
  - Optimize index checks for string operations.
  - Write an error message if an unsupported option is used.
  - Inline the string tail function.
  - Use parentheses to reduce C compiler warnings.
  - Improve optimizations of the bytes2Int() function.
  - Improve checking of division by zero.
- The statistics of the Seed7 compiler (s7c.sd7) has been improved
  to count inlined functions, optimized index checks and optimized
  overflow checks.
- In bitdata.s7i, the types bitStream, lsbBitStream and msbBitStream
  have been introduced. These types support the functions getBit(),
  getBits(), peekBits(), skipBits() and gets().
- In bitdata.s7i, the functions openLsbBitStream() and
  openMsbBitStream() have been introduced to create lsbBitStream
  and msbBitStream values. With these functions, bit streams can be
  created with a file or a string as data source.
- In bitdata.s7i the functions getBitLsb(), getBitsLsb(),
  peekBitsLsb(), skipBitsLsb(), getBitMsb(), getBitsMsb(),
  peekBitsMsb() and skipBitsMsb() with a string as parameter are
  deprecated now. The functions with the types lsbBitStream and
  msbBitStream should be used instead.
- In huffman.s7i the functions getHuffmanSymbolMsb(string, ...) and
  getHuffmanSymbolLsb(string, ...) are deprecated. The functions
  getHuffmanSymbol(msbBitStream, ...) and
  getHuffmanSymbol(lsbBitStream, ...) should be used instead.
- Tests for getBit(), getBits(), peekBits(), skipBits() and gets()
  have been added to chkbitdata.sd7. This refers to tests with
  lsbBitStream and msbBitStream.
- The program chk_all.sd7 has been adjusted to the changes in
  chkbitdata.sd7.
- The functions in inflate.s7i have been improved to use lsbBitStream
  as parameter instead of the previous combination of string, bytePos
  and bitPos.
- The library inflatefile.s7i has been removed. The functions from
  inflate.s7i can be used instead.
- The library cpio.s7i has been improved to check if a CPIO header
  is the correct size.
- The library bytedata.s7i has been improved to raise RANGE_ERROR
  if an empty byte string is converted to integer or bigInteger.
- The library gzip.s7i has been improved to use lsbBitStream and the
  new functions from inflate.s7i.
- The library imagefile.s7i has been improved to support TIFF images.
- The library jpeg.s7i has been improved to use
  getHuffmanSymbol(msbBitStream) instead of
  getHuffmanSymbolMsb(stri, bytePos, bitPos, ...).
- The library lzw.s7i has been improved to support the functions
  lzwDecompress(lsbBitStream, ...), lzwDecompress(msbBitStream, ...),
  lzwDecompressEarlyChange(msbBitStream, codeSize),
  lzwDecompressEarlyChange(msbBitStream, codeSize, requestedLength)
  and lzwDecompressMsbEarlyChange(string, codeSize, requestedLength).
- The files bitdata.s7i, gzip.s7i, inflate.s7i, jpeg.s7i, zstd.s7i
  and chkbitdata.sd7 have been refactored to avoid 'bitStream' as
  variable name. The name 'bitStream' is now used as interface type
  in bitdata.s7i.
- The Seed7 compiler has been improved in comp/arr_act.s7i,
  comp/bin_act.s7i, comp/bst_act.s7i, comp/const.s7i,
  comp/flt_act.s7i, comp/int_act.s7i, comp/intrange.s7i,
  comp/literal.s7i, comp/prc_act.s7i, comp/rfl_act.s7i,
  comp/set_act.s7i, comp/stat.s7i, comp/str_act.s7i and s7c.sd7.
- Checks for bytes(), bytes2Int(), the right shift operator and
  division by zero have been added to chkint.sd7.
- Checks for bin64 shift operations have been added to chkbin.sd7.
- Checks for index access to an empty array have been added to
  chkarr.sd7.
- Checks for bytes2BigInt() have been added to chkbig.sd7.
- In array.s7i the declaration of the times operator has been
  simplified.
- The program pv7.sd7 has been improved to support TIFF files.
- Casts have been added to dll_win.c and libpath.c to reduce C
  compiler warnings.
- In error.c the error message for a failed declaration has been
  improved.
- In str_rtl.c the performance of strHeadSlice() has been improved.
- Unused variables have been removed in several files of the
  compiler.
- In int_rtl.c the functions intBytesBe2Int(), intBytesBe2UInt(),
  intBytesLe2Int() and intBytesLe2UInt() have been changed to raise
  RANGE_ERROR if the string is empty.
- In big_rtl.c and big_gmp.c the functions bigFromByteBufferBe()
  and bigFromByteBufferLe() have been changed to raise RANGE_ERROR
  if the size is zero (the buffer is empty).
- The files drw_win.c, drw_x11.c, drw_drv.h, drwlib.c, drwlib.h and
  primitiv.c have been changed to support the action DRW_PFARC.
- Definitions for the function XSetLineAttributes() have been added
  to fwd_x11.c and x11_x.h.
- In the program chkccomp.c the detection of the division by zero
  behavior and the remainder by zero behavior has been improved.
- Documentation comments have been improved in bstring.s7i,
  bytedata.s7i, bitdata.s7i, null_file.s7i, process.s7i, strifile.s7i
  and biglib.c.

20211225:
- Support for syntax highlighting in vim has been added. Many thanks
  to Johannes Gritsch for providing the files doc/seed7.vim and
  doc/sd7.vim.
- Chapters about ignoring values, bin64, bin32, bstring, fileSys,
  Transport Layer Security and the graphics library have been added
  to the manual. Many other chapters of the manual have been improved
  as well.
- The new library imagefile.s7i has been added. This library supports
  various image file formats (PNG, GIF, JPEG, BMP, ICO, PPM).
- The picture viewer program pv7.sd7 has been improved to use the
  function readImage() from the imagefile.s7i library.
- The keyboard test program gkbd.sd7 has been improved to show more
  keys. These keys turn red when they are currently pressed.
- The function equalFileContent() in sydir7.sd7 has been improved to
  use a reduced buffer size. A possible error that happens if just
  one file is at EOF after reading data into the buffers, has been
  fixed also.
- In keybd.s7i, keydescr.s7i and kbd_drv.h definitions for KEY_CTL_0
  to KEY_CTL_9 have been added.
- In png.s7i an error that happened when reading tiny interlaced PNG
  files has been fixed.
- In boolean.s7i the functions succ(), pred() and boolean()
  (conversion from integer) have been improved to raise RANGE_ERROR
  if the resulting value would not be TRUE or FALSE.
- Tests for the boolean succ() and pred() functions have been added
  to chkbool.sd7.
- Tests for boolean for-loops have been added to chkprc.sd7.
- The operator -:= has been added to bitset.s7i, bitsetof.s7i and
  hashsetof.s7i.
- Tests for set difference assignment (operator -:=) have been added
  to chkset.sd7.
- The program chk_all.sd7 has been adjusted to the changes in the
  check programs.
- The function width(aCharacter) (defined in char.s7i) has been fixed
  to return 0 for cursor and function keys. The change has been made
  in chr_rtl.c.
- In file.s7i the function skip() has been improved to avoid a
  possible endless loop.
- In null_file.s7i the function gets() has been improved to raise
  RANGE_ERROR if the parameter ''maxLength'' is negative.
- In graph_file.s7i, pixmap_file.s7i and window.s7i, the scrolling
  has been fixed.
- In bytedata.s7i the functions getUInt16Le(), getUInt32Le(),
  getUInt16Be() and getUInt32Be() have been improved to use
  bytes2Int().
- In filesys.s7i and osfiles.s7i the function readlink() is
  deprecated. The function readLink() should be used instead.
  The files cpio.s7i ftpserv.s7i, rpm.s7i, tar.s7i, find7.sd7 and
  sydir7.sd7 have been altered to use readLink().
- In graph.s7i the function DRAW_FLUSH() is deprecated. The
  function flushGraphic() should be used instead.
- The files dialog.s7i, graph_file.s7i, pixmap_file.s7i, bas7.sd7,
  bifurk.sd7, carddemo.sd7, castle.sd7, cellauto.sd7, clock3.sd7,
  dnafight.sd7, gkbd.sd7, klondike.sd7, lander.sd7, mahjong.sd7,
  mandelbr.sd7, mirror.sd7, pairs.sd7, panic.sd7, percolation.sd7,
  pv7.sd7, raytrace.sd7, shisen.sd7, sudoku7.sd7 and tetg.sd7 have
  been altered to use flushGraphic() instead of the deprecated
  DRAW_FLUSH().
- In draw.s7i  the put() functions with PSET and XOR parameter are
  deprecated. The functions without PSET respectively XOR should
  be used instead.
- In graph.s7i the function setCloseAction() is deprecated.
  Instead of setCloseAction(popupWindow, RETURN_KEY); the statement
  selectInput(popupWindow, KEY_CLOSE, TRUE); should be used.
- The files dialog.s7i, castle.sd7, klondike.sd7, lander.sd7,
  mahjong.sd7, mandelbr.sd7, pairs.sd7, panic.sd7, planets.sd7,
  shisen.sd7, sokoban.sd7, sudoku7.sd7, tetg.sd7 and wator.sd7 have
  been altered to use selectInput() instead of the deprecated
  setCloseAction().
- In gzip.s7i the functions openGunzipFile(aFile) and
  openGzipFile(aFile) are deprecated. Instead of
  openGunzipFile(aFile), use openGzipFile(aFile, READ), and instead
  of openGzipFile(aFile) use openGzipFile(aFile, WRITE). The files
  rpm.s7i and tar_cmds.s7i have been altered to use the new
  function.
- In strifile.s7i the function openStrifile() is deprecated.
  The function openStriFile() should be used instead.
- The files htmldom.s7i, rpm.s7i, xmldom.s7i and chkbitdata.sd7 have
  been altered to use openStriFile() instead of the deprecated
  openStrifile().
- In stritext.s7i the function openStritext() is deprecated.
  The function openStriText() should be used instead.
- A syntax error in the library stritext.s7i has been fixed.
- In echo.s7i, dir.s7i, pixmap_file.s7i and shell.s7i internal
  identifiers have been renamed to use camel case.
- Interpreter and compiler have been improved to support the actions
  BLN_SUCC and BLN_PRED. Changes have been done in boolean.s7i,
  blnlib.c, blnlib.h, primitiv.c, comp/bln_act.s7i and
  comp/action.s7i.
- Interpreter and compiler have been improved to support the action
  SET_DIFF_ASSIGN. Changes have been done in bitset.s7i,
  bitsetof.s7i, set_rtl.c, set_rtl.h, setlib.c, setlib.h, primitiv.c,
  comp/set_act.s7i and comp/action.s7i.
- In interpreter and compiler the actions BLN_ICONV1 and BLN_ICONV3
  have been improved to raise RANGE_ERROR if the value is not 0 or 1.
- The interpreter has been improved (in s7.c) to write an error
  message if the declaration of main() is missing.
- The graphic keyboard drivers in drw_win.c, gkb_win.c and gkb_x11.c
  have been improved. Minimizing, maximizing and restoring a window
  triggers a KEY_RESIZE only when it is necessary. Now it can be
  checked if the mouse forward and back buttons are currently
  pressed. The event tracing in the keyboard drivers has also been
  improved.
- The parameters of the function drwPut() have been altered in
  drw_dos.c, drw_emc.c, drw_win.c, drw_x11.c, drw_drv.h, drwlib.c
  and comp/drw_act.s7i.
- The code generation for ENU_ICONV2 in the compiler has been
  improved (in comp/enu_act.s7i). Now it is similar to the code
  generated for BLN_ICONV1 and BLN_ICONV3.
- The error logging in exec.c has been improved.
- Several makefiles have been improved such that 'sudo make install'
  succeeds for an existing installation.
- In blnlib.c the functions bln_pred() and bln_succ() have been
  added and the functions bln_iconv1() and bln_iconv3() have been
  adjusted. Now these functions raise RANGE_ERROR if the resulting
  value would not be TRUE or FALSE.
- The function setDiffAssign() has been added to set_rtl.c.
- In tim_win.c the function alternate_utime() has been improved to
  work more reliable (this is called by setMTime).
- The function cmdReadlink has been renamed to cmdReadLink. Changes
  have been done in cmdlib.c, cmd_rtl.c, cmd_rtl.h and
  comp/cmd_act.s7i.
- Documentation comments have been added or improved in array.s7i,
  bigint.s7i, bin32.s7i, bin64.s7i, bitset.s7i, bitsetof.s7i,
  bmp.s7i, boolean.s7i, bstring.s7i, category.s7i, char.s7i,
  cpio.s7i, dir.s7i, draw.s7i, echo.s7i, file.s7i, filesys.s7i,
  float.s7i, forloop.s7i, gif.s7i, graph.s7i, graph_file.s7i,
  gzip.s7i, hashsetof.s7i, ico.s7i, integer.s7i, jpeg.s7i,
  keydescr.s7i, line.s7i, logfile.s7i, lzma.s7i, null_file.s7i,
  pixmap_file.s7i, png.s7i, ppm.s7i, progs.s7i, reference.s7i,
  ref_list.s7i, rpm.s7i, shell.s7i, stars.s7i, strifile.s7i,
  string.s7i, stritext.s7i, subfile.s7i, tar.s7i, text.s7i,
  tls.s7i, utf16.s7i, utf8.s7i, xz.s7i, zstd.s7i
  setlib.c and set_rtl.c.

20211114:
- The libraries pixmap_file.s7i and graph_file.s7i have been improved
  to draw to the correct graphic window. Many thanks to Anders
  Carstensen for pointing out that text was written into the wrong
  window and for providing a test program.
- Answers to three new questions have been added to the FAQ. Answers
  to existing questions have been improved. Many thanks to Zachary
  Menzies for pointing out a problem with two dimensional arrays and
  for providing a test program.
- An unclosed <i> tag has been removed from the manual. Thanks to
  ifethereal for pointing out this error. Several other places with
  illegal HTML in doc/manual.htm have also been fixed.
- The function getXmlTagHeadOrContent() has been improved in
  scanfile.s7i and scanstri.s7i. Now, tag names start with a letter
  or underscore (_), and the function can read XML contents that
  start with the character '<' (like < <= or <> ). In this case, the
  character < is read as character reference (&lt;).
- An explanation of the exception declaration has been added to the
  manual.
- The search for the X11 Xrender extension has been improved. In
  chkccomp.c the function determineX11Defines() has been improved.
  Declarations have been moved from x11_x.h to the new file
  x11_rend.h. Adjustements have been made in drw_x11.c and fwd_x11.c.
- Two code pages for APL symbol encoding have been added to
  charsets.s7i. The graphic representation of the character '\a'
  (bell) has been changed from '\16#25cf;' to '\16#2022;' in all
  code sets.
- In the vector font cronos16 the design of the characters 'J' '£'
  and '€' have been improved.
- In the vector font cronos27 the design of the characters '£' '¤'
  and '€' have been improved.
- In analyze.c, the function analyzeProg() has been improved to work
  correctly if an error occurs.
- In itflib.c, the function itf_create() has been improved to raise
  the exception ACTION_ERROR if the source struct is NULL.
- The prototypes of the functions conWrite() and stri_to_bstriw()
  have been changed to work with constant strings.

20211009:
- Seed7's approach to avoid double library includes has been
  improved. Many thanks to Zachary Menzies for reporting the
  problem (a second library with the same name but in a different
  directory was not included) and for providing a test case to
  trigger it. The new mechanism uses the absolute path of a library
  to determine if it already has been included. Now the map of
  included libraries is not part of the compiled executable anymore.
  Changes have been made in seed7_05.s7i, analyze.c, data.h,
  infile.c, infile.h, libpath.c, libpath.h, prclib.c and prg_comp.c.
- The new library htmldom.s7i has been added. This library contains
  an improved HTML DOM parser. Many thanks to OddCitron1981 for
  suggesting to parse some of the wild HTML out there on the web. The
  functions readHtmlNode() and readHtml() have been moved from
  xmldom.s7i to htmldom.s7i. The type htmlDocument and the function
  readHtmlContainerSubNodes() have been added. Improvements of HTML
  scanning functions were also made due to this suggestion. The new
  HTML parser considers several things special for HTML:
  - Tag names and attribute names are converted to lower case.
  - There are alternate end tags for tags with optional closing tag.
  - Attributes without value get "" as value.
  - The <!DOCTYPE data is not handled as xmlNode.
  - Closing tags without opening tag are left in as is.
- The HTML scanning functions in scanfile.s7i and scanstri.s7i have
  been improved:
  - HTML tag attributes without value are allowed now.
  - Reading of HTML tag attributes now stops at the end of tag
    character (>).
  - CDATA sections are considered now.
  - The functions getXmlTagHeadOrContent(), getSymbolInXmlTag(),
    getHtmlAttributeValue() and getNextHtmlAttribute() have been
    improved.
  - The function getXmlCdataContent() has been added.
- A chapter about for-until-loops has been added to the manual.
- The makefiles and the compiler (s7c.sd7) have been improved to
  avoid linking unused system libraries (e.g. with -lm). Changes have
  been done in cc_conf.s7i, comp/action.s7i, comp/flt_act.s7i,
  comp/library.s7i, s7c.sd7, cmd_rtl.c and in the makefiles.
- The bas7.sd7 (basic interpreter) example program has been improved.
  - Now, it is possible to do a string multiplication with the *
    operator. E.g.: "ha"*3 results in "hahaha" and "ab"*2+"xy"*3
    results in "ababxyxyxy".
  - Now, the RPT$ function is checked for a negative factor.
- The wiz.sd7 example program has been refactored. The functions
  treasureNumber() and vendorDies() have been introduced.
- The bigfiles.sd7 example program has been improved to limit the
  length of the result list.
- The compiler has been improved:
  - Now, unused system libraries are not linked to the executable.
  - In comp/flt_act.s7i the implementation of FLT_DECOMPOSE has been
    improved and float comparisons set the flag mathLibraryUsed, if
    the implementation requires it.
  - Two functions named appendLibrary() have been added to s7c.sd7.
    These functions avoid that a system library is linked twice.
  - In comp/action.s7i calls of BIG_... actions now set the flag
    bigintLibraryUsed  and calls of FLT_... actions (that need the
    math system library) now set the flag mathLibraryUsed.
  - The flags bigintLibraryUsed and mathLibraryUsed have been added
    to comp/library.s7i.
- In xmldom.s7i the writeXml functions have been refactored.
  Unnecessary definitions of writeXml have been removed.
- Definitions of SYSTEM_BIGINT_LIBS and SYSTEM_MATH_LIBS have been
  added to cc_conf.s7i. The definition of ADDITIONAL_SYSTEM_LIBS
  has been removed. SYSTEM_BIGINT_LIBS and SYSTEM_MATH_LIBS are
  used in confval.sd7 and s7c.sd7.
- Several improvements in chkccomp.c have been done:
  - Now SYSTEM_MATH_LIBS and LINKER_OPT_DYN_LINK_LIBS are
    considered. This helps to avoid linking unused libraries.
  - ADDITIONAL_SYSTEM_LIBS has been renamed to SYSTEM_BIGINT_LIBS.
  - Now, it checks if fileno() succeeds after a successful
    call of popen() (this fixes a problem with Emscripten).
  - The function appendOption() has been improved.
  - The type of several indices has been changed from int to
    unsigned int (this reduces the number of C warnings).
  - The value LINKER_OPT_DYN_LINK_LIBS is now added to a
    corresponding list of system libraries if dynamic linking at
    run-time is necessary.
- In cmd_rtl.c the function doReadLink() has been improved to work
  also for symlinks in the Linux /proc filesystem (in /proc the
  stat() function reports a symlink size of 0).
- The macro environmenStrncmp has been renamed to environmentStrncmp.
- The function getProgramPath() has been moved from analyze.c to
  cmd_rtl.c. Additionally it has been improved and renamed to
  getAbsolutePath().
- In cmd_unx.c the function getExecutablePath() has been improved to
  use doReadLink() and to return a straightened absolute path (the
  special directories "." and ".." are interpreted according to
  their conventional meanings).
- The functions concatAndStraightenPath() and
  straightenAbsolutePath() have been added to str_rtl.c.
- In infile.c the functions open_infile(), close_infile(),
  open_string() and remove_prog_files() have been renamed to
  openInfile(), closeInfile(), openString() and removeProgFiles()
  respectively. Now openInfile() and openString() return a
  boolType result to indicate the success.
- In libpath.c the functions find_include_file(),
  append_to_lib_path(), init_lib_path() and free_lib_path() have
  been renamed to findIncludeFile(), appendToLibPath(),
  initLibPath() and freeLibPath() respectively. The functions
  initIncludeFileHash(), shutIncludeFileHash() and
  openIncludeFile() have been added. The added functions maintain a
  hashmap of already included files.
- In prclib.c the function prc_include() has been adjusted to call
  the new function that avoids double includes. Now the 2nd
  parameter of the action PRC_INCLUDE contains the file name to be
  included.
- In striutl.c the functions stri_to_os_utf8(), conv_to_os_stri()
  have been improved to return a boolType result that indicates
  success.
- Logging functions have been added to strlib.c.
- Documentation comments have been improved in cc_conf.s7i,
  html.s7i, osfiles.s7i, scanfile.s7i, scanstri.s7i, cmdlib.c,
  cmd_rtl.c, hshlib.c and hsh_rtl.c.

20210904:
- The linking of PostgreSQL has been improved. Many thanks go to
  SiliconWizard, for pointing out linking problems and for helping
  to investigate them. The function findPgTypeH() has been added to
  chkccomp.c. Now the search for pg_type.h and pg_type_d.h does not
  include postgres.h. In sql_post.c the include of the file
  postgres.h has been removed.
- The wiz.sd7 example program has been refactored. Now it can be
  compiled. Many thanks go to Vasiliy Tereshkov, for reporting the
  compilation problem. Additionally, several improvements of wiz.sd7
  have been done.
- The functions expm1() and log1p() have been added to the math.s7i
  library. Many thanks go to Sanjay Jain for pointing out that
  they were missing.
- In wrinum.s7i the functions str(ENGLISH, number) and
  str(GERMAN, number) have been improved to work correctly for zero.
- In forloop.s7i the definition of for-until-loops has been
  improved, such that the loop variable never gets a value outside
  of the range. The definition of for-loops has been changed to
  invoke the loop-body just at one place. Since the loop body is
  inlined, this does shorten the generated code.
- Tests for for-loops have been added to chkprc.sd7.
- The compiler (s7c.sd7) has been improved to generate better code
  for the actions BLN_TERNARY, REF_ADDR, REF_SELECT and SET_ELEM
  (changes were done in bln_act.s7i, ref_act.s7i and set_act.s7i).
- The compiler has been improved (in comp/enu_act.s7i), to check
  for a possible RANGE_ERROR, if an integer is converted to an
  enumeration value (action ENU_ICONV2).
- The compiler has been improved to optimize expressions like
  ord(aBigExpression mod aPowerOfTwo).
- The function chkBigOrdWithBigMod has been added to chkbig.sd7.
  This function checks the optimizations done with expressions like
  ord(aBigExpression mod aPowerOfTwo).
- Tests for the ternary operator have been added to chkstr.sd7.
- Tests for the 'element in bitset' operator have been added to
  chkset.sd7. These tests check the compiler optimizations for
  SET_ELEM.
- Definitions of HAS_EXPM1 and HAS_LOG1P have been added to
  cc_conf.s7i.
- Interpreter and compiler have been improved, to support the
  actions HAS_EXPM1 and HAS_LOG1P.
- In comp/intrange.s7i the function getIntRange() has been improved
  to consider the actions INT_SUCC, INT_PRED, INT_ICONV1,
  INT_ICONV3 and SET_RAND. The handling of the actions INT_RAND,
  INT_ABS and INT_NEGATE has been improved. The functions
  getIntAddRange() and getSetRandRange() have been added.
- The program chk_all.sd7 has been adjusted to the changes in the
  check programs.
- A spelling error in s7c.sd7 has been fixed.
- The program wrinum.sd7 has been changed to start with zero.
- Logging functions have been added to reflib.c.

20210807:
- The bmp.s7i library has been improved. Now the function readBmp()
  works also for historical versions of the BMP format.
- The function readIco() has been added to the library ico.s7i.
- In msgdigest.s7i the run-time of the functions md4(), md5(),
  ripemd160(), sha1(), sha224() and sha256() has been reduced by 4%
  and the run-time of sha384() and sha512() has been reduced by 62%
  and 67% respectively (measured with gcc and valgrind).
- The example program pv7.sd7 (Picture Viewer) has been improved to
  support the ICO graphic format. Additionally the window title is
  now changed also at the start and the end of the picture sequence.
- The library gif.s7i has been improved to work also for the empty
  GIF image.
- Functions to convert a bin64 or bin32 to a string of bytes with a
  given length have been added to bin64.s7i and bin32.s7i. To get
  the bytes of a bin64 or bin32 value use e.g.: bytes(number, BE, 4)
  The functions bin32AsFourBytesBe, bin32AsFourBytesLe,
  bin64AsEightBytesBe and bin64AsEightBytesLe are deprecated now.
- In bytedata.s7i the functions int16AsTwoBytesBe,
  int32AsFourBytesBe, int64AsEightBytesBe, int16AsTwoBytesLe,
  int32AsFourBytesLe, int64AsEightBytesLe, bigAsEightBytesLe and
  bigAsEightBytesBe are deprecated now. The functions from the
  bytes(number, SIGNED, LE, 4) family can be used instead.
- Calls of the deprecated functions have been replaced with the
  new function bytes(), which converts an integer to a string of
  bytes with a given length. The changes have been done in aes.s7i,
  blowfish.s7i, bmp.s7i, des.s7i, encoding.s7i, gzip.s7i, hmac.s7i,
  ico.s7i, msgdigest.s7i, rpm.s7i, tls.s7i, zip.s7i, bas7.sd7 and
  s7c.sd7.
- Interpreter and compiler have been improved to support the actions
  BIN_N_BYTES_BE and BIN_N_BYTES_LE.
- The compiler (s7c.sd7) has been improved to generate optimized
  code for the actions INT_N_BYTES_BE_UNSIGNED,
  INT_N_BYTES_LE_UNSIGNED, BIN_N_BYTES_BE and BIN_N_BYTES_LE.
- In zip.s7i an error in the function setMTime() has been fixed and
  the function close() has been improved to leave the actual ZIP
  file open.
- Tests for the bytes() function have been added to chkint.sd7 and
  chkbig.sd7. These tests make sure that the compiler optimizations
  of the bytes() function work correctly.
- The functions uintNBytesBe() and uintNBytesLe() have been added to
  int_rtl.c.
- The functions bin_n_bytes_be() and bin_n_bytes_le() have been added
  to binlib.c.
- Documentation comments have been improved in drwlib.c, intlib.c
  and int_rtl.c.
- The documentation of primitive actions in the manual has been
  improved.
- A debug printf() has been removed from the function socGets() in
  soc_rtl.c.

20210627:
- As suggested by Zachary Menzies a function to make the mouse cursor
  invisible has been added. The function setCursorVisible() has been
  added to graph.s7i. This function sets the visibility of the mouse
  cursor in a specified window.
- A function to convert an integer to a string of bytes with a given
  length has been added to bytedata.s7i. To get the bytes of a 32-bit
  signed big-endian representation use: bytes(number, SIGNED, BE, 4).
- The functions for external files have been improved to raise
  FILE_ERROR, if a file is used after it has been closed.
- The management of external files has been improved to automatically
  close a file, when the last variable that refers to the file leaves
  its scope (no variable refers to the file any more).
- Adjustments have be done in s7c.sd7, comp/prg_act.s7i,
  comp/sql_act.s7i, comp/str_act.s7i, prg_comp.c, chkccomp.c,
  sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c, sql_post.c,
  sql_tds.c, sql_rtl.c, sql_rtl.h and sql_drv.h to support
  compilation with a C++ compiler.
- The functions XCreateBitmapFromData(), XCreatePixmapCursor(),
  XDefineCursor() and XUndefineCursor() have been added to x11_x.h
  and fwd_x11.c.
- The makefiles have been improved to compile the utilities with
  -O3 -oc3 (command: make utils). A possibility to remove the
  utilities has been added (command: make clean_utils). The utility
  programs are now installed under Linux (command: make install).
- Documentation comments have been improved in cc_conf.s7i,
  environment.s7i, process.s7i, graph.s7i, cmdlib.c and cmd_rtl.c.
- In cgidialog.s7i the handling of an image with an empty pixmap has
  been improved.
- In clib_file.s7i the function destroy has been changed to use the
  action FIL_DESTR.
- Interpreter and compiler have been improved to support the actions
  DRW_SETCURSORVISIBLE, FIL_DESTR, INT_N_BYTES_BE_SIGNED,
  INT_N_BYTES_BE_UNSIGNED, INT_N_BYTES_LE_SIGNED and
  INT_N_BYTES_LE_UNSIGNED.
- Tests have been added to chkint.sd7. These tests check the
  conversion of an integer to a string of bytes with a given length.
- Tests have been added to chkfil.sd7. It is checked if the automatic
  closing of files works as expected. Other tests check if FILE_ERROR
  is raised in case a file is used after it has been closed.
- Tests for the assignment to an element in an array of strings have
  been added to chkstr.sd7.
- The libraries cpio.s7i and rpm.s7i have been improved to use the
  new integer conversion functions.
- Additional conversion functions have been added to float.s7i and
  integer.s7i.
- Another test for FLOAT_ZERO_DIV_ERROR has been added to chkccomp.c.
- In drw_win.c drwSetCursorVisible() has been added, dra_init() has
  been renamed to drawInit() and WndProc() has been improved to
  process WM_SETCURSOR.
- In drw_x11.c drwGetImage() has been improved to work for an empty
  window, drwSetCursorVisible() has been added and several checks for
  RANGE_ERROR have been improved.
- In fillib.c the functions fil_cpy(), fil_create(), fil_destr(),
  fil_empty(), fil_eof(), fil_err(), fil_flush(), fil_in() and
  fil_out() have been adjusted for the new fileType.
- The functions in fil_rtl.c have been adjusted for the new fileType.
- In fil_unx.c and fil_win.c the functions filInputReady(), filPipe()
  and setupFiles() have been adjusted for the new fileType.
- In fil_ut8.c the functions ut8Getc(), ut8Gets(), ut8LineRead(),
  ut8Seek(), ut8WordRead() and ut8Write() have been adjusted for the
  new fileType.
- The function heapStatistic() in flistutl.c has been adjusted for
  the new fileType.
- Improvements in gkb_win.c set the button window, when a resize is
  done.
- The functions intNBytesBeSigned(), intNBytesBeUnsigned(),
  intNBytesLeSigned() and intNBytesLeUnsigned() have been added to
  int_rtl.c.
- In pcs_rtl.c pcsChildStdErr(), pcsChildStdIn(), pcsChildStdOut()
  and pcsDestr() have been adjusted for the new fileType.
- In pcs_dos.c in function pcsStart() the logging has been adjusted
  for the new fileType.
- In pcs_unx.c the functions pcsPipe2(), pcsPty(), pcsStart() and
  pcsStartPipe() have been adjusted for the new fileType.
- In pcs_win.c the functions pcsPipe2(), pcsStart() and
  pcsStartPipe() have been adjusted for the new fileType.
- Functions in soc_rtl.c have been changed to raise FILE_ERROR, if
  they are used with an invalid socket.
- Logging functions have been added to prclib.c.
- The documentation in src/read_me.txt has been improved.

20210530:
- The example program pv7.sd7 has been added. It is a picture viewer
  for several graphic formats (BMP, GIF, JPEG, PNG and PPM).
- The new library ppm.s7i has been added. This library supports
  reading and writing images with the binary PPM image file format.
- The functions setWindowName() and selectInput() have been added to
  graph.s7.
- Now, a program might be notified when a window is resized. With
  selectInput() the notification can be switched on and off. If a
  window has been resized, reading from the graphic KEYBOARD returns
  KEY_RESIZE (if the resize notification is switched on).
- The libraries keybd.s7i and keydescr.s7i have been improved to
  define KEY_RESIZE (this key is sent optionally, if a window is
  resized).
- The program gkbd.sd7 has been improved to also show KEY_RESIZE.
- The Windows graphics driver has been improved to allow non-modal
  resizing and moving of windows (while being resized or moved, the
  program continues to run).
- A scaling variant of the function put() has been added to draw.s7i.
  This function is used by pv7.sd7 to scale an image.
- The FAQ has been improved to explain that Seed7 does not use "do
  what I mean" heuristics (because they may fail in unpredictable
  ways).
- A bitset example has been added to the manual.
- In chkarr.sd7 tests for the 'times' operator have been added and
  the tests for array assignment have been improved.
- Tests for the str() function have been added to chkstr.sd7.
- The test programs chkarr.sd7 and chkstr.sd7 have been improved to
  increase the code coverage of the Seed7 run-time library.
- The compile time functions prc_include() (in prclib.c) and
  find_include_file() (in libpath.c) have been adjusted to fail if
  they are called at runtime.
- In drw_win.c the function drwCapture() has been improved to release
  the screen device context. This avoids a resource leak.
  Additionally, the stretch blt mode is now set with
  SetStretchBltMode().
- The program chkccomp.c has been improved to consider the X11
  extension Xrender. Now definitions of HAS_XRENDER_EXTENSION and
  X11_XRENDER_DLL might be written to version.h.
- Interpreter and compiler have been improved to support the new
  actions DRW_PUT_SCALED, DRW_SETWINDOWNAME and GKB_SELECT_INPUT.
- The graphic drivers drw_x11.c and drw_win.c have been improved to
  enlarge the drawing area when a window is enlarged.
- The functions resize(), setResizeReturnsKey(), drwPutScaled() and
  drwSetWindowName() have been added to drw_win.c, drw_x11.c.
- The functions gkbSelectInput(), drwPutScaled() and
  drwSetWindowName() have been added to drw_dos.c, drw_emc.c and
  drw_drv.h.
- The functions resizeBottomAndRight(), resizeTopAndLeft(),
  startMoveWindow(), processMouseMove() and gkbSelectInput() have
  been added to gkb_win.c.
- The functions handleConfigure(), configureDoesResize() and
  gkbSelectInput() have been added to gkb_x11.c
- The functions gkb_select_input(), drw_put_scaled() and
  drw_setWindowName() have been added to drwlib.c and drwlib.h.
- The handling of events in gkb_x11.c has been improved to handle
  ConfigureNotify events. These events are used when a window is
  resized.
- In drw_win.c the function drwOpen() has been improved to accept
  Unicode window names.
- In drw_x11.c the function redraw() has been improved to avoid
  compiler warnings.
- Documentation comments have been added to functions in bitset.s7i.
- The function XStoreName() and the functions of the Xrender
  extension have been added to x11_x.h and fwd_x11.c.
- The makefiles mk_emccl.mak and mk_emccw.mak have been adjusted for
  the newest version of Emscripten.

20210425:
- The new library jpeg.s7i has been added. This library supports the
  JPEG image file format.
- The new library huffman.s7i has been added. This library supports
  Huffman coding as it is used by JPEG files.
- In chkccomp.c the code to determine MINIMUM_TRUNC_ARGUMENT and
  MAXIMUM_TRUNC_ARGUMENT has been improved. Many thanks to Zachary
  Menzies for reporting problems with the Linux distribution Solus.
- The PKCS#1 v1.5 signature verification has been improved. Many
  thanks go to Moosa Yahyazadeh for providing a bugs report for
  seed7-pkcs1. The following improvements have been done:
  - In pkcs1.s7i the function emsaPkcs1V15Decoding has been improved
    to check that every padding byte is actually 16#ff and that at
    least 8 padding bytes are present. (Point 1 of report)
  - In pkcs1.s7i the functions rsaEncryptBytes() and rsaDecryptBytes()
    have been removed and usages of them have been replaced with
    rsassaPkcs1V15Encrypt() respectively rsassaPkcs1V15Decrypt().
    (Point 2 of report)
  - In x509cert.s7i the function validateSignature() has been improved
    to compare the digest algorithm obtained from the certificate with
    the digest algorithm stored in the ASN.1 digestAlgorithmIdentifier
    of the decrypted signature. (Point 3 of report)
  - The functions getRsaSignature() and getEcdsaSignature() have been
    added to x509cert.s7i. These functions check that the encoded
    message has not any trailing garbage bytes. (Point 4 of report)
- The functions getDigestAlgorithm(), showSignatureAlgorithm() and
  getDigestFromSignatureAlgorithm() have been added to x509cert.s7i.
- In x509cert.s7i the function validateSignature() has been improved
  to validate RSA and ECDSA (Elliptic Curve Digital Signature
  Algorithm) signatures.
- In x509cert.s7i the type rsaSignatureType has been introduced and
  getRsaSignature() has been changed to return a rsaSignatureType.
- The functions getRsaSignature() and getEcSignature() have been
  moved from tls.s7i to x509cert.s7i. Calls of these functions in
  verifySignature() have been adjusted.
- The function validateCertificates() has been added to tls.s7i.
- In tls.s7i the function processServerKeyExchange() has been improved
  to trigger a handshake failure if verifySignature() fails.
- In elliptic.s7i the type ecdsaSignature has been renamed to
  ecdsaSignatureType.
- In gethttp.s7i the function getHttpStatusCode has been improved
  to work correctly, if there is no space after the status code.
- In integer.s7i the definitions of min() and max() have been improved
  to use the ternary operator (a ? b : c).
- Several optimizations have been done in the compiler (s7c.sd7):
  - In comp/prc_act.s7i the function process_prc_for() has been
    improved to store the range of the for-variable if the start or
    the end value is constant (or both are constant).
  - In comp/intrange.s7i the function getIntRange() has been improved
    to get a range for the action INT_MULT and for a for-variable (if
    the start or the end value of the for-loop is constant).
    Determining the maximum of INT_LSHIFT has been improved.
  - In comp/drw_act.s7i the function drwRgbColor() is now defined as
    macro, if the optimization level requires it (-oc3).
  - In comp/arr_act.s7i in the function process_const_arr_idx() the
    index check has been omitted, if it is known that the index is
    always in the range of the constant array.
  - In comp/int_act.s7i the actions INT_MULT and INT_MULT_ASSIGN have
    been improved to use the builtin mult overflow function, if
    available. The improvements were made in the functions
    int_mult_with_overflow_check() and process_const_int_mult().
  - The new function varChangedInStatements() has been added to
    comp/prc_act.s7i.
  - Code has been moved from process_prc_for() in comp/prc_act.s7i
    to the new function defineForStartVariable in comp/expr_utl.s7i.
  - In s7c.sd7 the initialization of local arrays has been improved
    to recognize if all elements of the array are the same. In
    this case arrTimes(), arrMalloc(), malloc() or memset() are
    used instead of copying an array. The functions canUseArrTimes()
    and assignArrayValue() have been added, and the function
    identical_values() has been moved.
- Tests for the operator &:= (append one element to an array) have
  been added to chkarr.sd7.
- Tests for arrays with boolean elements have been added to
  chkarr.sd7.
- Tests for the bitpattern of the minimum and maximum floats that can
  be truncated to an integer have been added to chkflt.sd7.
- Tests for reduced overflow checking, if multiplication or lshift
  leaves some space towards the maximum integer, have been added to
  chkint.sd7.
- Tests of the ternary operator (a ? b : c) have been added to
  chkint.sd7.
- In exec.c the function evaluate() has been improved to also work
  for SETOBJECT.
- In soc_rtl.c the function socInetAddr() has been improved to
  treat EAI_NODATA like EAI_NONAME.
- The program chkccomp.c has been improved to determine the macros
  PIXEL_RED_MASK, PIXEL_GREEN_MASK, PIXEL_BLUE_MASK and
  RGB_TO_PIXEL_FLAG_NAME.
- Definitions of PIXEL_RED_MASK, PIXEL_GREEN_MASK, PIXEL_BLUE_MASK
  and RGB_TO_PIXEL_FLAG_NAME have been added to cc_conf.s7i.

20210322:
- Some misleading tests have been removed from chkflt.sd7. Many
  thanks go to Zachary Menzies for pointing out problems with the
  tests for trunc() and round().
- The new library gif.s7i has been added. This library supports the
  GIF image file format.
- The new library bmp.s7i has been added. This library supports the
  BMP image file format. The functions readBmp() and str(BMP) have
  been moved from draw.s7i to the new library bmp.s7i. The performance
  and functionality of readBmp() has been improved. The deprecated
  function read_bmp() has been removed (the function readBmp() can be
  used instead).
- In bitdata.s7i the performance of getBitsLsb() and getBitsMsb() has
  been improved.
- The functions peekBitsLsb(), skipBitsLsb(), peekBitsMsb() and
  skipBitsMsb() have been added to bitdata.s7i.
- The functions lzwCompressLsb(), lzwDecompressLsb(),
  lzwCompressMsb(), lzwDecompressMsb(), lzwCompressMsbEarlyChange()
  and lzwDecompressMsbEarlyChange() have been added to lzw.s7i.
  The functions lzwEncodeMsb() and lzwDecodeMsb() have been
  deprecated (use lzwCompressMsbEarlyChange() respectively
  lzwDecompressMsbEarlyChange() instead).
- Tests for INDEX_ERROR have been added to chkarr.sd7.
- Tests for peekBitsLsb() and peekBitsMsb() have been added to
  chkbitdata.sd7.
- Tests for << (shift left) have been added to chkint.sd7.
- Tests for string concatenations where the second parameter is a
  string of length 1 (created by str(aChar)) have been added to
  chkstr.sd7.
- The function getStriUpToChar() has been added to bytedata.s7i.
- The experimental function seekable() has been added to file.s7i,
  null_file.s7i, clib_file.s7i, external_file.s7i, strifile.s7i,
  subfile.s7i, utf16.s7i, iobuffer.s7i, gzip.s7i, lzma.s7i, xz.s7i and
  zstd.s7i.
- Several optimizations have been done in the compiler (s7c.sd7):
  - In comp/arr_act.s7i the index check for the action ARR_IDX has
    been improved.
  - In comp/int_act.s7i the overflow check for the actions
    INT_ADD_ASSIGN and INT_SBTR_ASSIGN has been improved.
  - In comp/intrange.s7i the function getIntRange() has been improved
    to get a range for the action INT_LSHIFT and to get a better range
    for the action INT_MOD.
  - In comp/str_act.s7i the function optimize_str_cat has been
    improved to generate a call of strConcatChar() or
    strConcatCharTemp(), if applicable.
  - In comp/chr_act.s7i the generation of the macro chrStrMacro()
    has been improved to avoid #line directives in macro parameters.
- In drw_win.c the performance of the function drwImage() has been
  improved. Instead of calling SetPixel() for every pixel it now does
  one call of CreateBitmap().
- In runerr.c in the function write_curr_position() the check for
  the current action object has been improved.
- The functions strConcatChar() and strConcatCharTemp() have been
  added str_rtl.c.
- The function filSeekable() has been added to fil_rtl.c.
- The function determineLseekFunction() has been added to chkccomp.c.

20210223:
- Spelling corrections have been done in several files. Many thanks go
  to Jens Schleusener, for sending a source code misspelling report
  from Fossies.
- The new library png.s7i has been added. This library supports the
  PNG image file format.
- Seed7 has been improved to compile under Android with termux. This
  is described in src/read_me.txt.
- A chapter about Unicode characters has been added to the manual.
- The make7.sd7 example program has been improved. The processing of
  makefiles in make.s7i has been improved to process every rule just
  once. The handling of the option -n (don't execute commands) has
  been improved to work in the same way as in other make tools.
- The test program chkbin.sd7 has been improved to to allow two
  possible NaN values as result of 0.0 / 0.0.
- The test program chkflt.sd7 has been improved to allow that for some
  test cases trunc() and round() either return the correct value
  (integer.last) or raise RANGE_ERROR.
- Tests for array bitset have been added to chkarr.sd7.
- Tests for conversion and cardinality have been added to chkset.sd7.
- The functions XChangeProperty() and XMapWindow() have been added to
  fwd_x11.c and x11_x.h.
- The makefile mk_clang.mak has been improved to allow the replacement
  of system headers (x11_x.h and fwd_term.h). This way compilation
  works also without the original headers.
- The warning box created by warn.c had too much width to be readable
  in termux. So this width has been reduced.
- In drw_win.c the functions drwXPos() and drwYPos() have been fixed
  to return coordinates relative to the parent window.
- The checks for the C compiler option -ftrapv in chkccomp.c have
  been improved. Now it is recognized, if integer overflow raises the
  signal SIGTRAP. Clang at the ARM processor uses SIGTRAP.
- Changes have been done in sigutl.c to handle SIGTRAP and to raise
  OVERFLOW_ERROR in the signal handler (if chkccomp.c has recognized
  that an integer overflow raises SIGTRAP).
- Changes have been done in chkccomp.c to support PostgreSQL version
  13. Additionally the logic to search for PostgreSQL dlls has been
  improved. Now it searches also for the libraries libcrypto and
  libssl. Now POSTGRESQL_DLL can be specified, with an absolute path
  of libpq.dll, in the makefile (which should echo it to chkccomp.h).
- In the compiler (s7c.sd7) the handling of actual parameters for
  formal inout parameters has been improved. Now a struct element can
  be used as actual parameter for a formal inout parameter.
- The compiler has been improved to reduce range checks for the
  expressions char(number), chr(number) and card(bitset(number)).
- Interpreter and compiler have been improved to support the action
  REF_ISTEMP. The function isTemp() has been added to progs.s7i.
- In comp/intrange.s7i the function getIntRange() has been improved
  to determine result ranges for INT_ADD and integer constants.
- The compiler has been improved to assure that sigsetjmp() is not
  called with a value other than 0 or 1 for the second parameter
  (savesigs). According to the specification of sigsetjmp() all
  integer values are allowed for the second parameter (savesigs)
  and a non-zero value triggers a save of the current signal mask.
  ARM / Android / termux decided that just 0 and 1 are valid values
  and that any other value triggers a termination of the program
  (with SIGABRT).
- The function drwCapture() in drw_win.c has been improved to work
  correctly, if the screen has been scaled.
- In drw_win.c the functions drwPut() and drwSetTransparentColor()
  have been improved such that images with a transparent color work.
- The runtime of drwRgbColor() in drw_x11.c has been reduced by 31%
  (measured with gcc and valgrind, when reading a PNG image). This
  takes effect if a true color display is used.
- The runtime of drwRtlImage in drw_rtl.c has been reduced by 63%
  (measured with gcc and valgrind, when reading a PNG image). The
  function memcpy_pixel() uses loop unrolling inspired by Duff's
  device.
- The program chkccomp.c has been improved to determing the macro
  rgbToPixel() (if X11 graphics is used).
- In exec.c the function exec_expr() has been improved to clear
  the TEMP flag for all results.
- The makefiles have been improved to write the name of the make
  utility and the name of the makefile to version.h.

20210130:
- The parser (used by interpreter and compiler to read a program) has
  been improved to work correctly, if seed7_05.s7i is not included.
  Many thanks go to Domingo Alvarez Duarte for pointing out that a
  missing seed7_05.s7i include statement causes a parser error.
- The example program mirror.sd7 has been added. This program mirrors
  a rectangular screen area in a window.
- The function capturePixmap has been added to graph.s7i. This
  function can be used to capture rectangular areas from the screen.
- In the library graph.s7i the function openSubWindow() has been
  improved to allow top level windows without window decorations.
  This can be done by using the empty window as parent window.
- Chapters about pragmas and compilation errors have been added to the
  manual.
- The parser has been improved to work reliable in out of memory
  situations. Now the fatal parser error "Out of heap space" does not
  terminate the program.
- The minor versions of interpreter and compiler have been increased.
  Now interpreter and compiler share the same revision level. Every
  compilation of the Seed7 interpreter increases the revision level.
- A definition of VERSION_REVISION_LEVEL has been added to
  cc_conf.s7i. This is used in confval.sd7 and s7c.sd7.
- Interpreter and compiler have been improved to support the new
  action DRW_CAPTURE.
- In analyze.c the function analyzeProg() has been improved to
  catch the "Out of heap space" error and to clean up memory in out
  of memory situations. Now the old values of the global variables
  prog, interpreter_exception curr_exec_object, curr_argument_list and
  trace are restored, when the function is left.
- In analyze.c the functions analyzeFile() and analyzeString() have
  been improved to work without setting interpreter_exception. Now
  these functions work the same in interpreted and compiled programs.
- In atom.c the function read_atom() has been improved to keep the
  data structure consistent in out of memory situations.
- The functions pop_owner() and close_current_stack() have been added
  to name.c.
- In name.c the functions free_params(), get_object() and push_name()
  have been improved to have an additional 'currentProg' parameter.
- In name.c the function get_object() has been improved to reverse its
  changes in case of an error.
- In name.c the handling of errors has been improved in push_name(),
  eval_name_list(), inst_list(), inst_object_expr(), find_name(),
  search_name(), dollar_parameter() and dollar_inst_list(). In error
  situations changes are reversed, memory is freed and stack growing
  and shrinking is now done in a consistent way.
- In entutl.c the function copy_params() has been improved to allocate
  the parameters first in a list and to assign them later.
- The new functions pop_name_list() and get_entity_node() have been
  added to entutl.c.
- In entutl.c the function get_entity() has been improved to handle
  error situations (out of memory).
- In entutl.c in the function init_entity() dereferencing NULL is
  avoided now, if the memory allocation fails.
- In blnlib.c the function bln_ternary() has been improved to work
  correctly, if evaluate() returns NULL. This happens if an exception
  is triggered inside evaluate().
- Implementations of drwBorder() and drwSetPos() have been added to
  drw_emc.c. The functions drwXPos() and drwYPos() have been improved.
- The function drwCapture() has been added to drw_x11.c and drw_win.c.
- The function drwOpenSubWindow() has been improved in drw_x11.c and
  drw_win.c to support the creation of unmanaged top level windows
  without window decorations (if the parent window is empty).
- The function omitWindowDecorationsAndTaskbarEntry() has been added
  to drw_x11.c.
- In flt_rtl.c the function setMantissaAndExponent has been improved
  to work without division by DOUBLE_MANTISSA_FACTOR.
- The program chkccomp.c has been improved to write an error message,
  if executing a test program fails.
- In error.c the functions read_ustri8_line(), read_and_print_line()
  and ustri8_buffer_to_stri() have been improved to work reliable in
  out of memory situations.
- In fatal.c the function no_memory() has been improved to do a long
  jump to analyzeProg().
- In listutl.c the function append_element_to_list() has been improved
  to keep the list_insert_place unchanged in out of memory situations.
- In sctlib.c in the function sct_cat() the code to handle an error
  has been improved, to avoid using a pointer that might be invalid
  because of a previous realloc(). The function sct_elem() has been
  improved to consider that grow_stack() might fail.
- In typeutl.c the function get_varfunc_type() has been improved to
  work correctly, if new_type() returns NULL. This can happen in out
  of memory situations.
- In findid.c the functions clean_idents() and write_idents() have
  been refactored to use a progType parameter and to allow NULL
  values in the ident tables.
- In flistutl.c the function heap_chunk() has been improved to never
  do a realloc() on a memory chunk and to explain why this is done.
- In flistutl.h the macros HEAP_OBJ(), HEAP_L_E(), HEAP_NODE() and
  HEAP_FILE() have been fixed to return FALSE in out of memory
  situations.
- In hshlib.c the macro isit_not_null() has been added to several
  functions to assert that function references and compare results are
  not NULL.
- In prclib.c the functions prc_begin(), prc_local(), prc_res_begin(),
  prc_res_local(), prc_return(), prc_return2(), prc_varfunc() and
  prc_varfunc2() have been improved to handle error situations (out of
  memory).
- In prclib.c the macro isit_not_null() has been added to prc_case(),
  prc_case_def(), prc_case_hashset() and prc_case_hashset_def(). This
  macro checks that the sets after the keyword 'when' are not NULL.
- In identutl.c the function init_idents() has been changed to leave
  a failed initialization as is (this is cleaned up later).
- In prg_comp.c the function prgDestr() has been improved to allow
  NULL for elements of the program structure. The function interpret()
  has been improved to restore the global variable
  interpreter_exception.
- In exec.c the functions getErrInfoFromFailValue() and do_exec_call()
  have been added. The function exec_expr() has been improved to
  restore the global variable interpreter_exception.
- In executl.c the functions do_destroy(), create_return_object(),
  create_local_object(), destroy_local_object() and
  destroy_local_init_value() have been improved to handle error
  situations (out of memory).
- In match.c the function match_subexpr() has been improved to
  handle out of memory situations.
- In runerr.c the functions write_position_info() and
  write_call_stack_element() have been improved to recognize valid
  data better.
- In runerr.c the functions run_error(), empty_value() and
  var_required() have been improved to write the error message only,
  if exception tracing is switched on. Now these functions raise
  ACTION_ERROR instead of RANGE_ERROR.
- The function freeOptions() has been added to s7.c. The function
  raise_error2() has been improved to handle an out of memory
  situation.
- In symbol.c the function close_symbol() has been improved to allow
  NULL for symbol.name and symbol.striValue.
- In syvarutl.c the function init_sysvar() has been improved to
  define a dummy value for SYS_EXPR_TYPE (EXPR_TYPE). This avoids an
  error, if the source has no include directive.
- The function printLocObj() has been added to traceutl.c. The
  functions prot_list_limited() and trace1() have been improved to
  recognize corrupt category fields.
- In cmd_rtl.c code has been moved from cmdReadlink(), cmdFileTypeSL()
  and cmdGetcwd() to the new functions doReadLink(), getFileTypeSL()
  and doGetCwd() respectively. The new functions use err_info to
  report errors instead of raising an exception. The old functions
  have been refactored to call the new functions.
- In cmd_rtl.c the function followLink() has been refactored to call
  getFileTypeSL() and doReadLink().
- The program levelup.c has been added. This program is called by the
  makefile to increase the revision level of interpreter and compiler.
- In comp/expr_utl.s7i the function prepare_win_result() has been
  fixed to use drwDestr() instead of winDestr().
- The system declaration for "type" hase been removed from syntax.s7i.
- The makefiles have been adjusted to increase the revision level
  (stored in level.h) before the interpreter is compiled. This way
  interpreter and compiler get the same revision level.
- Documentation comments have been improved in array.s7i, graph.s7i,
  leb128.s7i, analyze.c, cmd_rtl.c, drw_emc.c, drw_win.c, drw_x11.c,
  entutl.c, error.c and exec.c.

20210106:
- The declaration of in-parameters has been changed to work the same
  way as all other parameter declarations (val-, ref-, inout-, attr-
  and in-var-parameters). Many thanks go to Zachary Menzies for
  pointing out a problem with in-parameters and for providing a test
  program. The new in-parameters fix this problem.
- The support for function types (func aType and proc) in interpreter
  and compiler has been improved.
- The support for Emscripten (a C compiler that generates JavaScript
  and WebAssembly) has been improved. The support of Emscripten is
  experimental (see also src/read_me.txt).
- The library http_response.s7i has been improved to set the correct
  content-type for more file types (css, javascript, wasm, gif, bmp,
  pdf). This way the comanche webserver also works better.
- The function getCgiParameters() in cgi.s7i has been improved to
  accept also elements without equals sign (in this case value is
  assumed to be "").
- The function readPropertyFile8() has been added to the library
  propertyfile.s7i. This function processes an UTF-8 encoded property
  file.
- In propertyfile.s7i the function readPropertyNameOrValue() has been
  changed to work correctly for unicode escapes (\u) and for escaped
  newlines. An extended unicode escape (\U) has been added also.
- Testcases that check if seek() does clear the EOF flag have been
  added to chkfil.sd7.
- The Seed7 parser (used by interpreter and compiler) has been
  improved, to recognize if the same syntax is declared twice. In this
  case a compile-time error is written.
- The FAQ has been improved to explain the simple profiling of the
  Seed7 compiler.
- The simple profiling of the compiler has been improved to recognize,
  if a function has been left without taking profiling into account.
- The compiler has been improved to recognize if a raise statement
  leaves a function and generates code to make the profiling work
  correctly (if it has been enabled).
- The recognition of constant expressions in the compiler has been
  improved to consider variable functions as variable. The changes
  are in comp/const.s7i in two functions named isConstantCall().
- Changes have been done in seed7_05.s7i and integer.s7i such that the
  new in-parameters work as expected.
- The interpreter has been improved to support the actions DCL_IN1,
  DCL_IN2, TYP_SET_IN_PARAM_REF and TYP_SET_IN_PARAM_VALUE.
- The functions dcl_in1() and dcl_in2() have been added to dcllib.c.
- The functions typ_set_in_param_ref() and typ_set_in_param_value()
  have been added to typlib.c.
- Changes in syntax.c and token.c make sure that the new error
  SYNTAX_DECLARED_TWICE is recognized.
- In prclib.c the function prc_cpy() has been improved to take into
  account that MATCHOBJECT is constant (and the underlying object
  is variable).
- In cmd_unx.c the function setenv7() has been improved to work
  correctly, if a value is enlarged.
- In cmd_unx.c the functions getenv7(), setenv7() and unsetenv7() have
  been improved to optionally work case insensitive.
- Changes in cmd_drv.h, cmd_rtl.c and fil_unx.c allow that some
  operating system properties are determined at run-time. This is used
  for Emscripten.
- The functions setenvForNodeJs() and unsetenvForNodeJs() have been
  added to cmd_unx.c. Now setenv() and unsetenv() have also an effect
  on the environment used by Node.
- The file drw_emc.c has been added. This file provides graphic access
  using browser capabilities. It is used if Seed7 is compiled with
  emcc.
- The file pre_js.js has been added. This JavaScript code is included
  by Emscripten. It sets up program path and arguments, if the program
  runs in the browser.
- In cmd_rtl.c the function systemForNodeJs() has been improved to
  return -1, if the command cannot be executed.
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  store the environment variables in seed7/bin/emcc_env.ini. The macro
  CC_ENVIRONMENT_INI, which defines the path of seed7/bin/emcc_env.ini,
  is now written to version.h. This way the Seed7 compiler can be used
  without setting up Emscripten.
- Changes have been done in error.c and error.h to introduce the new
  errors SYNTAX_DECLARED_TWICE and KIND_OF_IN_PARAM_UNDEFINED. The
  error UNEXPECTED_SYMBOL has been replaced with EXPECTED_SYMBOL.
- The functions increaseLevelOfCatchedExceptions() and
  decreaseLevelOfCatchedExceptions() have been added to comp/error.s7i.
  These functions are used in comp/prc_act.s7i.
- In comp/expr.s7i the function declare_type_if_necessary() has been
  improved to take a existing typeCategory of BLOCKOBJECT into account.
- In comp/type.s7i the function getExprResultType() has been improved
  to check that the category is a CALLOBJECT.
- Definitions of LINKER_OPT_SPECIAL_LIB and SPECIAL_LIB have been added
  to cc_conf.s7i.
- The files s7c.sd7, confval.sd7, cmd_rtl.c, mk_emccl.mak and
  mk_emccw.mak have been improved to use the new configuration values.
- The parameter list of the functions cmdSetGroup() and cmdSetOwner()
  has been changed in comp/cmd_act.s7i, cmd_drv.h, cmd_unx.c and
  cmd_win.c. Now group and owner are constant strings.
- Documentation comments have been added or improved in cc_conf.s7i,
  cgi.s7i, csv.s7i, propertyfile.s7i and graph.s7i.

20201208:
- Answers to two new questions have been added to the FAQ. Answers to
  three existing questions have been improved.
- In dialog.s7i the function messageWindow() has been added and the
  function isOkay() has been improved. Dialog windows are placed now at
  the center of the main window (or screen if there is no main window).
- The functions screenHeight(), screenWidth(), getBorder() and
  setCloseAction() have been added to graph.s7i.
- Definitions of while- and repeat-loops with empty loop body have been
  added to seed7_05.s7i and syntax.s7i.
- In seed7_05.s7i the new exception CLOSE_ERROR has been introduced and
  enumeration types have been improved to support the function rand().
- The calc7 example program has been improved to support the functions
  getHttp() and getHttps().
- In sokoban.sd7 the function to read a level number has been improved.
- The programs castle.sd7, gkbd.sd7, klondike.sd7, lander.sd7,
  mahjong.sd7, mandelbr.sd7, pairs.sd7, panic.sd7, planets.sd7,
  shisen.sd7, sokoban.sd7, sudoku7.sd7, tetg.sd7 and wator.sd7 have
  been improved to handle the close button (from the window title bar).
- A boss mode has been added to the castle.sd7, sokoban.sd7, pairs.sd7
  and shisen.sd7 example programs.
- Tests for while- and repeat-loops have been added to chkprc.sd7.
- Cosmetic improvements have been done in planets.sd7 and sl.sd7.
- The key KEY_CLOSE has been added to keybd.s7i and keydescr.s7i.
- The support for function types (func aType and proc) in the Seed7
  compiler has been improved.
- In drw_win.c the function drwOpen() has been improved to place the
  window at the requested position.
- In drw_x11.c the functions drwXPos() and drwYPos() have been improved
  to return the position relative to the screen (instead of relative to
  the parent window).
- The functions drwBorder(), drwScreenHeight(), drwScreenWidth() and
  drwSetCloseAction() have been added to drw_win.c, drw_x11.c and
  drw_dos.c.
- In gkb_win.c and gkb_x11.c the function gkbGetc() has been improved
  to recognize the close button from the window title bar.
- In gkb_win.c the function gkbKeyPressed() has been improved to handle
  the close button from the window title bar.
- The program chkccomp.c has been improved to determine the value
  FREAD_WRONG_FOR_WRITE_ONLY_FILES.
- The function XQueryTree has been added to fwd_x11.c and x11_x.h.
- An explanation about C compiler warnings about "passing argument with
  different width due to prototype" has been added to src/read_me.txt.
- Documentation comments have been added or improved in dialog.s7i,
  graph.s7i, sl.sd7, drwlib.c, drw_win.c and drw_x11.c.
- In several files casts have been introduced to reduce the number of
  warnings that are flagged with a historic version of gcc.
- Interpreter and compiler have been improved to support the actions
  DRW_BORDER, DRW_SCREEN_HEIGHT, DRW_SCREEN_WIDTH, DRW_SETCLOSEACTION,
  PRC_REPEAT_NOOP, PRC_RETURN and PRC_WHILE_NOOP.

20200929:
- Support for link time optimization has been added. It is available if
  Seed7 is compiled with gcc or clang. The Seed7 compiler option -flto
  can be used to activate link time optimization.
- Answers to six new questions have been added to the FAQ.
- A chapter about for-loops and containers has been added to the
  tutorial.
- The ternary operator a ? b : c has been defined for integer, float,
  complex, rational, bigInteger, bigRational, char, string, bstring,
  boolean, bin32 and bin64.
- Tests for the ternary operator have been added to chkbig.sd7,
  chkbin.sd7, chkbool.sd7, chkbst.sd7, chkchr.sd7, chkflt.sd7,
  chkint.sd7 and chkstr.sd7.
- The function rand(low, high) for float has been changed to return a
  number in the range [low, high) instead of [low, high]. The range
  [low, high) is commonly used by float random number generators.
- Tests for the rand() function have been added to chkflt.sd7.
- The Seed7 compiler has been improved to inline code for the action
  FLT_RAND, if the option -oc3 is used and both bounds are constant.
- Definitions of FLOATTYPE_MANTISSA_BITS, FLOATTYPE_EXPONENT_OFFSET,
  STMT_BLOCK_IN_PARENTHESES_OK, RAND_MULTIPLIER, RAND_INCREMENT,
  CC_OPT_LINK_TIME_OPTIMIZATION and LINKER_OPT_LTO_MANDATORY have been
  added to cc_conf.s7i.
- The files confval.sd7 and cmd_rtl.c have been improved to use the new
  configuration values.
- Interpreter and compiler have been improved to support the action
  BLN_TERNARY.
- In comp/int_act.s7i the functions uintRand(), uintRandMantissa() and
  uintRandLimited() are defined as macros now, if the Seed7 compiler
  has been called with -oc3.
- In name.c the function close_stack() has been improved to dump the
  values of BLOCKOBJECT objects after the values of other objects have
  been dumped.
- The program chkccomp.c has been improved to determine the values
  FLOAT_EXPONENT_OFFSET, STMT_BLOCK_IN_PARENTHESES_OK,
  CC_OPT_LINK_TIME_OPTIMIZATION and LINKER_OPT_LTO_MANDATORY.
- In progs.s7i documentation comments for parseFile(), parseStri() and
  execute() have been improved.
- The program chk_all.sd7 has been adjusted to the changes in the
  check programs.

20200830:
- Spelling corrections have been done in several files. Many thanks go
  to Jens Schleusener, for sending a source code misspelling report
  from Fossies.
- The file README.md, which uses the markdown format, has been added.
- Answers to seven new questions have been added to the FAQ.
- Descriptions of array, hash, set and struct in the manual have been
  improved to contain examples of type declaration and usage.
- In array.s7i the functions remove() and insert() have been improved
  to avoid copying whole elements.
- The string slice functions have been changed to raise INDEX_ERROR for
  negative indices or lengths.
- The array slice functions have been changed to raise INDEX_ERROR for
  negative indices or lengths.
- In chkstr.sd7 the tests for string slices have been adjusted to the
  new behavior.
- The example program chkidx.sd7 has been added. This program checks
  if INDEX_ERROR is correctly raised for string operations.
- The example program chkarr.sd7 has been added. This program checks
  if array operations work correctly.
- The program chk_all.sd7 has been improved to call and check the new
  programs chkidx.sd7 and chkarr.sd7.
- Compiler and interpreter have been improved to support the actions
  ARR_INSERT, ARR_INSERT_ARRAY and ARR_REMOVE_ARRAY.
- The compiler has been improved to support call by name parameters
  with varfunc instead of func.
- The file comp/arr_act.s7i has been improved to support ARR_INSERT,
  ARR_INSERT_ARRAY and ARR_REMOVE_ARRAY.
- The file comp/str_act.s7i has been improved to support the changed
  string slice functions.
- The functions arr_insert(), arr_insert_array() and arr_remove_array()
  have been added to arrlib.c. These functions work without copying
  whole elements. Instead a memmove() is used on a part of the array to
  move object records.
- The functions arrInsert(), arrInsertArray() and arrRemoveArray() have
  been added to arr_rtl.c. These functions work without copying whole
  elements. Instead a memmove() is used on a part of the array to move
  64-bit elements.
- The functions addCopiedStriToArray() and addCopiedStriToRtlArray()
  in strlib.c respectively str_rtl.c have been improved to scale
  better. Now these functions double the array size every time a
  realloc() is necessary. In the end the size is reduced to the actual
  array size.
- In strlib.c the functions str_head(), str_range(), str_substr() and
  str_tail() have been improved to check for INDEX_ERROR.
- In str_rtl.c the function strHeadSlice(), strHead(), strHeadTemp(),
  strRangeSlice(), strRange(), strSubstrSlice(), strSubstr(),
  strTailSlice() and strTail() have been improved to check for
  INDEX_ERROR.
- The function strTailTemp() has been added to str_rtl.c. This function
  is used by the compiler to optimize expressions like: s := s[n ..];
- In cmd_rtl.c the functions cmdMkdir(), cmdRemoveFile(),
  cmdRemoveTree(), cmdSetATime(), cmdSetFileMode(), cmdSetMTime() and
  cmdSymlink() have been improved.
- In cmd_unx.c the memory management of cmdSetGroup() and cmdSetOwner()
  has been improved.

20200727:
- In ut8_rtl.c the function ut8Seek() has been improved such that
  a call of ut8Seek() can be directly followed by a statement to write
  to the file.

20200726:
- The library rpm.s7i has been improved to write changes to the
  archive file, when the archive is closed.
- The library tar_cmds.s7i has been improved to support Zstandard
  compressed tar archives.
- The functions setOwner() and setGroup() have been added to cpio.s7i
  and osfiles.s7i.
- The test programs chkbig.sd7, chkbin.sd7, chkflt.sd7, chkhsh.sd7,
  chkint.sd7, chkset.sd7 and chkstr.sd7 have been improved to increase
  the code coverage of the Seed7 run-time library.
- The example program chkfil.sd7 has been added. This program checks
  the correctness of file operations.
- The example program chkbst.sd7 has been added. This program checks
  the correctness of bstring functions.
- The program chk_all.sd7 has been improved to call the new programs
  chkbst.sd7 and chkfil.sd7. It also has been adjusted to the changes
  in the check programs.
- In strifile.s7i the function write() has been improved to use @:=
  if a file is overwritten. This is much quicker than the previous
  approach, that used several string concatenations.
- The function openTarFileWithMagic() has been added to tar_cmds.s7i.
  This function is used by tarTell() and tarXtract().
- In cpio.s7i the function to close the CPIO archive has been changed
  to leave the underlying file open.
- In external_file.s7i the function close has been changed to set the
  underlying clib file to NULL.
- In gzip.s7i the function to close a gzipFile has been changed to
  leave the destination file open.
- The conversion function integer() has been added to bin32.s7i and
  bin64.s7i.
- The compiler (s7c.sd7) has been improved (in set_act.s7i) to produce
  correct code for the actions SET_CONV1 and SET_CONV3 (independent
  if a normal expression or a result expression is converted).
- Interpreter and compiler have been improved to support the actions
  CMD_SET_GROUP and CMD_SET_OWNER.
- The functions cmd_set_group() and cmd_set_owner() have been added to
  cmdlib.c.
- The functions getGidFromGroup(), getUidFromUser(), cmdSetGroup() and
  cmdSetOwner() have been added to cmd_unx.c. The functions
  getGroupFromGid() and getUserFromUid() have been improved.
- The functions getSidFromName(), cmdSetGroup() and cmdSetOwner() have
  been added to cmd_win.c. The functions getNameFromSid(),
  cmdGetGroup() and cmdGetOwner() have been improved.
- In big_rtl.c the functions bigMDivSizeLess() and bigModSizeLess()
  have been simplified. A bug triggered by a zero dividend has been
  fixed also.
- In flt_rtl.c the function fltRand() has been fixed to work correctly
  for rand(-Infinity, Infinity).
- In numutl.c the function getDecimalInt() has been improved.
- The function setEmpty() has been removed from set_rtl.c.
- In set_rtl.c the functions setNext() and setToUInt() have been fixed
  to work correctly.
- In strlib.c and str_rtl.c the function strSplit() has been fixed to
  work correctly, if the delimiter consists of two or more characters.
- In fil_rtl.c the functions get_mode() and filClose() have been
  improved.
- The program chkccomp.c has been improved to determine the values
  HAS_GETGRNAM_R, HAS_GETGRNAM, HAS_GETPWNAM_R and HAS_GETPWNAM.

20200628:
- The new library zstd.s7i has been added. This library supports
  Zstandard compressed files.
- The functions getOwner() and getGroup() have been added to cpio.s7i,
  osfiles.s7i, ar.s7i, rpm.s7i, tar.s7i, zip.s7i and filesys.s7i.
- The function unsetenv() has been added to the library
  environment.s7i. This function deletes a variable from the
  environment.
- In bytedata.s7i the function getAsciiz() has been improved.
- The function gets() has been improved in gzip.s7i, iobuffer.s7i,
  lzma.s7i, strifile.s7i, subfile.s7i, utf16.s7i, xz.s7i and
  string.s7i. Now gets() can be called with a maxLength of
  integer.last, without triggering an OVERFLOW_ERROR.
- Several improvents have been done for the library rpm.s7i:
  - Now it supports a Zstandard compressed payload.
  - A catalog has been added to rpm.s7i. This is necessary allow
    writing to an RPM archive. Several functions have been rewritten
    to use the catalog instead of file numbers.
  - Checks for the payload digest and for file digests have
    been added.
  - Several RPM tags have been added and the function to write a tag
    name has been renamed to rpmtagName().
  - The functions getStringArray(), createMinimumOfCatalog(),
    createRegister(), getInt(), readCatalogEntry(),
    updateIndexEntry(), updateMetadata(), doSettings(), getDigest(),
    checkPayloadDigest(), archiveFilePath(), getOwner(), setOwner(),
    getGroup(), setGroup(), putFile() and mkdir() have been added.
- The functions setOwner() and setGroup have been added to tar.s7i.
- The library bitdata.s7i has been improved. Now it supports the type
  reverseBitStream and functions to create and read reverse bit
  streams. Reverse bit streams are used by the Zstandard compression.
- The new exception INDEX_ERROR has been introduced. An INDEX_ERROR
  occurs, if an index is used to access an 'array', 'string',
  'bstring' or 'ref_list' element beyond the elements that actually
  exist. Formerly this triggered a RANGE_ERROR.
- Several files have been adjusted to use INDEX_ERROR instead of
  RANGE_ERROR. Checks for INDEX_ERROR have been added to chkexc.sd7
  and chkstr.sd7.
- The FAQ has been improved. Now the design principles of Seed7 are
  listed. The description how the type of an expression is determined
  (bottom up), has been improved also.
- Chapters about the exception RANGE_ERROR and about the suppresson
  of exception checks have been added to the manual.
- Several things in the compiler have been improved:
  - Index checks can now be suppressed with the option -si.
  - The generation of warnings, for a catch with suppressed exception
    checks, has been improved.
  - Code for the actions INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT
    is inlined, if the option -oc3 is used and the argument of the
    function is a string slice. This actions are used by the function
    bytes2Int().
  - Now optimized code for the index access of a ref_list is generated.
    This reduces the runtime of an index access by 56% (Measured with
    gcc and Valgrind when the compiler compiles bas7). The runtime of
    the compiler is reduced by 0.2%.
  - Better code for the 'times' operator is generated. Now arrTimes()
    is used, if the array element is a simple value type (e.g. an
    integer).
  - Converting an integer to a bitset and computing the cardinality
    of the set is already optimized by the compiler. Now the check for
    negative integers can be suppressed with -sr.
  - Index accesses for string and bstring have been improved to use
    the function getParameterAsVariable().
- Tests for the compiler optimization of bytes2Int() have been added
  to chkint.sd7.
- In chkstr.sd7 tests vor @:= with an empty source string (e.g.
  stri @:= [1] "") have been added.
- The functions memsetGeneric() and arrTimes() have been added to
  arr_rtl.c.
- In arr_rtl.c a check to avoid creating an array with a negative
  number of elements has been added to arrMalloc().
- The program chkccomp.c has been improved to determine the values
  os_unsetenv, PUTENV_CAN_REMOVE_KEYS, DEFINE_WUNSETENV, HAS_WCSNLEN,
  HAS_GETGRGID_R, HAS_GETGRGID, HAS_GETPWUID_R and HAS_GETPWUID.
- The function linkerOptionAllowed() has been added to chkccomp.c.
- The program chkccomp.c has been improved to write the linker option
  -rpath in a way that works with modern linkers. The meaning of the
  -rpath option has changed and it must be combined with the option
  --disable-new-dtags to get the old behavior.
- The functions getGroupFromGid(), getUserFromUid(), cmdGetGroup(),
  cmdGetOwner() and cmdUser() have been added to cmd_unx.c.
- The functions wunsetenv(), getNameFromSid(), cmdGetGroup(),
  cmdGetOwner() and cmdUser() have been added to cmd_win.c.
- Definition of extern "C" have been added to db_fire.h, db_lite.h,
  db_my.h, db_oci.h, db_odbc.h, db_post.h and db_tds.h.
- Interpreter and compiler have been improved to support the actions
  CMD_GET_GROUP, CMD_GET_OWNER and CMD_UNSETENV.

20200531:
- The libraries tar.s7i, cpio.s7i and rpm.s7i have been improved such
  that the file system functions follow symbolic links (inside of the
  archive).
- The library zip.s7i has been improved to support the functions
  setFileMode(), setMTime() and putFile().
- The library ar.s7i has been improved to allow UTF-8 file names and to
  support the functions setFileMode(), setMTime(), putFile() and
  removeFile().
- The library rpm.s7i has been improved to support a LZMA compressed
  payload.
- The library cpio.s7i has been improved such that setFileMode(),
  putFile() and mkdir() work correctly.
- The library lzma.s7i has been fixed such that xz.s7i can handle
  uncompressed chunks in an XZ archive. A bug in the function length()
  has been fixed also.
- The new library fileutil.s7i has been added. This library supports
  inserting and deleting areas in a file. The function copyFile, which
  copies data between open files, has been moved from file.s7i to
  fileutil.s7i.
- The function truncate(), which changes the length of a file, has been
  added to file.s7i, external_file.s7i, clib_file.s7i, strifile.s7i and
  utf16.s7i.
- The library iobuffer.s7i has been improved to allow switching between
  reading and writing (and vice versa) as long as seek() is called in
  between. The functions flush() and close() have been added and the
  functions seek(), tell() and moveLeft() have been improved.
- The function deflate(), which deflates a string has been added to the
  library deflate.s7i.
- The function moveLeft() has been improved in strifile.s7i and
  stritext.s7i.
- The function timestamp1601 has been added to time.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for LINPUT statements, for the function RPT$ and for the
  string concatenation operator & has been added. The predefined
  subprogram CHAR has been improved. Now PRINT statemens allow a colon
  (:) between strings to describe a line break. Now INPUT statements
  allow a colon (:) between input prompt and variable list. A dummy
  implementation of the predefined subprogram SOUND has been defined.
- In seed7_05.s7i the definition of ::= for the type void has been
  changed to use the action ENU_CREATE instead of PRC_NOOP. This avoids
  a strange interpreter message (loc not dumped) if a void value is
  written.
- Tests in chkint.sd7 have been split into several functions.
- Documentation in the FAQ, the manual and s7c.1 has been improved.
- Interpreter and compiler have been improved to support the new action
  FIL_TRUNCATE.
- The compiler has been improved (in comp/inline.s7i in the function
  push_inline_func_param) to add a "const" for a parameter definition.
  This avoids a compilation error with g++.
- The keyboard driver gkb_x11.c has been improved to to support the
  ALT modifier also under macOS.
- Code in sql_tds.c has been refactored. Unused struct fields have been
  removed. The function sqlColumnDuration() has been improved.
- In tim_dos.c the function timAwait() has been improved to use
  timToOsTimestamp() instead of mkutc() to get the timestamp.
- The function mkutc() has been removed from tim_rtl.c.
- The function XGetKeyboardControl() has been added to fwd_x11.c and
  x11_x.h.
- The files fwd_term.c and fwd_term.h have been improved to work also
  if termios.h is available.
- The makefiles have been improved to simplify the build system. Now
  chkccomp.c includes the file base.h and generates version.h by
  copying base.h and appending settings.h. Afterwards chkccomp.c
  appends more values to version.h. These values are determined with
  test programs. Additionally GET_CC_VERSION_INFO has been replaced by
  CC_OPT_VERSION_INFO and CC_VERSION_INFO_FILEDES. The value
  C_COMPILER_VERSION is now determined by chkccomp.c.
- The files confval.sd7, cc_conf.s7i, cmd_rtl.c and setpaths.c have
  been improved to use the new configuration values.
- In cc_conf.s7i, confval.sd7, s7c.sd7, chkccomp.c, cmd_rtl.c and
  os_decls.h the configuration values CC_ERROR_FILDES,
  REDIRECT_FILDES_1 and REDIRECT_FILDES_2 have been renamed to
  CC_ERROR_FILEDES, REDIRECT_FILEDES_1 and REDIRECT_FILEDES_2
  respectively.
- The functions appendFile(), determineCompilerVersion() and
  determineFtruncate() have been added to chkccomp.c.
- Documentation comments have been added or improved in array.s7i,
  bigint.s7i, integer.s7i, progs.s7i, string.s7i, flt_rtl.c,
  ref_data.c, reflib.c, setlib.c, set_rtl.c, sigutl.c and tim_rtl.c.
- Occurrences of the words minimal and maximal have been replaced with
  minimum and maximum in several files.

20200502:
- As suggested by Zachary Menzies a detection of more modifier keys has
  been added. E.g.: KEY_SHIFT_LOCK and KEY_NUM_LOCK. These modifier
  keys have a state. The state of KEY_SHIFT_LOCK can be retrieved with
  buttonPressed(KEYBOARD, KEY_SHIFT_LOCK_ON).
- Several new keys and key combinations such as KEY_PRINT, KEY_PAUSE,
  KEY_ALT_LEFT and KEY_SFT_MENU have been added to keybd.s7i. Existing
  definitions in keybd.s7i have been refactored. Key names in
  keydescr.s7i have been updated.
- The program gkbd.sd7 has been improved to show the new capabilities
  of the keyboard interface.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for the predefined subprograms CHAR, CLEAR, COLOR, HCHAR,
  KEY, SCREEN and VCHAR and for the function SEG$ has been added.
- The bitmap font font8x8 has been added. This is a font with 8x8 pixel
  used by the TI-99/4A homecomputer.
- The functions line() and column() have been added to pixmap_file.s7i.
- The function replace1() has been added to string.s7i.
- In the manual the chapters about types and the keyboard have been
  improved.
- The compiler has been improved to link database libraries only if
  they are needed.
- The compiler has been improved to use builtin functions of the C
  compiler (if available) to do integer overflow checks. This reduces
  the runtime of the xz (lzma2) decompression by 4% (measured with gcc
  and valgrind, when decompressing a binary Seed7 package).
- The compiler has been improved to use a better approach to test for
  integer overflow of addition and subtraction, if no builtin functions
  are available. This reduces the runtime of the xz (lzma2)
  decompression by 0.8% (measured with gcc and valgrind, when
  decompressing a binary Seed7 package).
- The compiler has been improved to optionally suppress the generation
  of checks for integer division by zero with the option -sd.
- The simple function profiling of the Seed7 compiler has been improved
  to write the place and the name of the Seed7 function and to avoid
  a C compiler error about "too many initializers".
- The compiler has been improved to write a warning if there is a catch
  statement for an exception although the checks for this exception
  have been suppressed (with the option -s).
- The compiler has been improved to work correctly for all corner cases
  of the string operations [, mult and @:=.
- Testcases for the operators [, mult and @:= and for the functions
  pos() and rpos() have been added to chkstr.sd7.
- Testcases for the exception RANGE_ERROR have been added to
  chkbig.sd7. The function bigInteger() and the operators radix, RADIX
  and parse are checked now, if they correctly raise RANGE_ERROR.
- Testcases for the exception RANGE_ERROR have been added to
  chkint.sd7. The functions bytes() and integer() and the operators
  radix, RADIX, sci and parse are checked now, if they correctly raise
  RANGE_ERROR.
- Testcases for the exception NUMERIC_ERROR have been added to
  chkint.sd7. The operators div, rem, mdiv, mod and ** are checked
  now, if they correctly raise NUMERIC_ERROR.
- A lot of testcases has been added to chkint.sd7 and chkovf.sd7 in
  the function check_reduced_overflow_checking_for_sums().
- In comp/big_act.s7i the function process_const_big_ipow has been
  improved to allow that the check for a negative exponent can be
  optionally omitted.
- In chkovf.sd7 the checks for the operators rem and mod have been
  improved to allow that the operators return the correct result
  instead of raising OVERFLOW_ERROR.
- Index access in comp/str_act.s7i and comp/bst_act.s7i has been
  improved to work also for the index integer.first (now the index is
  casted to (unsigned) and afterwards 1 is subtracted).
- In comp/intrange.s7i the function getIntRange has been improved to
  return better ranges for INT_ABS and INT_NEGATE.
- The keyboard driver gkb_x11.c has been improved to support new keys
  and key combinations. Additionally the modifier state is synched now
  with the keypresses. This allows reading a modifier key state (e.g.
  (control has been pressed) from the moment when the main key (e.g.
  the letter A) was pressed.
- The program chkccomp.c has been improved to determine the values
  CHECK_INT_DIV_ZERO_BY_ZERO, HAS_BUILTIN_OVERFLOW_OPERATIONS and
  SYSTEM_DATABASE_LIBS. The logic to determine the values
  CHECK_INT_DIV_BY_ZERO, CHECK_INT_REM_BY_ZERO and
  CHECK_INT_REM_ZERO_BY_ZERO has been improved.
- The configuration value CHECK_INT_DIV_ZERO_BY_ZERO,
  BUILTIN_ADD_OVERFLOW, BUILTIN_SUB_OVERFLOW, BUILTIN_MULT_OVERFLOW
  and SYSTEM_DATABASE_LIBS have been added to cc_conf.s7i, confval.sd7
  and cmd_rtl.c.
- Documentation comments have been added or improved in cc_conf.s7i,
  encoding.s7i, gzip.s7i, lzma.s7i, pixmap_file.s7i, scanfile.s7i,
  sql_base.s7i, string.s7i, xz.s7i, sigutl.c and striutl.c.

20200405:
- The new library xz.s7i has been added. This library supports XZ
  compressed files.
- The new library lzma.s7i has been added. This library supports LZMA
  compressed files.
- The library rpm.s7i has been improved to support a XZ compressed
  payload.
- The library tar_cmds.s7i and the program tar7.s7i have been improved
  to support XZ and LZMA compressed tar archives.
- The library zip.s7i has been improved to support Unicode file names.
- As suggested by Zachary Menzies a detection of modifier keys has been
  added. E.g. buttonPressed(KEYBOARD, KEY_SHIFT). Additionally several
  new key combinations such as KEY_SFT_MOUSE1 and KEY_CTL_PAD_CENTER
  have been added to keybd.s7i.
- The program gkbd.sd7 has been improved to show the new capabilities
  of the keyboard interface.
- Interpreter and compiler have been improved, to write a compile time
  error, if a numerical escape sequence in a string or char literal
  is too big.
- The compiler has been improved to omit overflow checks for the
  dividend of the mod operator, if the divisor is a power of two. This
  reduces the runtime of the xz (lzma2) decompression by 2.3% (measured
  with gcc and valgrind, when decompressing a binary Seed7 package).
- The compiler file comp/intrange.s7i has been added. This file defines
  the function getIntRange(), which computes the range of possible
  results for several operators (e.g.: div, rem, mdiv, mod, >>) and
  functions (e.g.: sqrt, length, pos, rand, log).
- The compiler has been improved to use the function getIntRange() to
  omit overflow checks for addition, subtraction, multiplication and
  left shift of integer values. This reduces the runtime of the xz
  (lzma2) decompression by 0.4% (measured with gcc and valgrind, when
  decompressing a binary Seed7 package).
- In the compiler the code generation for the operators div, rem, mdiv,
  mod, * and << has been improved to work without catching the
  exception OVERFLOW_ERROR.
- The compiler has been improved to allow that a range check is
  suppressed with -sr for the action FLT_BITS2SINGLE (convert integer
  to single precision float value).
- The compiler has been improved to generate code that writes the error
  message of a DATABASE_ERROR, if the exception is uncaught.
- The compiler has been improved to suppress the usage of the C
  compiler option CC_OPT_TRAP_OVERFLOW (-ftrapv), if the Seed7 compiler
  option -so (suppress overflow checks) is used.
- The makefiles mk_clang.mak, mk_clangw.mak and mk_osxcl.mak have been
  improved to define CC_OPT_TRAP_OVERFLOW with the value -ftrapv.
- The functions check_mod_by_power_of_two_optimization() and
  check_mod_by_computed_power_of_two_optimization() have been added
  to chkint.sd7. This functions check the mod operator regarding
  the new compiler optimization for the mod dividend.
- The functions check_reduced_overflow_checking_for_sums(),
  check_reduced_overflow_checking_for_mult() and
  check_reduced_overflow_checking_for_lshift() have been added to
  chkint.sd7 and chkovf.sd7. This functions test the compiler
  optimization to reduce overflow checking with getIntRange().
- The libraries aes.s7i, bitdata.s7i, color.s7i, deflate.s7i, draw.s7i,
  ico.s7i, msgdigest.s7i, pkcs1.s7i, showtls.s7i and utf16.s7i have
  been improved to use the division operators 'mdiv' and 'mod' instead
  of 'div' and 'rem'.
- The configuration value CC_OPT_TRAP_OVERFLOW has been introduced in
  cc_conf.s7i, confval.sd7, s7c.sd7, chkccomp.c, cmd_rtl.c and
  read_me.txt.
- The function write_exception_info() has been added to runerr.c. This
  function is called in executl.c.
- The keyboard drivers gkb_win.c and gkb_x11.c have been improved to
  support modifier keys and more key combinations.
- Definitions for 31 new key compinations and 9 modifier keys have
  been added to keybd.s7i and keydescr.s7i.
- Documentation comments have been improved in ar.s7i, cc_conf.s7i
  and csv.s7i.

20200308:
- The new library cpio.s7i has been added. This library supports cpio
  archive files.
- The new library rpm.s7i has been added. This library supports rpm
  archive files.
- The new library ar.s7i has been added. This library supports ar
  archive files.
- The new library subfile.s7i has been added. This library allows to
  open a part of an existing file as read only file.
- The new library filebits.s7i has been added. This library defines
  file mode bits used by archive file systems.
- The libraries bin32.s7i and bin64.s7i have been improved to support
  case statements for the types bin32 and bin64.
- The tarHeader element 'size' has been renamed to 'fileSize' in
  tar.s7i and tar_cmds.s7i.
- Tests for the operator 'conv' and for the functions compare(), str(),
  float(), trunc() and round() have been added to chkflt.sd7.
- The program chkccomp.c has been improved to determine the values
  MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT.
- Definitions of MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT have
  been added to cc_conf.s7i.
- The compiler (s7c) has been improved (in comp/flt_act.s7i) such that
  the actions FLT_TRUNC and FLT_ROUND do the correct check for the
  exception RANGE_ERROR.
- The database driver sql_oci.c has been improved to support the types
  BINARY_FLOAT and BINARY_DOUBLE.
- Tests for FLOAT and DOUBLE fields have been added to chkdb.sd7.
- A definition of the constant GZIP_MAGIC has been added to gzip.s7i.
- In file.s7i and iobuffer.s7i the functions hasNext() and length()
  have been changed to use an inout parameter for the file. This fixes
  a problem in compiled programs with some file systems where also an
  inout parameter is used for the file.
- The file db_oci.h has been improved to define SQLT_BFLOAT,
  SQLT_IBFLOAT, SQLT_BDOUBLE and SQLT_IBDOUBLE.
- In fltlib.c the functions flt_trunc() and flt_round() have been
  improved to do the correct check for the exception RANGE_ERROR.

20200209:
- The new database driver sql_tds.c has been added. This driver uses
  the Tabular Data Stream (TDS) protocol to transfer data between
  database server and client. TDS is used by SQL Server and Sybase.
  This driver allows the connection to a SQL Server database from
  Linux.
- The new library db_prop.s7i has been added. This library provides a
  collection of database properties.
- The example program chkdb.sd7 has been improved:
  - Tests with comments in sql statements have been added.
  - Tests that fetch boolean values from numeric fields have been
    added.
  - Tests for date, time, datetime and timestamp fields have been
    added.
- In the library time.s7i the function time() has been improved, to
  accept more variants of the ISO 8601 time and date format including
  variants with a time zone.
- The interpreter (s7) has been improved to write the error message of
  a DATABASE_ERROR, if the exception is not caught.
- In tim_rtl.c the function timUtcFromTimestamp() has been improved to
  work without calling gmtime() or gmtime_r() or gmtime_s(). Now the
  function always works with a 64-bit signed timestamp. Gmtime() uses
  time_t, which can be 32-bit or 64-bit and it can be signed or
  unsigned.
- In tim_rtl.c the function timToTimestamp() has been improved to work
  without calling mkutc(). This way the function always works with a
  64-bit signed timestamp. Mkutc() is also defined in tim_rtl.c and it
  uses the system dependent type time_t.
- In tim_rtl.c the functions timToOsTimestamp(), assignTime() and
  dateFromDaysSince1900() have been added and the functions
  timFromBigTimestamp() and timToBigTimestamp() have been removed.
- In exec.c the functions par_restore() and loc_restore() have been
  improved to free unneeded memory, in case an exception has been
  raised.
- In executl.c the function destroy_local_object() has been improved to
  optionally ignore exceptions.
- The functions leaveExceptionHandling(), saveFailState() and
  restoreFailState() have been added to runerr.c. This function is used
  in executl.c and prclib.c.
- In numutl.c the functions getDecimalBigRational() and
  getDecimalFloat() have been improved to accept both, a decimal point
  and a decimal comma.
- In several database drivers the function processStatementStri() has
  been improved to replace a comment with a space.
- Interpreter and compiler have been improved to support the actions
  SQL_ROLLBACK, SQL_GET_AUTO_COMMIT and SQL_SET_AUTO_COMMIT.
- The functions sqlRollback(), sqlGetAutoCommit() and
  sqlSetAutoCommit() have been added to sql_cli.c, sql_lite.c,
  sql_my.c, sql_oci.c, sql_post.c and sql_rtl.c.
- In the database driver sql_lite.c the functions sqlBindTime() and
  sqlColumnTime() have been improved to support more time and date
  formats. The function sqlColumnTime() calls assignTime() to reach
  this goal.
- In the database driver sql_my.c the function sqlColumnTime() has
  been improved to correct values, if they are outside of the allowed
  range.
- The database driver sql_db2.c has been improved to allow that for
  the functions SQLExecute() and SQLFetch() SUCCESS_WITH_INFO is
  treated as SQL_SUCCESS.
- The database driver sql_post.c has been improved:
  - Inserting and selecting time fields is now supported under
    different operating systems and compilers.
  - The type preparedStmtRecord and the functions freePreparedStmt()
    and sqlPrepare() have been improved such that a prepared statement
    maintains a dbType reference instead of a connection (PGconn).
  - The functions doExecSql() and implicitCommit() have been added.
    These functions are used for autocommit and for transaction
    handling.
- The database driver sql_oci.c has been improved:
  - The function sqlBindTime() has been improved to set the timeZone
    and to use a nanosecond as unit for the fraction of a second.
    There is also a check for situations in which the function
    OCIDateTimeConstruct() fails.
  - The function sqlColumnTime() has been improved to use the function
    OCIDateTimeGetTimeZoneOffset() to retrieve a timeZone and to use a
    nanosecond as unit for the fraction of a second.
- The database driver sql_cli.c has been improved:
  - In case of a DATABASE_ERROR exception the native SQL error is
    assigned to the errorCode.
  - The function freePreparedStmt() has been changed to ignore
    possible errors of SQLFreeStmt().
  - Binding SQL_BLOB and SQL_CLOB parameters is supported now.
  - Retrieving SQL_SS_TIME2 and SQL_XML columns is supported now.
  - Retrieving datetime2 columns in sqlColumnTime() has been improved
    to use the function assignTime().
- The database include files db_lite.h, db_my.h, db_oci.h and db_odbc.h
  have been improved.
- In sql_srv.c the functions connectToServer() and
  connectToLocalServer() have been improved to return a boolean value
  instead of a SQLRETURN value.
- In cmd_rtl.c the functions cmdSetATime() and cmdSetMTime() have been
  improved to use the new function timToOsTimestamp().
- The function determineTdsDefines() has been added to chkccomp.c.
- In exec.c the function suspendInterpreter() has been renamed to
  doSuspendInterpreter().

20191229:
- Spelling corrections have been done in several files. Many thanks go
  to Jens Schleusener, for sending a source code misspelling report
  from Fossies.
- The memory management has been improved:
  - In exec.c the functions res_restore() and exec_action() have been
    improved to free unneeded memory, in case an exception has been
    raised.
  - In prclib.c the functions prc_block(), prc_block_catch_all() and
    prc_block_otherwise() have been improved to free the
    fail_expression, in case an exception has been caught.
  - In numutl.c the function getDecimalBigRational() has been improved
    to free the temporary string.
  - In sql_rtl.c the function sqlColumnBigRat() has been improved to
    free the old values of numerator and denominator.
- In sql_base.s7i the function openDatabase() with DB_ODBC and dbPath
  has been improved to use a DSN (data source name), if colon and slash
  are missing. E.g.: openDatabase(DB_ODBC, "anyDsn", "test", "test")
- The compiler has been improved to support the action PRC_HEAPSTAT.
- In flistutl.c the functions heapStatistic() and check_heap() have
  been improved to consider processes, sql functions, databases,
  prepared statements and fetched data. The function heap_statistic()
  has been renamed to heapStatistic().
- In sql_cli.c the functions sqlColumnBigInt(), sqlColumnBigRat(),
  sqlColumnBStri(), sqlColumnFloat() and sqlColumnStri() have been
  improved to check, if the length returned by the database is greater
  than the buffer_length. In this case a DATABASE_ERROR is raised.
- In sql_cli.c the function setDecimalBigRat() has been improved to
  convert integers to a string without decimal point.
- The function SQLGetFunctions() has been removed from db_odbc.h,
  sql_cli.c and the makefiles (variable OBJCOPY_PARAMS).
- In sql_cli.c the element SQLDescribeParam_supported has been removed.
  Instead the function pointer of SQLDescribeParam is checked and the
  result of SQLDescribeParam() is compared with SQL_SUCCESS.
- In sql_odbc.c the function driverConnect() has been improved to
  search only for a driver, if the driver name is not empty.
- In sql_odbc.c the function sqlOpenOdbc() has been improved to use
  the dbName as DSN (data source name) only, if no driver and no server
  are given.
- In sql_post.c the function setupDll() has been improved to call
  dllOpen() instead of a recursive call of setupDll().
- The new macro ALLOC_RECORD2() has been added to heaputl.h. The macro
  is used in drw_win.c, drw_x11.c, sql_cli.c, sql_fire.c, sql_lite.c,
  sql_my.c, sql_oci.c and sql_post.c.
- The new macros COUNT_GROW_STRI() and COUNT_SHRINK_STRI() have been
  added to heaputl.h. This macros are currently empty. They are planned
  for a heap statistic concerning unused chars in strings with
  capacity.
- In chkccomp.c several improvements have been done. In
  determineFireDefines() a search for the Firebird home directory has
  been added. In determineDb2Defines() the environment variable
  DB2_HOME is used now, to determine the Db2 home directory. In
  determineConsoleDefines() and determineSqlServerDefines() the list
  of DLLs has been improved.
- The heap statistic for strings has been improved to use the string
  capacity instead of the string size.
- The file config.h has been changed to define the macros
  USE_ALTERNATE_NEXT_CHARACTER, USE_INFILE_BUFFER, USE_CHUNK_ALLOCS,
  USE_ALTERNATE_CHUNK_ALLOCS and USE_MAXIMUM_MALLOC_CHECK always. Now
  these macros can have a value of 0 or 1.

20191215:
- The database libraries sql_srv.c and sql_cli.c have been improved to
  allow the connection to a SQL Server database from Linux. The library
  libtdsodbc.so is used to do the actual communication with the
  database.
- The build system of Seed7 has been improved. Logic regarding X11,
  ncurses and the databases has been moved from the makefiles to
  chkccomp.c.
- The build for Linux has been improved to work even if essential
  header files (for X11 or ncurses) are missing. This should only be
  used, if it is impossible to install the development packages of X11
  or ncurses.
- The example program chkdb.sd7 has been improved to do tests for SQL
  Server.
- In the FAQ the explanation of "What is necessary to compile Seed7
  with database connections", has been improved.
- In chkccomp.c the functions findIncludeFile(), findStaticLib(),
  findLinkerOption(), listDynamicLibs() and determineConsoleDefines()
  have been added.
- In chkccomp.c the functions determineEnvironDefines(),
  determineStatFunctions(), determineX11Includes(),
  determineMySqlDefines(), determineSqliteDefines(),
  determinePostgresDefines(), determineOdbcDefines(),
  determineOciDefines(), determineFireDefines(), determineDb2Defines(),
  determineSqlServerDefines(), determineIncludesAndLibs() and main()
  have been improved.
- The files fwd_term.c and fwd_term.h have been added. The functions in
  fwd_term.c forward calls to a shared terminfo library.
- The files con_inf.c, kbd_inf.c, kbd_poll.c, trm_cap.c and trm_inf.c
  have been improved to work with fwd_term.c and fwd_term.h.
- The file fwd_x11.c has been added. The functions in fwd_x11.c forward
  X11 calls to a shared X11 library. Fwd_x11.c is used, if it is not
  possible to link to a static X11 library.
- The file x11_x.h has been added. This file is used, if no X11 include
  file can be found.
- The files drw_x11.c and gkb_x11.c have been improved to work with
  x11_x.h and x11_x.h.
- The makefiles have been adjusted to work with the new build system.
- The program warn.c has been added. This program writes a warning, if
  header files of X11 or ncurses are missing.
- Documentation has been added to read_me.txt.
- In dll_win.c the function dllOpen() has been improved to assure, that
  a path to a DLL uses a backslash as path delimiter. This is required
  by the function LoadLibrary().
- The files bin/call_cl.bat and bin/call_lib.bat have been removed.

20191117:
- Support for mice with forward and back button has been added to the
  Seed7 run-time library. Many thanks go to Zachary Menzies, for
  driving my focus towards mice with additional buttons.
- Support for the C compiler from Visual Studio 2019 has been added.
  Many thanks go to Alexander Yu. Vlasov for pointing out compilation
  problems with Visual Studio 2019 and for investigating the problems.
- Interpreter and compiler have been improved to support DB2 and SQL
  Server databases.
- In the manual the chapter about the database abstraction API has been
  improved.
- The compiler has been improved to optimize the function replace()
  (action STR_REPL). Special functions (strChRepl() and strChChRepl())
  are used, if the searched or the replaced string consist of one
  character. This works even, if a character is converted to a string
  with the function str().
- Testcases for replace() have been added to chkstr.sd7.
- The program bigfiles.sd7 has been improved to search for the biggest
  directories additionally to the biggest files.
- The libraries keybd.s7i and keydescr.s7i have been improved to
  support KEY_MOUSE_FWD and KEY_MOUSE_BACK.
- The library sql_base.s7i and the programs db7.sd7 and sql7.sd7 have
  been improved to support DB_DB2 and DB_SQL_SERVER.
- In striutl.c the function stri_to_standard_path() has been improved,
  to do a smarter mapping from a DOS/Windows path to the Seed7 standard
  path representation.
- In osfiles.s7i the functions makeParentDirs() and convDosPath() have
  been improved. Now convDosPath() and stri_to_standard_path() use the
  same algorithm to map from a DOS/Windows path to the Seed7 standard
  path representation.
- The function strChChRepl() has been added to str_rtl.c.
- The program chkccomp.c has been improved to define the macros
  REMOVE_REATTEMPTS, SETENV_ALLOWS_KEY_WITH_EQUALS_SIGN and
  GETENV_ALLOWS_KEY_WITH_EQUALS_SIGN.
- The functions determineDb2Defines() and determineSqlServerDefines()
  have been added to chkccomp.c.
- The names of database DLLs (shared libraries) has been moved from
  the makefiles to chkccomp.c.
- The database driver sql_odbc.c has been refactored to be based on
  sql_cli.c. Most of the contents of sql_odbc.c has been moved to
  sql_cli.c and sql_odbc.c now includes sql_cli.c.
- The new database drivers sql_db2.c (for DB2) and sql_srv.c (for SQL
  Server) have been added. Like sql_odbc.c this drivers also include
  sql_cli.c.
- In cmd_rtl.c the function cmdChdir() has been improved to use an
  extended length path only, if it is absolutely necessary. In Windows
  an extended length path starts with \\?\ and can have a length
  greater equal 260. Many subprocesses cannot handle a current working
  directory with an extended length path.
- The makefiles mk_msvc.mak and mk_clangw.mak have been improved to
  write INI files with all environment variables. The INI files are
  seed7/bin/cl_env.ini and seed7/bin/clangenv.ini. This INI files
  contain the environment variables necessary to use the C compiler.
- The program setpaths.c has been improved to optionally write a
  definition of the macro CC_ENVIRONMENT_INI to version.h. The macro
  CC_ENVIRONMENT_INI defines the path of seed7/bin/cl_env.ini or
  seed7/bin/clangenv.ini.
- Support for the configuration values CC_ENVIRONMENT_INI and
  DATABASE_LIB has been added to cc_conf.s7i and cmd_rtl.c (in
  cmdConfigValue()).
- The function unsetenv7() has been added to cmd_unx.c.
- In gkb_x11.c and gkb_x11.c the functions gkbGetc() and
  gkbKeyPressed() have been improved to support KEY_MOUSE_FWD and
  KEY_MOUSE_BACK. Additionally the macro TRACE_EVENTS, to optionally
  trace events has been introduced.
- The makefiles have been improved to create the new library s7_db.a
  (s7_db.lib), which contains all database drivers.
- The files sql_cli.c (former sql_odbc.c) and sql_fire.c have been
  improved to reduce the number of C compiler warnings.
- In sql_cli.c (former sql_odbc.c) the function setDbErrorMsg() has
  been improved to work for database error messages with Unicode
  characters. The function wstri_to_cstri8() has been added to do the
  conversion.
- The file db_odbc.h has been improved to define wide character
  functions instead of ASCII functions. This was needed by sql_srv.c
  because it links dynamically to sqlsrv32.dll, which only defines
  wide character functions.

20191020:
- The support for Emscripten has been improved to allow the compilation
  of Seed7 programs.
- Improvements have been done in sql_odbc.c to support the connection
  with a DB2 database.
- Testcases for pos() and rpos() have been added to chkstr.sd7.
- The compiler has been improved to optimize the functions pos() and
  rpos() (actions STR_POS, STR_RPOS, STR_CHPOS, STR_RCHPOS).
- The program setwpath.c has been improved to work correctly in more
  situations (E.g.: If no PATH variable exists, if the path to be added
  is a substring of an existing path, if the first path in the PATH
  variable is to be removed, if there is only on path in the PATH
  variable and this path is to be removed).
- In fil.unx.c the function setupFiles() has been improved to mount the
  file systems for Emscripten and node.js with a better strategy.
- In sql_odbc.c the function sqlStmtColumnName() has been improved to
  work with one call of SQLColAttributeW(), if the length of the column
  name is below a limit. Additionally a parameter of NULL as
  destination for the name has be replaced by a valid address. The
  usage of NULL triggered an error with DB2.
- The configuration value LINKED_PROGRAM_EXTENSION has been added to
  cc_conf.s7i. The linker produces a file with the extension defined by
  LINKED_PROGRAM_EXTENSION. Usually LINKED_PROGRAM_EXTENSION is
  identical to EXECUTABLE_FILE_EXTENSION. Except for Emscripten where,
  the value is ".js".
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  define LINKED_PROGRAM_EXTENSION.
- The compiler (s7c.s7i), the function getProgramName() in arr_rtl.c,
  the function cmdConfigValue() in cmd_rtl.c and the program chkccomp.c
  have been improved to use LINKED_PROGRAM_EXTENSION.
- In chkccomp.c the function determineEnvironDefines() has been
  improved to determine, if getenv() works case sensitive. A definition
  of GETENV_IS_CASE_SENSITIVE, with a value of 0 or 1, is written to
  version.h.
- The function getSearchPathDelimiter() has been added to cmd_rtl.c.
  This function is used if SEARCH_PATH_DELIMITER is 0. In this case
  the search path delimiter must be determined at run-time.
- The function systemForNodeJs() has been added to cmd_rtl.c. This
  function is used for Emscripten and node.js as replacement for the
  C run-time library function system().
- The files sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c
  and sql_post.c have been improved to work correctly, if no database
  include file could be found. Normally this should not happen,
  because Seed7 can provide its own database include files.
- The functions getenv7() and setenv7() have been added to cmd_unx.c.
  This functions are used for Emscripten, because of a limitation in
  the Emscripten implementations of getenv() and setenv().
- Documentation comments have been improved in external_file.s7i,
  file.s7i, leb128.s7i, scanfile.s7i, scanstri.s7i and string.s7i.
- Comments explaining the usage of undefined behavior have been added
  to arrlib.c, bstlib.c, set_rtl.c and strlib.c.

20190919:
- A chapter about the database abstraction API has been added to the
  manual.
- In the manual the chapters about primitive actions and about the
  foreign function interface have been improved.
- An explanation of the Seed7 installer and about the download of Seed7
  have been added to the FAQ.
- The new library ico.s7i has been added. This library supports the ICO
  image file format.
- The library browser.s7i has been improved to be more robust regarding
  network events.
- The database drivers have been improved to raise a DATABASE_ERROR,
  if the database library could not be found. The error message of the
  DATABASE_ERROR contains the name of the missing DLL respectively
  shared object library.
- Documentation comments have been improved in 85 library/include files
  (*.s7i). Wrong usages of the word "when" have been replaced by "if".
- Documentation comments have been improved in 96 C source files.
  Wrong usages of the word "when" have been replaced by "if".
- Texts in 9 Seed7 programs (*.sd7) and in a lot of documentation files
  have been improved. Wrong usages of the word "when" have been
  replaced by "if".

20190819:
- A definition of SQL_DRIVER_NOPROMPT has been added to db_odbc.h.
  Many thanks go to Brett Senior for pointing out a fatal compilation
  error in sql_odbc.c, when compiling Seed7 version 2019-08-18 under
  Debian Linux.
- The example program chkdb.sd7 has been improved to write better
  error messages.
- In reflib.c the function ref_select() has been improved to work
  correctly, if a derived struct overrides an element of the parent
  struct.

20190818:
- Interpreter and compiler have been improved to work correctly, if a
  derived struct overrides an element of the parent struct. Many thanks
  go to Zachary Menzies, for reporting this error and for providing a
  test program.
- In the FAQ the explanation, why Seed7 uses UTF-32, has been improved.
  An explanation of the database abstraction layer, which provides an
  database independent API, has also been added to the FAQ.
- In the manual the chapter about the deprecated function
  removeAnyFile() has been replaced by a chapter about the function
  removeTree().
- The program db7.sd7 (Database Inspector) has been improved to quote a
  table name from the catalog when doing a select.
- The program sql7.sd7 has been improved to allow the execution of SQL
  statements from a file. The function getSqlStatement has been added,
  which reads a semicolon terminated SQL statement from a file.
- The library tar.s7i has been improved to accept extended headers with
  meta data (PAX format) also when a tar file is opened as file system
  with openTar(). The function readMinimumOfHead has been improved to
  do this.
- A code page for JIS X 0201 encoding has been added to charsets.s7i.
- The program err.sd7 has been improved to contain test cases, where
  UTF-16 surrogate characters and non Unicode characters are written as
  Seed7 string escape sequences.
- In sql_oci.c the function sqlOpenOci() has been improved to allow
  opening a database with host name, port and database name. This way a
  database can be opened without an entry in tnsnames.ora. The type
  connectDataRecord and the function setupConnectData() have been added
  to sql_oci.c.
- The functions sqlOpenMy (in sql_my.c) and sqlOpenPost (in sql_post.c)
  have been improved to allow opening a database with host name, port
  and database name. Now host, port and dbName are parameters. Before
  the functions split the parameter dbName into host and database name.
  Specifying a port was not possible.
- In sql_odbc.c the function sqlOpenOdbc() has been improved to allow
  opening a database with ODBC driver name, server name and database
  name. This way a database can be opened without specifying a data
  source in the ODBC Data Source Administrator (in the Control Panel).
  The type connectDataRecord and the functions getRegularName(),
  wstriSearchCh(), wstriSearch(), connectToServer(), connectToDriver()
  and driverConnect() have been added to sql_odbc.c. A definition of
  SQL_NEED_DATA has been added to db_odbc.h.
- In sql_rtl.c the function sqlErrMessage() has been improved to allow
  database error messages encoded in UTF-8.
- The function sqlOpen() has been removed from sql_rtl.c.
- The function width() has been added to string.s7i and seed7_05.s7i.
  This function computes the sum of the character widths in a string.
  A character width can be 0 (for control characters), 1 (for normal
  printable characters) and 2 (for fullwidth characters, e.g. KANJI).
- The library console.s7i has been improved to use the function
  width(), to work correctly with fullwidth characters (where the width
  of a character is 2).
- Documentation comments have been improved in sql_base.s7i,
  bytedata.s7i, unicode.s7i, integer.s7i and str_rtl.c.
- Interpreter and compiler have been improved to support the new
  actions SQL_OPEN_FIRE, SQL_OPEN_LITE, SQL_OPEN_MY, SQL_OPEN_OCI,
  SQL_OPEN_ODBC and SQL_OPEN_POST. The support for the action SQL_OPEN
  has been removed.
- The program chkccomp.c and the makefiles mk_mingw.mak, mk_mingc.mak,
  mk_msys.mak and mk_nmake.mak have been changed to avoid the warning
  "unknown conversion type character 'l' in format", when compiling
  with the MinGW C compiler. The macro FORMAT_LL_TRIGGERS_WARNINGS is
  used to avoid the usage of the format length modifier ll.
- In error.c the function print_stri has been improved to write UTF-16
  surrogate characters or non Unicode characters as Seed7 string escape
  sequences.
- The unused functions con_beep() and con_setfont() have been removed
  from con_con.c and con_win.c.
- The new macro ESC_SEQUENCE_MAX_LEN has been defined in striutl.h.
  This macro is used in error.c and str_rtl.c to define the local
  buffer escapeBuffer.
- Changes have been done in stat_win.c and stat_win.c to reduce the
  number of MinGW C compiler warnings.
- Log functions have been added or improved in sctlib.c, sql_fire.c,
  sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c.

20190714:
- The library tls.s7i has been improved to support elliptic curve
  diffie hellman key exchange.
- The new library elliptic.s7i has been added. This library supports
  elliptic curve cryptography (ECC). The library defines:
  - Several named curves,
  - Functions to add, double and multiply curve points.
  - Functions for fast multiplication with jacobian coordinates.
  - Functions to encode and decode curve points.
  - Functions to sign and verify messages with the ECDSA.
- The functions emsaPkcs1V15Encoding, emsaPkcs1V15Decoding,
  rsassaPkcs1V15Encrypt and rsassaPkcs1V15Decrypt have been added to
  the library pkcs1.s7i.
- In x509cert.s7i the function getAlgorithmIdentifier has been improved
  to accept algorithm identifiers without algorithm parameters.
- A version of the function createX509Cert, that creates a certificate
  with keys for elliptic curve cryptography, has been added.
- The new library showtls.s7i had been added. This library defines
  functions to show TLS messages. It can be used to debug tls.s7i.
- The library tar.s7i has been improved to accept extended headers with
  meta data (PAX format). Now path and linkpath meta data is accepted.
- A new version of the function bytes() has been added to bytedata.s7i.
  This function converts a bigInteger to a string of bytes with a given
  length.
- Checks for the multiplication operators * and *:= with factors of
  1 and -1 have been added to chkint.sd7.
- Checks for the operator 'lpad0' have been added to chkint.sd7.
- Checks for NaN have been added to chkflt.sd7.
- In the compiler (in comp/const.s7i) the action FLT_MOD has been added
  to the list of pure function actions.
- The compiler has been improved to optimize the actions FLT_REM (in
  comp/flt_act.s7i) and INT_LPAD0 (in comp/int_act.s7i).
- A corner case of the multiplication operator *:= has been fixed in
  the compiler (process_const_int_mult_assign() in comp/int_act.s7i).
  The bug occurred in the overflow checking code, when an array element
  was multiplied with *:= -1. Multiplications of normal variables and
  parameters with *:= and multiplications with other factors except -1
  were not affected by this bug.
- Documentation comments have been improved in cc_conf.s7i and
  pkcs1.s7i.
- In con_win.c the functions kbdKeyPressed() and kbdGetc() have been
  improved to ignore mouse movement and button press events.
- The program chkccomp.c has been improved to have a more detailed
  check for POW_OF_NAN_OKAY.
- In fltlib.c checks for 0.0 have been improved in flt_div() and
  flt_div_assign().
- In flt_rtl.c preprocessor if statements have been improved to check
  for !FLOAT_NAN_COMPARISON_OKAY in fltLog(), fltLog10() fltLog2() and
  fltPow().

20190610:
- The library float.s7i has been improved to support the float
  operators 'rem' (floating-point remainder) and 'mod' (floating-point
  modulo).
- The program chkflt.sd7 has been improved to check floating-point
  literals and the new operators 'rem' and 'mod'. The tests for the
  operator ** have been improved also.
- Compiler and interpreter have been improved to work correctly, even
  when the C functions fmod(), exp(), ldexp(), frexp() and sqrt() do
  not work 100% correctly.
- The program chkccomp.c has been improved to detect weaknesses of
  numeric functions. These weaknesses happen when handling with NaN,
  Infinity or when other special cases occur.
- A new version of the function timAwait() has been added to tim_unx.c.
  This function is used when AWAIT_WITH_NANOSLEEP is defined.
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  define AWAIT_WITH_NANOSLEEP instead of AWAIT_WITH_SELECT.
- Interpreter and compiler have been improved to support the actions
  FLT_MOD and FLT_REM.
- In the compiler (in comp/flt_act.s7i) a corner case of the action
  FLT_IPOW (when CHECK_FLOAT_DIV_BY_ZERO is TRUE and the exponent is
  negative and the base is zero (0.0 or -0.0)) has been fixed.
- The configuration values FLOAT_COMPARISON_OKAY, FMOD_FUNCTION_OKAY,
  EXP_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY and FREXP_FUNCTION_OKAY have
  been added to cc_conf.s7i. The configuration values
  NAN_COMPARISON_OKAY and FREXP_INFINITY_NAN_OKAY have been removed.
- The functions fltDecompose(), fltExp(), fltLdexp(), fltMod() and
  fltRem() have been added to flt_rtl.c. These functions are used, when
  the corresponding C functions frexp(), exp(), ldexp() and fmod() do
  not work 100% correctly.
- In flt_rtl.c the functions fltEq(), fltGe(), fltGt(), fltLe() and
  fltLt() have been improved. These improvements help, when the
  comparison of float or double values does not work 100% correctly.
- In flt_rtl.c the functions fltPow(), getMantissaAndExponent(),
  setMantissaAndExponent() and fltSqrt() have been improved. These
  improvements help, when the underlying C functions pow(), frexp(),
  ldexp() and sqrt() do not work 100% correctly.
- The program chkccomp.c has been improved to define the macros
  FLOAT_NAN_COMPARISON_OKAY, FLOAT_ZERO_COMPARISON_OKAY,
  SQRT_OF_NAN_OKAY, SQRT_OF_NEGATIVE_OKAY, EXP_OF_NAN_OKAY,
  LDEXP_OF_NAN_OKAY, FREXP_SUBNORMAL_OKAY, FMOD_DIVIDEND_NAN_OKAY,
  FMOD_DIVISOR_NAN_OKAY, FMOD_DIVIDEND_INFINITY_OKAY,
  FMOD_DIVISOR_INFINITY_OKAY and FMOD_DIVISOR_ZERO_OKAY.
- In cmd_rtl.c the function cmdConfigValue has been improved to support
  the config values FLOAT_COMPARISON_OKAY, EXP_FUNCTION_OKAY,
  FMOD_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY and FREXP_FUNCTION_OKAY.
- Definitions of the macros FLOAT_COMPARISON_OKAY, SQRT_FUNCTION_OKAY,
  EXP_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY, FREXP_FUNCTION_OKAY and
  FMOD_FUNCTION_OKAY have been added to common.h
- Documentation comments have been improved in intlib.c, int_rtl.c,
  match.c, str_rtl.c, keybd.s7i and vectorfont.s7i.
- In comp/int_act.s7i the variable quotient_name has been renamed to
  remainder_name.

20190523:
- In match.c the function substitute_params() has been fixed to copy
  parameters with expressions instead of calling do_create(). For
  expressions do_create() just creates a reference to the expression
  and this leads later to a double free of the expression. Many thanks
  go to Anton Lobach, for reporting this error and for providing a test
  program.
- The library blowfish.s7i, with Blowfish cipher support, has been
  added.
- The functions column() and line() have been added to the library
  console.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for the keyword ENDIF has been added.
- The compiler (s7c.sd7) has been improved (in set_act.s7i) to optimize
  the expression card(bitset(number)).
- The functions toBase and fromBaseToBigInt have been added to
  encoding.s7i. This functions encode and decode bigInteger numbers
  with a positional numeric system.
- Conversion functions have been added to bitsetof.s7i and bitset.s7i.
- Checks for the function card() have been added to chkset.sd7.
- Interpreter and compiler have been improved to support the actions
  CON_COLUMN, CON_LINE, SET_CONV1, SET_CONV3, SET_SCONV1 and
  SET_SCONV3. The support for the actions SET_CONV and SET_SCONV has
  been removed.
- The libraries bitsetof.s7i and bitset.s7i have been adjusted, to use
  the new actions.
- In con_inf.c the function conWrite() has been improved to change the
  cursor position, when the characters '\n', '\r' and '\b' are written.
- In con_win.c the function conCursor() has been improved, to hide the
  cursor, when it is called with FALSE. The function conOpen() has been
  changed, to set the cursor position to (1, 1) and to hide the cursor.
- The functions conColumn() and conLine() have been added to con_rtl.c,
  con_inf.c, con_win.c, con_wat.c and con_emc.c.
- In set_rtl.c the functions setIConv() and setSConv() have been
  improved. Now setIConv() raises RANGE_ERROR for negative numbers and
  setSConv() raises RANGE_ERROR, when a negative integer would be
  returned.
- Documentation has been improved in console.s7i, string.s7i,
  con_inf.c, con_win.c
- The debug trace mechanism in analyze.c and dcllib.c has been
  improved.
- A call of dlerror() has been added in dll_unx.c.
- In traceutl.c the function prot_list_limited() has been introduced.

20190506:
- The utility program bigfiles.sd7 has been added. Bigfiles is an
  utility program to search for big files. This is useful, when the
  disk is almost full and files must be removed to get more space.
- The utility program sydir7.sd7 has been improved. Now it supports the
  option -n, which assures that no changes are done.
- The program db7.sd7 (Database Inspector) has been improved to write
  an error message, when reading the catalog of database tables fails.
- The program chkbitdata.sd7 has been added. This program checks
  functions from the bitdata.s7i library.
- In the FAQ the explanation, how Seed7 is compiled, has been improved.
- The description of several conversion functions in the manual has
  been improved.
- The function ripemd160 has been added to msgdigest.s7i. This function
  computes a message digest with the RIPEMD-160 algorithm.
- The functions toBase58, fromBase58, toBase and fromBase have been
  added to encoding.s7i. This functions support Base58 encoding and
  similar other encodings with a positional numeric system.
- The functions putBitLsb, putBitsLsb, getBitMsb, getBitsMsb, putBitMsb
  and putBitsMsb have been added to bitdata.s7i. This functions read
  and write bits from and to a file.
- The new library leb128.s7i has been added. This library supports the
  conversion of integers to and from LEB128 encoding. LEB128 is a
  variable-length encoding for integers. It is used e.g. by the DWARF
  debug file format and by WebAssembly.
- Tests for the functions leb128ToInt(), uLeb128ToInt(), leb128() and
  uLeb128() have been added to chkint.sd7.
- The library make.s7i has been improved to avoid a makefile rule
  recursion.
- The function hex2Bytes has been added to bytedata.s7i. This function
  converts a string with hexadecimal digits to a string of bytes.
- The function reverse has been added to string.s7i and seed7_05.s7i.
- The function tableNamesCommand has been added to sql_base.s7i.
- Conversion functions have been added to char.s7i.
- In big_rtl.c the function uBigMult has been changed to be faster,
  when the size of factor2 is 1.
- In con_inf.c code to copy the environment for Emscripten and node.js
  has been added. This code is deactivated, because of a limitation
  in the Emscripten implementations of getenv() and setenv().
- The makefiles have been improved to copy the file version.h to a
  name that corresponds to the makefile. E.g.: The makefile
  mk_linux.mak copies version.h to vers_linux.h. This helps comparing
  different version.h files.
- Documentation has been added to chkccomp.c and read_me.txt.
- The prototype of the function refCatParse has been changed in
  ref_data.c, ref_data.h and ref_act.s7i. The compiler (s7c.sd7) has
  been changed to add a cast in the function init_set_constants().
  In sql_odbc.c casts have been added. This changes avoid C++
  compilation errors.
- Calls of logFunction and logError have been added in con_inf.c,
  dll_unx.c and dll_win.c.

20190407:
- The program db7.sd7 (Database Inspector) has been improved to use a
  scrollable list of tables instead of radio buttons for the selection
  of a table.
- The example program findchar.sd7 has been added. Findchar is an
  utility program to search for specific characters in files.
- The new library iobuffer.s7i has been added. This library supports
  buffering of files.
- The new library mixarith.s7i has been added. This library supports
  mixing of arithmetic operations between numeric types.
- The file type fileInTar has been added to the library tar.s7i. This
  file type allows that a specific file from a tar archive can be
  opened. The functions open, getc, gets, eof, hasNext, length, seek,
  tell, and openFileInTar have been added to support the file type
  fileInTar.
- The functions skipClassicComment and getSimpleStringLiteral have been
  added to the libraries scanfile.s7i and scanstri.s7i.
- The makefile mk_emccl.mak has been added. This makefile supports
  compiling with the emcc C compiler from Emscripten under Linux. The
  support of Emscripten is experimental (see also src/read_me.txt).
- The deprecated functions float2Bits and bits2Float have been removed
  from bin32.s7i and bin64.s7i. The functions bin32(), bin64() and
  float() can be used instead, to convert between float and bits in
  IEEE 754 representation.
- In the programs chkbig.sd7, chkovf.sd7, chkset.sd7 and chkstr.sd7
  large functions have been split into smaller functions. This avoids
  Stack errors with Emscripten.
- Tests for allowed field names and CLOB fields have been added to
  chkdb.sd7. The functions create, testFieldNames and testClobField
  have been added to chkdb.sd7.
- The primitive actions BIG_PARSE, BST_PARSE, FLT_PARSE and INT_PARSE
  have been renamed to BIG_PARSE1, BST_PARSE1, FLT_PARSE1 and
  INT_PARSE1 respectively. This actions parse the first argument
  instead of the third argument. The libraries bigint.s7i, bstring.s7i,
  float.s7i and integer.s7i have been improved to use the new actions.
- In several libraries the 'parse' operator has been changed to call
  a function with the name of the type.
- In fil.unx.c the function setupFiles has been improved to correctly
  mount the file system root for emscripten and node.js.
- In sql_fire.c, sql_my.c the support for BLOB and CLOB fields has been
  improved.
- In sql_oci.c, sql_odbc.c and sql_post.c the function
  processStatementStri() has been improved to accept strings enclosed
  in single quotes (') and double quotes (").
- The files db_fire.h and sql_fire.c have been changed to define the
  database client functions with the calling convention __stdcall.
- The files db_post.h, db_lite.h, sql_post and sql_lite.c have been
  changed to define the database client functions with the calling
  convention __cdecl.
- The database driver sql_fire.c has been improved:
  - The function getClob() has been added. This function is used by
    sqlColumnStri() to get a CLOB.
  - The function sqlBindStri() has been improved to work for CLOBs
    and to raise RANGE_ERROR for BLOBs.
  - The function sqlColumnStri() has been improved to work for BLOBs
    and CLOBs.
  - The function sqlColumnBStri() has been improved to work for BLOBs
    and to raise RANGE_ERROR for CLOBs.
  - The function sqlStmtColumnName() has been improved to assume that
    the name of a column is encoded with UTF-8.
- The database driver sql_my.c has been improved:
  - The function processStatementStri() has been improved. In strings
    delimited with single quotes (') backslashes (\) are optionally
    replaced with double backslashes (\\). Strings delimited with
    double quotes (") are converted into strings, that are delimited
    with a backtick (`).
  - The function setupResultColumn() has been improved to distinguish a
    BLOB from a CLOB.
  - The function sqlColumnStri() has been improved to work for BLOBs
    and CLOBs.
  - The function sqlColumnBStri() has been improved to work for BLOBs
    and to raise RANGE_ERROR for CLOBs.
  - The function determineIfBackslashEscapes has been introduced. This
    function determines, if a backslash is used as escape character in
    string literals. In this case processStatementStri() will double
    escaping backslashes in string literals.
- The database driver sql_odbc.c has been improved:
  - The management of buffer memory in bind functions has been improved
    for the data types SQL_DECIMAL, SQL_NUMERIC, SQL_CHAR, SQL_VARCHAR,
    SQL_LONGVARCHAR, SQL_WCHAR, SQL_WVARCHAR, SQL_WLONGVARCHAR,
    SQL_BINARY, SQL_VARBINARY and SQL_LONGVARBINARY.
- The database driver sql_post.c has been improved:
  - The function setupDll has been improved to open the dll
    libeay32.dll, when necessary.
  - In the function sqlBindStri() the binding of a field with the type
    BYTEAOID (used for BLOB data) has been improved, to work correctly,
    when the string contains a zero byte ('\0;').
  - The function sqlColumnBigRat() has been improved to process fields
    with the type FLOAT8OID as double instead of float.
- The program chkccomp.c has been improved. Now the C compiler used to
  compile chkccomp.c can be different from the C compiler checked by
  chkccomp.c. E.g.: For Emscripten chkccomp.c is compiled with gcc,
  but the checked C compiler is emcc.
- In chkccomp.c the function determineFseekFunctions has been improved
  to check fseek() and ftell() without access to the local files.
- In chkccomp.c the functions to configure access to PostgreSql,
  Oracle and Firebird databases has been improved.
- In chkccomp.c code to determine NULL_DEVICE, HAS_CDECL, HAS_STDCALL,
  INTPTR_T_DEFINED, PRINTF_ROUNDING, LINE_DIRECTIVE_ACCEPTS_UTF8,
  HAS_SETJMP and HAS_SIGSETJMP has been added or improved.
- The file sigutl.c has been improved to work correctly, when neither
  signal() nor sigaction() are present.
- Log functions have been added or improved in con_emc.c, con_inf.c,
  sql_my.c, sql_post.c and timlib.c.
- Experimental code has been added to con_emc.c.

20190303:
- The makefile mk_tcc_l.mak has been added. This makefile supports
  compiling with the tcc C compiler under Linux.
- The makefile mk_tcc_w.mak has been added. This makefile is
  experimental and supports compiling with the tcc C compiler under
  Windows.
- The example program brainf7.sd7 has been added. Brainf7 is a
  Brainfuck interpreter.
- The example program hilbert.sd7 has been added. Hilbert displays a
  Hilbert curve.
- The example program queen.sd7 has been added. Queen solves the n
  queen problem.
- The example program spigotpi.sd7 has been added. Spigotpi writes
  digits of PI with a spigot algorithm.
- The new library csv.s7i has been added. This library supports
  converting to and from comma-separated values (CSV).
- Several improvements in the Seed7 compiler (s7c) have been done:
  - In flt_act.s7i the function to process FLT_ISNAN has been improved
    to make sure, that the argument of the isnan() macro never contains
    preprocessor directives (e.g. #line directives). Some C compilers
    do not allow preprocessor directives in the argument list of a
    macro. Many thanks go to Alexander Vlasov for reporting this
    problem and for his help to find a solution.
  - In comp/str_act.s7i the function optimize_str_cat has been improved
    to assign the constant parts of strConcatN() outside of the actual
    expression. This might open possibilities to optimize the
    expression.
  - The function process_forward_declaration in the compiler (s7c) has
    been improved to avoid, that a prototype of a forward declared
    function, is written twice.
  - The function process_dynamic_param_implements has been improved to
    generate a switch-statement instead of an if-then-else chain.
    Additionally double entries are avoided now.
  - The function process_const_func_call has been improved to assign
    c_params.temp_assigns to c_expr.temp_assigns instead of
    c_expr.temp_decls.
  - The function processFuncValue has been improved to define the type
    and the function of the actual name parameter only once (with
    defineActualFuncParam()). A redefinition could happen when
    functions, that call functions with name parameters, are inlined.
  - The handling of the option -te (trace exceptions) has been
    improved.
  - The function process_const_func_declaration() has been improved to
    request, that for functions using the result mechanism the result
    is returned, when possible, as c_expr.expr_result. This way
    process_return_value() does not need to copy this string values.
    E.g. When the result of intStrToBuffer(), chrCLitToBuffer(),
    chrStrMacro(), strHeadSlice(), chrStrMacro() or strTailSlice() is
    used as the result value of a user defined function.
  - The function defineFunctype has been added and the function
    getAnyParamToTempAssigns has been improved to provide addresses
    of plain INTOBJECT, FLOATOBJECT, CHAROBJECT, STRIOBJECT and
    BSTRIOBJECT values. In this case the address is taken from a
    temporary variable.
  - In write_file_head() and init_type_constants() the creation of type
    constants has been improved.
- The functions skip() and copyFile() have been added to file.s7i.
- The function makeParentDirs() has been added to osfiles.s7i.
- In cli_cmds.s7i the function doMkdirCmd has been improved to call
  the new function makeParentDirs().
- In tar_cmds.s7i the functions tarXtract and tarCreate have been
  improved to avoid, that the whole file is read into a string. This
  avoids a MEMORY_ERROR, when the file does not fit into a string.
- The function tarXtract has been improved to extract empty regular
  files and to create non-existing parent directories (with
  makeParentDirs())
- In gzip.s7i the functions openGzipFile(), close() and write() have
  been improved, to write the compressed data in blocks with a maximum
  size. This avoids a MEMORY_ERROR, when huge files are compressed.
- In gzip.s7i the function openGunzipFile has been changed to have a
  file as parameter instead of a string. This way it is not necessary
  to read the whole compressed data into a string.
- A variant of the function readGzipHeader has been added to gzip.s7i.
- A variant of the function getAsciiz has been added to bytedata.s7i.
- A variant of the function crc32 has been added to crc32.s7i.
- The program ftp7.sd7 has been improved to support the commands
  !ls -l, !dir, !ls, !pwd, !mkdir and !rmdir.
- The function noCtrlChars has been removed from db7.sd7 and sql7.sd7
  and added to seed7_05.s7i.
- The program chkchr.sd7 has been has been improved to check the
  functions literal() and c_literal().
- Tests for the function str(), when str() assigned to a variable and
  when str() is called via a function, have been added to chkint.sd7.
- Tests for aString[.. pos], aString[pos ..], aString[pos1 .. pos2],
  aString[pos len length], when they are called via a function, have
  been added to chkstr.sd7.
- The example program chkdb.sd7 has been improved to test decimal and
  numeric fields with negative values.
- In x509cert.s7i the constant stdCertificate has been improved to
  have a new validity (until end of 2021).
- The program chkccomp.c has been improved to determine, if
  preprocessor directives are allowed in the argument list of a macro
  invocation (DIRECTIVES_IN_MACRO_ARGUMENTS_OK).
- In fil_rtl.c the functions filBigLng() and filLng() have been
  improved to determine the file length always with os_fseek and
  os_ftell. This guarantees that the correct length is returned, when
  data is written to a file and it has not been flushed.
- The function ftelli64Ext() has been added to fil_win.c. This
  function is used when fseeki64() is available and ftelli64() is
  missing. Either fgetpos() or _telli64() is used to implement
  ftelli64Ext().
- Calls of logFunction have been added in ref_data.c and typ_data.c.
- In sql_my.c the function sqlBindDuration() has been improved.
- In sql_odbc.c the function getNumericAsCStri() has been added.
- In sql_odbc.c the function getNumericFloat() has been improved to
  convert a SQL_NUMERIC_STRUCT to a double via the decimal
  representation.
- In sql_post.c the functions getNumericAsCStri(), getNumericAsStri()
  and getNumericAsFloat have been improved.
- The program chkccomp.c has been improved to define the macros
  'os_isatty' and 'os_fileno', when the functions isatty() and
  fileno() are not available.
- A definition of 'isatty' and 'fileno' has been added to os_decls.h.
- The mechanism to check for stack overflow has been improved. By
  default the mechanism is deactivated.

20190126:
- The program db7.sd7 (Database Inspector 7) has been improved to
  provide a list of tables and a possibility to view table contents
  from this list.
- The program tar7.sd7 and the library tar.s7i have been improved to
  support Unicode file names.
- The function setupParameters() in sql_fire.c, sql_lite.c, sql_my.c,
  sql_oci.c, sql_odbc.c and sql_post.c has been improved to avoid
  calling malloc(0). Depending on the run-time library malloc(0) may
  return NULL, which would wrongly trigger a MEMORY_ERROR. The
  improvement recognizes this situation and avoids calling malloc(0).
  Other places in the database drivers, where malloc(0) could be called
  have been fixed also.
- The database driver sql_fire.c has been improved:
  - Now the cursor of a prepared statement is closed (with
    isc_dsql_free_statement), when a parameter is bound to it.
  - The opening of a database now appends the extensions .fdb and .gdb,
    when trying to open the database.
- The database driver sql_my.c has been improved:
  - The function processEscapesInStatement has been renamed to
    processStatementStri. Now it removes comments from the statement
    string.
  - The local variable 'param' has been introduced in the parameter
    binding functions. This improves readability by avoiding many
    accesses to the param_array.
  - The local variable 'columnData' has been introduced in the column
    accessing functions. This improves readability by avoiding many
    accesses to the result_array.
  - The function sqlColumnFloat has been improved to accept integer
    fields with all sizes.
- The database driver sql_oci.c has been improved:
  - Now there is a check if all parameters of a prepared statement are
    bound. This check takes place when a prepared statement is
    executed.
  - The function processBindVarsInStatement has been renamed to
    processStatementStri. Now it removes comments from the statement
    string and determines the number of bind parameters.
  - The functions setupParameters and allParametersBound have been
    added and the function resizeBindArray has been removed.
  - The function getFloat has been improved to convert a SQLT NUMBER
    to a double via the decimal representation.
  - The bind functions have been improved to check, that a parameter
    with the given index exists.
  - The bind functions have been improved to allow that the same
    parameter can be bound again with a different bind function (e.g.
    as integer instead of a bigInteger).
  - The function sqlBindStri has been improved to preserve trailing
    blanks in a string.
  - The local variable 'param' has been introduced in the parameter
    binding functions. This improves readability by avoiding many
    accesses to the param_array.
  - The local variable 'columnData' has been introduced in the column
    accessing functions. This improves readability by avoiding many
    accesses to the result_array.
- The database driver sql_odbc.c has been improved:
  - The maximum number of concurrent activities is determined. If the
    number of concurrent activities is limited the function
    sqlExecute() fetches all results and stores them in a prefetch
    buffer. This way several prepared statements can be used in
    parallel even when the ODBC driver does not support concurrent
    activities.
  - The structure resultDescrRecord has been introduced. It contains
    the result properties of a prepared statement column. The structure
    resultDataRecord has been reduced to just contain the actual
    data buffer and length of a result field.
  - The functions freeFetchData, freeFetch, freePrefetched and
    processStatementStri have been added. The function
    processStatementStri removes comments from the statement string.
    This avoids problems with some ODBC drivers.
  - The functions bindResultColumn, bindResult, copyNonBlobBuffers,
    moveBlobBuffers, copyFetchData, prefetchOne, prefetchAll and
    doFetch have been added.
  - Now the cursor of a prepared statement is closed (with
    SQLFreeStmt), when a parameter is bound to it.
  - The function sqlColumnFloat has been improved to accept integer
    fields with all sizes.
- The database driver sql_post.c has been improved:
  - The function processBindVarsInStatement has been renamed to
    processStatementStri. Now it removes comments from the statement
    string.
  - The local variable 'param' has been introduced in the parameter
    binding functions. This improves readability by avoiding many
    accesses to the param_array.
  - The function sqlColumnFloat has been improved to accept integer
    fields with all sizes.
- The example program chkdb.sd7 has been improved. Now it tests several
  corner cases with empty databases, empty statements, comments and
  literals. The tests with integer fields retrieve the fields now also
  as floats.
- Interpreter and compiler have been improved to support the new
  actions SQL_DRIVER, STR_FOR_KEY and STR_FOR_VAR_KEY.
- The library forloop.s7i has been improved to use the new actions
  STR_FOR_KEY and STR_FOR_VAR_KEY.
- Checks for string for loops have been added to chkstr.sd7.
- The library sql_base.s7i has been improved to support the new
  functions driver() and getTableNames(). The function getTableNames
  returns a list of user table names.
- The function sqlDriver has been added to sql_rtl.c.

20190107:
- A chapter about the handling of errors in interpreter and run-time
  library has been added to the manual.
- The new database driver sql_fire.c has been added. This driver
  provides database access functions for Firebird/InterBase.
- The database drivers sql_lite.c, sql_my.c, sql_odbc.c and sql_post.c
  have been improved to check that all parameters of a prepared
  statement are bound. This check takes place when a prepared statement
  is executed.
- The bind functions in sql_lite.c and sql_my.c have been improved to
  check, that a parameter with the given index exists.
- The bind functions of sql_my.c and sql_odbc.c have been improved to
  allow that the same parameter can be bound again with a different
  bind function (e.g. as integer instead of a bigInteger).
- The database driver sql_lite.c has been improved:
  - The function sqlBindBigRat has been improved to convert a
    bigRational to a double via the decimal representation.
  - The functions sqlColumnBigInt and sqlColumnInt have been improved
    to accept blob values with a decimal content that ends with ".0".
  - The function sqlColumnFloat has been improved to accept integer
    values.
  - The function sqlExecute has been improved to reset a prepared
    statement, when necessary.
- The database driver sql_my.c has been improved:
  - Medium and large blobs are supported now.
  - The function sqlColumnStri() has been improved to read BLOB data.
  - The function processEscapesInStatement() has been introduced. This
    function assures that string literals in prepared statements do not
    allow backslash escape sequences (e.g. \n or \t). This way a
    backslash in a SQL statement has no special meaning (like it is
    common practice in all other SQL databases).
  - The function sqlExecute() has been improved to call
    mysql_stmt_store_result(). This way the complete result set is
    buffered on the client. Doing so avoids the "Commands out of sync"
    error (e.g. which is triggered (without mysql_stmt_store_result()),
    when a new statement is prepared before all data of an old
    statement is fetched).
  - The function resizeBindArray() has been removed.
- The database driver sql_odbc.c has been improved:
  - The function SQLGetTypeInfo is used to determine if the driver
    supports the type SQL_WCHAR.
  - It is recognized when the function SQLDescribeParam() is missing
    and reasonable default values are used instead.
  - The function SQLFreeStmt() is used now without the precondition
    fetchOkay or fetchFinished.
  - The function setupParameterColumn has been introduced. This
    function allocates memory for parameter buffers.
  - One call of SQLDescribeCol() is used to determine the properties of
    result columns instead of many calls of SQLColAttribute().
  - Blob result data is now recognized by data type (SQL_LONGVARCHAR,
    SQL_WLONGVARCHAR or SQL_LONGVARBINARY) instead of data length.
  - The bind functions have been improved to use a switch depending
    on the data type.
  - Calls of SQLBindParameter() have been changed to use parameters
    determined with SQLDescribeParam().
  - At several places switch statements depending on the c_type are
    used.
  - The function sqlColumnDuration has been improved to accept a
    duration in a VARCHAR field.
  - Experimental code to search for an ODBC driver has been added (but
    it is deactivated for now).
- The database driver sql_post.c has been improved:
  - The function setupParameterColumn() has been introduced. This
    function allocates memory for parameter buffers. The buffers are
    part of the bindDataRecord.
  - The conversion of the internal NUMERIC representation to integer,
    float, bigInteger and bigRational values has been improved. Now
    sqlColumnInt() and sqlColumnFloat() can also read NUMERIC data.
  - The functions getNumericAsCStri(), getNumericAsStri(),
    getNumericAsInt(), getNumericAsBigInt(), getNumericAsBigRat()
    and getNumericAsFloat() have been added.
  - The function sqlColumnStri() has been improved to read BLOB data.
  - The memory management has been improved to recognize out of memory
    situations reliable.
  - The handling of exceptions has been improved.
- The function literal() has been added to bigint.s7i, bigrat.s7i,
  boolean.s7i, bstring.s7i, duration.s7i and time.s7i.
- The function integer (it converts a bigInteger to an integer) has
  been added to bigint.s7i.
- The function string (it converts a bstring to a string) has
  been added to bstring.s7i.
- The example program chkdb.sd7 has been improved to test the
  functionality of a database with much more detail. Chkdb.sd7 now
  supports parameters to specify the database to be checked.
- The programs sql7.sd7 and db7.sd7 has been improved to support
  Firebird/Interbase databases.
- The tests of shift operators have been improved in chkbig.sd7.
- The program chkccomp.c has been improved to determine the settings
  for directory access and for the database driver sql_fire.c.
- An #if instruction has been added to dir_win.c, soc_none.c and
  soc_rtl.c, such that the object file can always be linked.
- The function stri_to_cstri8_buf() has been changed to work without
  err_info parameter.
- Experimental code, to avoid the gmp error "overflow in mpz type" for
  shift operations, has been added to big_gmp.c.
- In big_rtl.c, big_gmp.c and big_drv.h the functions bigToInt16(),
  bigToInt32() and bigToInt64() have been changed to have the
  additional parameter err_info.
- The function setupBig() has been added to big_rtl.c and big_gmp.c.
  Additionally interpreter and compiler have been improved to call
  setupBig().
- Documentation comments have been improved in integer.s7i,
  sql_base.s7i, big_gmp.c, big_rtl.c, sql_rtl.c, intlib.c, int_rtl.c
  and striutl.c
- The file soc_dos.c has been renamed to soc_none.c.

20181125:
- In sql_odbc.c the handling of blobs has been improved. Selects with
  normal and blob fields work now independent from the order of fields.
  The functions resizeBindArray() and getClob() have been removed. The
  functions setupParameters(), getBlob(), getData() and fetchBlobs()
  have been added and the function getWCLob() has been improved.
- In sql_odbc.c the handling of time values has been improved to
  support the sql type datetime2 and times with fractions of a second.
  The functions sqlBindTime() and sqlColumnTime() have been improved.
- In sql_odbc.c the binding of bigRational and null values has been
  improved. The functions sqlBindBigRat() and sqlBindNull() have been
  improved.
- In the library duration.s7i the function str() and the operator
  'parse' have been improved to use P[nY][nM][nD][T[nH][nM][n[.n]S]] as
  format for the string representation of a duration.
- In dir_rtl.c the function dirRead() has been improved to use the
  functions conv_from_os_stri() and os_stri_strlen() instead of
  os_stri_to_stri(). This reduces the runtime of dirRead() by 2%
  (measured with gcc and valgrind, when reading 1532 directories).
- In the compiler (in comp/const.s7i) the actions BST_PARSE, FLT_PARSE
  and INT_PARSE have been added to the list of special actions.
- The function duration(), which converts a string to a duration value,
  has been added to duration.s7i.
- The function time(), which converts a string to a time value, has
  been added to time.s7i. Additionally parsing of time literals has
  been improved to support negative years.
- The function bstring(), which converts a string to a bstring value,
  has been added to bstring.s7i.
- The function rand(), which computes a pseudo-random time in a given
  range, has been added to time.s7i.
- Tests for the function float(), which converts a string to a float
  value, have been added to chkflt.sd7.
- The program chkccomp.c has been improved to determine INT64_SIZE
  (the size of __int64), HAS_LLABS, HAS_ABS64, STRINGIFY_WORKS,
  HAS_GMTIME_R and HAS_GMTIME_S.
- Documentation comments have been added or improved in sockbase.s7i,
  fil_rtl.c, fil_unx.c, fil_win.c, soclib.c and soc_rtl.c.
- In heaputl.c the function growStri() has been improved to have a
  smarter behavior in the case when malloc() returns NULL.
- The functions sqlBindDuration and sqlColumnDuration have been
  improved in sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and
  sql_post.c.
- The parameter time_zone has been added to the function sqlBindTime()
  in sqllib.c, sql_rtl.h, sql_rtl.c, sql_drv.h, sql_lite.c, sql_my.c,
  sql_oci.c, sql_odbc.c, sql_post.c and comp/sql_act.s7i.
- A function to bind a duration value to a prepared statement has been
  added to the library sql_base.s7i.
- The example program chkdb.sd7 has been improved to check inserting
  and selecting time and duration values into and from a database.
- In sql_lite.c the function sqlColumnTime() has been improved.
- In sql_post.c the functions sqlBindTime() and sqlColumnTime() have
  been improved.
- The functions stringify() and conv_wstri_buf_to_cstri() have been
  added to striutl.c.
- In tim_rtl.c the functions mkutc() and unchecked_mkutc() have been
  improved to work with negative years.
- The function timUtcFromTimestamp() has been added to tim_rtl.c.

20181014:
- Simple function profiling has been added to the compiler. Profiling
  is enabled, when programs are compiled with the option -p. When
  programs with profiling are executed they write profiling information
  to the file profile_out, when they terminate.
- An explanation of the compiler option -p (simple profiling) has been
  added to the FAQ.
- The function str_dd_mm_yy has been added to the library time.s7i.
- In chkflt.sd7 the tests for the operator ** (with an exponent of NaN)
  have been improved.
- Documentation comments have been improved in integer.s7i, intlib.c,
  int_rtl.c, tim_unx.c and tim_win.c.
- In hsh_rtl.c the function hshIdxEnterDefault has been simplified to
  use fewer parameters. Usages of hshIdxEnterDefault in gkb_win.c,
  gkb_x11.c, pol_sel.c, pol_unx.c, ref_data.c and typ_data.c have been
  adjusted to the reduced number of parameters.
- In int_rtl.c the performance of the function intParse has been
  improved (when two's complement integers are used).
- In pcs_unx.c the function pcsStart has been improved to work
  correctly when stdin, stdout or stderr are not redirected.
- In flt_rtl.c the function fltPow() has been improved to work
  correctly when the base is zero and the exponent is NaN.
- The program chkccomp.c has been improved to check the function pow()
  with more test cases.
- In striutl.c the function heapAllocOsStri() has been refactored to
  return the allocated string instead of using a pointer to a string
  variable. This opens the possibility to optimize usages of the macro
  os_stri_alloc().
- The definition of WITH_SQL has been removed from the makefiles and
  added to the file config.h instead.
- The file config.h has been changed to define the macros WITH_FLOAT,
  WITH_REFERENCE, WITH_DRAW, WITH_STATISTIC, WITH_COMPILATION_INFO and
  WITH_TYPE_CHECK always.
- The function timMicroSec in tim_unx.c and tim_win.c has been changed
  to be useable for the simple profiling.

20180821:
- In fil_dos.c in the function setupFiles the handling of ctrl-c has
  been improved such that ctrl-c is sent immediate (without the need to
  press return afterwards). Additionally redirected stdin, stdout and
  stderr files are switched to binary mode now.
- In the compiler (in comp/const.s7i) the actions BIN_XOR, ENU_ICONV2,
  ENU_ORD2, INT_ICONV1 and INT_ICONV3 have been added to the list of
  special actions.
- The batch files bin/call_gcc.bat and bin/call_ar.bat have been
  improved to set environment variables with the command 'set'. This
  is necessary to execute them successfully under Wine.
- The description of log, log10 and log2 in the manual has been
  improved.
- In flt_rtl.c the functions fltLog, fltLog10 and fltLog2 have been
  added. This functions are based on the original functions log(),
  log10() and log2() and work according to IEEE 754.
- The configuration values LOG_FUNCTION_OKAY, LOG10_FUNCTION_OKAY and
  LOG2_FUNCTION_OKAY have been added to cc_conf.s7i.
- The configuration value HAS_LOG2 has been removed from cc_conf.s7i.
- The compiler (s7c) has been improved to use the functions fltLog,
  fltLog10 and fltLog2.
- In comp/inline.s7i the functions push_inline_func_param,
  pop_inline_func_param, push_inline_proc_param and
  pop_inline_proc_param have been improved to support inline functions
  with 'attr' parameters.
- The example program diff7.sd7 has been improved.
- Documentation comments have been improved in math.s7i and tar.s7i.
- In chkflt.sd7 the tests for the operators 'parse' and 'sci' and for
  the function str() have been improved.
- The program chkccomp.c has been improved to define the macros
  POW_OF_NEGATIVE_OKAY, LOG_OF_NAN_OKAY, LOG_OF_ZERO_OKAY,
  LOG_OF_NEGATIVE_OKAY, LOG10_OF_NAN_OKAY, LOG10_OF_ZERO_OKAY,
  LOG10_OF_NEGATIVE_OKAY, LOG2_OF_NAN_OKAY, LOG2_OF_ZERO_OKAY,
  LOG2_OF_NEGATIVE_OKAY, MEMCMP_RETURNS_SIGNUM and
  WMEMCMP_RETURNS_SIGNUM.
- In chkccomp.c the function determineFseekFunctions has been improved
  to make tests that actually use fseek() and ftell().
- Calls of logFunction have been added in cmd_rtl.c, str_rtl.c,
  strlib.c and striutl.c.
- In bstlib.c the function bst_cmp() has been improved to be based on
  bstCmp().
- The functions strCompare(), str_cmp() and bstCmp() have been
  improved to use different code depending on MEMCMP_RETURNS_SIGNUM
  and WMEMCMP_RETURNS_SIGNUM.
- In s7c.sd7 the function canTakeAddress has been improved to return
  FALSE for a CONSTENUMOBJECT.

20180708:
- The operating system DOS is supported (with DJGPP) again. The tests
  have been done with Dosbox and Dosemu.
- In the compiler (in comp/const.s7i) the actions BIN_AND and BIN_OR
  have been added to the list of special actions. This way the
  functions rotLeft and rotRight (from bin32.s7i and bin64.s7i) are
  implemented as inline functions. This reduces the runtime of sha256
  (from msgdigest.s7i) by 44% (measured with gcc and valgrind, when
  reading data from 200 https connections). The cpu-time of the whole
  test program was reduced by 17%.
- In msgdigest.s7i the functions md4, md5, sha1, sha224 and sha256
  have been improved to use an index for words instead of an index
  for chunks. This simplifies the conversion to 32-bit words.
- In comp/action.s7i the function process_action has been improved to
  use a case-statement instead of multiple if-statements. This reduces
  the runtime of process_action by 39% (measured with gcc and valgrind,
  when the compiler compiles itself). The runtime of the compiler is
  reduced by 2.5%.
- The contents of the libraries enable_input.s7i and enable_output.s7i
  have been moved to the library enable_io.s7i.
- The library comp/expr_util.s7i has been renamed to comp/expr_utl.s7i.
- The program chkccomp.c has been improved to search 64-bit functions
  for fseek() and ftell(). The findings are stored in version.h with
  the macros _FILE_OFFSET_BITS, OS_OFF_T_SIZE, os_off_t, os_fseek and
  os_ftell.
- In chkflt.sd7 the tests for float shift and logarithm of 0.0 have
  been improved.
- The file src/read_me.txt has been updated.
- In chkccomp.c the functions isNullDevice, initializeNullDevice,
  determineStatFunctions, determineOsFunctions and numericProperties
  have been improved.
- The program chkccomp.c has been improved to work for PostgreSQL
  versions 9.6, 10 and 11.
- In cmd_rtl.c the function getOsCwd has been improved to assure that
  PATH_DELIMITER is used as path delimiter.
- In flt_rtl.c the functions fltDigits and fltSci have been improved,
  to work correctly, when printf() with format %f and %e and a huge
  precision crashes. Additionally fltSci() has been improved to work
  correctly, when the number of exponent digits written with format %f
  is not fixed.
- In con_wat.c the functions kbdShut and conWrite have been improved
  and the functions term_descr_equal, tcset_term_descr, kbd_init,
  doWriteConsole and doCPuts have been added.
- The functions handleIntSignal, readCharChkCtrlC and filPipe have been
  added to fil_dos.c.
- The function drwConvPointList has been added to drw_dos.c.
- The definitions of volumeListType, IS_VOLUME_LIST and
  openVolumeList() have been moved from dir_win.h to the new file
  vol_drv.h
- In traceutl.c the function prot_cstri has been improved to optionally
  write the string via conWrite.
- The functions striCharsAsUnquotedCStri, isShortFileName, findDot,
  toShortFileName, copyFileName and mapLongFileNamesToShort have been
  added to striutl.c. The function mapLongFileNamesToShort can be used
  to convert a path with long file names to a path with 8.3 file names.
- The program setwpath.c has been improved to set the search path of
  the current user, when setting the path for all users fails.
- The program sudo.c has been improved to execute the command without
  privileges, when executing the command as administrator fails.
- The functions gets (in tls.s7i), doGetsFromTerminal (in fil_rtl.c),
  ut8Gets (in ut8_rtl.c) and socGets (in soc_rtl.c) have been improved
  to return an empty string immediately, when the requested length is
  zero.
- Calls of logFunction have been added in fil_rtl.c, prclib.c and
  striutl.c.
- Calls of logError have been added in infile.c.
- The files dll_dos.c, pcs_dos.c and vol_drv.h have been added.
- Definitions of _FILE_OFFSET_BITS, os_off_t, os_fseek and os_ftell
  have been removed from the makefiles.
- The makefiles mk_djgpp.mak and mk_djgp2.mak have been improved, such
  that DOS (with DJGPP) is supported again.
- Documentation comments have been improved in sql_base.s7i, cipher.s7i
  and sql_rtl.c.

20180601:
- The library tls.s7i has been improved to support the server_name
  extension and to process handshake messages, that extend over several
  tls message records. Additionally TLS version 1.2 is used now.
- The library x509cert.s7i has been improved to accept a validity with
  times in GeneralizedTime data elements (additionally to times in
  UTCTime data elements).
- The library browser.s7i has been improved to support calling Safari
  under Mac OS X.
- Tests for the functions environment(), getenv() and setenv() have
  been added to chkcmd.sd7.
- A test that checks the sorting of an array of strings has been added
  to chkstr.sd7. This checks the compare() function for strings.
- The compiler s7c has been improved to create better code for the
  option -tf (trace functions). Now the trace functions are added after
  the declarations (such that older C compilers will accept this also).
- In chkflt.sd7 tests for NaN have been grouped together.
- In chkovf.sd7 tests for the binomial coefficient have been split into
  groups.
- The program chkccomp.c has been improved to define the macros
  LIMITED_CSTRI_LITERAL_LEN, LIMITED_ARRAY_LITERAL_LEN,
  DECLARE_OS_ENVIRON, USE_GET_ENVIRONMENT, INITIALIZE_OS_ENVIRON,
  DEFINE_WGETENV, DEFINE_WSETENV, os_environ, os_getenv, os_setenv,
  os_putenv, DELETE_PUTENV_STRING, DEFINE_WSTATI64_EXT,
  DEFINE_STRUCT_STATI64_EXT, DEFINE_FSTATI64_EXT, os_lstat, os_stat,
  os_fstat, os_stat_struct, os_fstat_struct, HAS_SELECT and HAS_MMAP.
- In int_rtl.c the macro DECIMAL_DIGITS has been improved to work with
  unsigned numbers.
- In str_rtl.c the function strCmpGeneric() has been changed back to
  the old behaviour. Now strCmpGeneric() and strCompare() have again
  the same behaviour. It has turned out that sorting an array of
  strings worked wrong, when the program was compiled.
- In pcs_win.c the function prepareCommandLine has been improved and
  the function copyQuotedPart has been added. Now the command line
  created for CreateProcessW() has fewer quoted parameters. Now
  parameters that contain a space or a quotation (") or a control
  character or a character beyond ASCII are quoted. All other parameters
  are not quoted.
- Definitions of USE_MMAP, os_environ, os_fstat, DEFINE_WSTATI64_EXT,
  os_lstat, os_stat, os_stat_orig, os_stat_struct, os_fstat_struct,
  DEFINE_WSETENV, os_setenv, os_putenv and USE_DIRENT have been removed
  from the makefiles.
- In several files usages of USE_MMAP have been replaced by usages of
  HAS_MMAP.
- The file read_me.txt has been updated.
- In chkccomp.c the functions checkForLimitedArrayLiteralLength() and
  determineStatFunctions() have been added and the functions
  determineEnvironDefines() and determineBigIntDefines() have been
  improved. Now the test for the GMP library enforces static linking.
- The macros DEFINE_MATHERR_FUNCTION and DEFINE__MATHERR_FUNCTION have
  been improved to define if matherr() or _matherr() should be defined.
- Log functions have been improved in big_gmp.c, big_rtl.c and
  int_rtl.c.

20180513:
- In the manual descriptions of the binomial coefficient and of several
  conversion functions have been improved.
- The bas7.sd7 (basic interpreter) example program has been improved to
  use case statements with strings.
- The operator &:= has been added to the libraries bitsetof.s7i and
  bitset.s7i.
- The function rand() has been added to the library hashsetof.s7i. This
  function returns a random element from a hash set.
- The compiler (s7c) has been improved to generate code that uses
  memcpy or memmove to copy and create arrays of simple value types
  (e.g. array integer). The destruction of arrays of simple value types
  has also been simplified.
- The compiler has been improved to optimize the action SET_RAND.
- The compiler optimizations for the actions SET_DIFF, SET_UNION and
  SET_UNION_ASSIGN has been improved.
- In the compiler (in comp/const.s7i) the actions BLN_ICONV1,
  BLN_ICONV3, CHR_ICONV3 and SET_RAND have been added to the list of
  special actions. The compiler implements functions, which just call
  one of the special actions as inline functions.
- Interpreter and compiler have been improved to support the actions
  HSH_RAND_KEY and SET_INTERSECT_ASSIGN.
- Tests for the functions card() and rand() for the type set of string
  have been added to chkset.sd7.
- Tests for intersection assignments ( &:= ) have been added to
  chkset.sd7.
- In s7c.sd7 the code to call C compiler and linker has been
  refactored.
- The compiler has been improved (in comp/prc_act.s7i) to use the
  function hshIdxDefault0() instead of hshIdxWithDefault() for case
  statements with hashsets.
- The code generation of the compiler has been improved to trigger the
  signal SIGFPE with a call of triggerSigfpe().
- The compiler has been improved to insert diagnostic line information
  (e.g.: #line 64 "logfile.s7i") into code for the actions ARR_CPY,
  BLN_AND, BLN_OR, ITF_CPY, PRC_IF, PRC_IF_ELSIF, PRC_IF_NOOP
- The compiler has been improved to insert diagnostic line information
  for inlined functions.
- The configuration values in cc_conf.s7i have been improved.
  SWITCH_WORKS_FOR_INT64TYPE, CC_OPT_OPTIMIZE_1, CC_OPT_OPTIMIZE_2 and
  CC_OPT_OPTIMIZE_3 have been added. SYSTEM_DB_LIBS has been renamed
  to ADDITIONAL_SYSTEM_LIBS. HAS_SIGACTION, SIGNAL_RESETS_HANDLER and
  DO_SIGFPE_WITH_DIV_BY_ZERO have been removed.
- The program chkccomp.c has been improved. Now it determines the name
  of the NULL device (/dev/null or NUL:), the system socket library
  (unix sockets or winsocket), the method to read directories, the
  bigInteger implementation used (big_rtl.c or big_gmp.c) and the
  support for switch statements with 64-bit values.
- Documentation comments have been added or improved in bigint.s7i,
  integer.s7i, bitsetof.s7i, bitset.s7i, hashsetof.s7i, cc_conf.s7i,
  fil_rtl.c, dir_drv.h, cmd_rtl.c, set_rtl.c, str_rtl.c and striutl.c.
- In set_rtl.c the function setIntersect() has been improved to create
  a smaller intersection result, if possible.
- In set_rtl.c the function setIntersectAssign has been added.
- In setlib.c the function set_intersect_assign has been added.
- In hsh_rtl.c the functions get_helem_elem, get_hash_elem, hshRand
  and hshIdxDefault0 have been added.
- In hshlib.c the functions get_helem_elem, get_hash_elem and
  hsh_rand_key have been added.
- In gkb_x11.c and gkb_win.c the function find_window() has been
  improved to use hshIdxDefault0() instead of hshIdxWithDefault().
- In big_gmp.c the function bigDivRem has been improved to initialize
  the remainder.
- In str_rtl.c and strlib.c the function strelem_memcmp has been
  renamed to memcmp_strelem.
- In str_rtl.c the function strCmpGeneric has been changed to avoid
  calls of memcmp_strelem(), when the string sizes differ. This
  differs from the behaviour of strCompare, but the difference is not
  important, because strCmpGeneric() is only used for string
  comparisons of hash keys (in compiled programs).
- In striutl.c the function conv_to_cstri has been rewritten to return
  the C string, when the function succeeds, and to work without the
  parameter err_info.
- In striutl.c the function stri_to_bstriw has been rewritten to use
  an err_info parameter.
- In striutl.c the functions with loop unrolling inspired by Duff's
  device have been rewritten.
- In striutl.c the loops in conv_to_cstri, stri_to_cstri and
  conv_to_os_stri have been optimized.
- The macro castIntTypeForSwitch has been introduced to support C
  compilers, that do not support switch statements with 64-bit values.
- Definitions of NULL_DEVICE, USE_GETADDRINFO, USE_WINSOCK and
  BIGINT_LIB_DEFINE have been removed from the makefiles.

20180401:
- The new library logfile.s7i has been added. It defines the interface
  logFile. A logFile works like a normal file unless the log file
  has the value STD_NULL. When a logFile has the value STD_NULL string
  expressions written to the logFile are not evaluated. This reduces
  the overhead, when logging is turned off.
- The bas7.sd7 (basic interpreter) example program has been improved.
  The logging is now done via the new logFile type. This improves the
  performance, when no logging is done. Several DATA statements in one
  line are processed correctly now. Support for IF GOSUB and DISPLAY
  statements and for the function COMMAND$ has been added.
- Tests of nested bigInteger for loops have been added to chkbig.sd7.
- A test with the assignment of a hash variable to itself have been
  added to chkhsh.sd7.
- Tests of the replace function have been added to chkstr.sd7.
- In striutl.c the functions conv_from_os_stri, cstri8_to_stri and
  cstri8_buf_to_stri have been improved. Now they call realloc()
  only, when the size has changed. This improves the performance of
  conv_from_os_stri by 32% (measured with gcc and valgrind, when
  reading a directory).
- In str_rtl.c the function strUtf8ToStri has been improved to call
  realloc() only, when the size has changed.
- In cmd_rtl.c the functions add_stri_to_array and
  complete_stri_array have been renamed to addStriToRtlArray and
  completeRtlStriArray respectively. The renamed functions have also
  been improved to work with a simpler parameter list. Together with
  the improvement of conv_from_os_stri this improves the performance
  of cmdLs by 14% (measured with gcc and valgrind, when reading a
  directory).
- In cmdlib.c the function cmd_ls has been rewritten to be based on
  cmdLs. The functions cmp_mem and read_dir have been removed.
- In cmdlib.c the main loop in the function toArrayType has been
  optimized for performance.
- In str_rtl.c the function add_stri_to_array has been renamed to
  addCopiedStriToRtlArray and the function completeRtlStriArray has
  been introduced. The code of addCopiedStriToRtlArray has also been
  improved to work with a simpler parameter list.
- In strlib.c the function add_stri_to_array has been renamed to
  addCopiedStriToArray and the functions freeStriArray and
  completeStriArray have been introduced. The code of
  addCopiedStriToArray has also been improved to work with a simpler
  parameter list.
- The compiler has been improved to optimize the action HSH_CONTAINS,
  when the hash table is constant and contains one element.
- In the compiler (in comp/const.s7i) the actions BLN_ORD, CHR_ICONV1,
  CHR_ORD and INT_ODD have been added to the list of special actions.
  The compiler implements functions, which just call one of the
  special actions as inline functions. This allows optimizations for
  the boolean and char random number generator.
- The compiler (s7c) has been improved (in comp/destr.s7i) to define
  interface destructors, which take all possible implementation
  types into account. Additionally a switch statement is used instead
  of an if-then-else chain. Double entries are also avoided now.
- The function strChRepl has been added to str_rtl.c.
- The compiler has been improved to use strChRepl instead of strRepl,
  to optimize split operations.
- Unnecessary function parameters have been removed in several
  include files of the compiler.
- In flt_rtl.c the function doubleToCharBuffer has been improved to
  determine the integer value of the exponent without calling
  strtol().
- The function freeRtlStriArray has been added to arr_rtl.c.
- Several #define flags in pol_sel.c have been improved.
- The macro CSTRI_LITERAL_TO_STRI has been defined in striutl.h and
  used in analyze.c, arr_rtl.c, cmd_rtl.c, cmd_unx.c, infile.c,
  pcs_unx.c and pcs_win.c.
- Calls of logError have been added to functions in cmd_rtl.c,
  con_inf.c, prclib.c, soc_rtl.c, tim_dos.c, tim_rtl.c, tim_unx.c and
  tim_win.c.
- Documentation comments have been added or improved in cmdlib.c,
  int_rtl.c and tim_rtl.c.

20180304:
- In fil_rtl.c and ut8_rlt.c the functions filLineRead, filWordRead,
  ut8LineRead and ut8WordRead have been improved to use
  getc_unlocked() instead of getc(). This way the performance of the
  functions has been improved by a factor of 2 (filLineRead has been
  measured with gcc and valgrind).
- In listutl.c the performance of the function copy_list has been
  improved by 15% (measured with gcc and valgrind).
- In getf.s7i the performance of the function readf has been improved
  by a factor of 4 (measured with gcc and valgrind).
- The functions free_helem and free_hash in hshlib.c have been
  improved to stop searching for helems as soon as the last helem
  has been freed. This improves the performance of free_hash by 36%
  (measured with gcc and valgrind).
- Code to avoid an error with the assignment of a hash variable to
  itself (e.g.: aHash := aHash;) has been added to hshlib.c and
  hsh_rtl.c.
- In fil_rtl.c the function read_and_alloc_stri and filGets have been
  improved to have less usages of err_info and num_of_chars_read.
- In soc_rtl.c the function receive_and_alloc_stri has been improved
  to have less usages of err_info and better logError messages.
- In hsh_rtl.c and hshlib.c the function create_hash has been
  improved to use memset to initialize empty hash tables.
- The functions bstCmp, genericCmp, ptrCmp, rflCmp and typCmp have
  been improved to use a result variable named signumValue.
- Interpreter and compiler have been improved to support the actions
  ACT_ICONV1, ACT_ICONV3, INT_ICONV1, INT_ICONV3 and REF_HSHLENGTH.
- The libraries integer.s7i, bin32.s7i, bin64.s7i, category.s7i and
  graph.s7i have been improved to use the new primitive actions.
- The function boolean(), which converts a string to a boolean value,
  has been added to boolean.s7i.
- The function char(), which converts a string to a char value, has
  been added to char.s7i.
- The function float(), which converts a string to a float value, has
  been added to float.s7i.
- The compiler has been improved to support the actions ACT_GEN and
  TYP_VARFUNC.
- The compiler now uses the function process_call_by_name_expr to
  create code for loop conditions, loop bodies and other call by name
  parameters.
- The functions process_match and process_inline_param have been
  added to the compiler.
- The compiler has been improved to implement functions, which just
  call one of the special actions HSH_CONTAINS, HSH_EXCL, HSH_INCL,
  HSH_KEYS, SET_BASELIT, SET_CONV, SET_ELEM, SET_EXCL, SET_INCL,
  SET_NOT_ELEM, as inline functions. This allows optimizations for
  the types set of char and set of string.
- The compiler has been improved to optimize the action HSH_CONTAINS,
  when the hash table is constant.
- The compiler optimizations for the actions SET_ELEM and
  SET_NOT_ELEM have been improved.
- A test, that checks for-loops over hash tables, has been added to
  chkhsh.sd7.
- Set membership tests for char and string have been added to
  chkset.sd7.
- Functions to handle inline parameters have been moved from s7c.sd7
  to the new file comp/inline.s7i.
- The program chkccomp.c has been improved to determine the presence
  of the functions flockfile(), funlockfile() and getc_unlocked().
- The function match_object3 has been added to match.c. This function
  assures that BLOCKOBJECT and ACTOBJECT objects are always preceded
  by a MATCHOBJECT.
- The action RFL_SETVALUE has been ranamed to RFL_SET_VALUE.
- Several C run-time library functions (in *lib.c files) have been
  renamed such that action name and function name correspond to each
  other.

20180107:
- Interpreter and compiler have been improved to allow support
  for case statements with hashsets in the when parts. This allows
  e.g. case statements with string, bigInteger, type and other
  expressions.
- Several discrepancies between s7 and s7c have been fixed. Many
  thanks go to "tipd bmp" who sent a example programs to show the
  discrepancies. Thanks also for finding a bug in the manual.
- The following type conversion functions from integer have been
  introduced: bigInteger(), bigRational(), bitset(), boolean(),
  char(), float(), rational() and complex(). This fits to the
  existing conversion functions bin32() and bin64().
- The files bigrat.s7i, filesys.s7i, int_act.s7i, s7c.sd7, chkdb.sd7,
  dnafight.sd7, printpi1.sd7, printpi2.sd7 and savehd7.sd7 have been
  adjusted to use bigInteger() instead of the conv operator to
  convert an integer to a bigInteger.
- The function bigRational, which converts a string to a bigRational
  number, has been added to bigrat.s7i.
- The function rational, which converts a string to a rational
  number, has been added to rational.s7i.
- In rational.s7i the operator 'parse' has been improved to convert
  a string with a decimal number to a rational number.
- The functions float2Bits and bits2Float in bin32.s7i and bin64.s7i
  are deprecated and will be removed in a future version. The
  functions bin32(), bin64() and float() can be used instead to
  convert between float and bits in IEEE 754 representation.
- The programs bas7.sd7 and chkbin.sd7 have been changed to use the
  functions bin32(), bin64() and float() instead of float2Bits and
  bits2Float.
- Definitions of the operators |:= and &:= have been added to
  hashsetof.s7i.
- The library seed7_05.s7i has been improved to support case
  statements which consist just of an otherwise part.
- The program chkprc.sd7 has been improved to check integer and char
  case statements with otherwise part.
- The program chkprc.sd7 has been improved to check string,
  bigInteger and float case statements with and without otherwise
  part.
- The program chkbig.sd7 has been improved to check the bigInteger()
  conversion function.
- The program chkflt.sd7 has been improved to check the float()
  conversion function.
- Interpreter and compiler have been improved to support the actions
  BIG_ICONV1, BIG_ICONV3, BLN_ICONV1, BLN_ICONV3, CHR_ICONV1,
  CHR_ICONV3, FLT_ICONV1, FLT_ICONV3, SET_ICONV1, SET_ICONV3 and
  REF_ALLOC_VAR.
- The handling of CONSTENUMOBJECT and VARENUMOBJECT objects in
  s7c.sd7 has been improved.
- The functions initCaseLabelsOfWhen, initCaseLabelsOfCase and
  initCaseLabels have been added to s7c.sd7.
- In biglib.c the function big_div_rem has been improved to generate
  quotient and remainder as variable elements.
- The function getConstant has been added to comp/const.s7i.
- The functions getGenericValueOfVariableObject and
  getParameterAsVariable have been added to comp/expr_util.s7i.
- The logError error messages in fil_rtl.c have been improved.
- The function refAllocVar has been added to ref_data.c.
- Documentation comments have been added or improved in bin32.s7i,
  bin64.s7i, sql_base.s7i, propertyfile.s7i, bitset.s7i, browser.s7i,
  bitsetof.s7i, actlib.c, arr_rtl.c, big_gmp.c, big_rtl.c, binlib.c,
  cmdlib.c, drw_rtl.c, flt_rtl.c, set_rtl.c, sql_lite.c, sql_my.c,
  sql_oci.c, sql_odbc.c, sql_post.c, sql_rtl.c

20170915:
- The example program klondike.sd7 has been added. Klondike is a
  solitaire game.
- The example program sydir7.sd7 has been improved to use fewer calls
  of fileTypeSL.
- In flt_rtl.c the function fltCmp has been improved to work
  correctly, when NAN_COMPARISON_OKAY is FALSE.
- Checks in chkbig.sd7 for div, rem, divRem, mdiv and mod have been
  structured into more areas.
- The reference counting of window objects in drwlib.c and drw_rtl.c
  has been improved. When the usage_count has been initialized with
  zero the window will not be freed by reference counting. This is
  used by the empty window.
- In drw_win.c and drw_x11.c the function drwEmpty has been changed
  to create an empty window that is not freed by reference counting.
- The compiler s7c.sd7 has been improved to use drwCreate, when a new
  window value is created.
- In read_me.txt the description of macros defined in version.h has
  been improved.
- In stat_win.c the function wstati64Ext has been improved, to use
  fewer calls of GetFileAttributesExW() and _wstati64().
- In cc_conf.s7i the description of the configuration value
  NAN_COMPARISON_OKAY has been improved.
- In duration.s7i several parameter names have been changed.
- The test for NAN_COMPARISON_OKAY in chkccomp.c has been improved.

20170807:
- Experimental support to compute quotient and remainder of a
  bigInteger with the operator divRem has been added to the library
  bigint.s7i.
- The function str in bigrat.s7i has been improved to use the new
  operator divRem.
- The program ide7.sd7 has been improved to ignore an attempt to kill
  a non-existing process.
- Support for a for-loop that loops over all values of an enumeration
  has been added to forloop.s7i.
- Support for a for-loop which loops a given number of times has been
  added to forloop.s7i.
- Syntax definitions for the divRem operator and the new for-loops
  have been added to syntax.s7i.
- Checks for the divRem operator have been added to chkbig.sd7.
- Interpreter and compiler have been improved to support the action
  BIG_DIV_REM.
- The function bigDivRem has been added to big_gmp.c.
- The function big_div_rem has been added to biglib.c.
- The performance of the function uint32LeastSignificantBit() has
  been improved by 15% (measured with gcc and valgrind when all
  unsigned 32-bit values are computed).
- The performance of the function uint64LeastSignificantBit() has
  been improved by 10% (measured with gcc and valgrind when
  4294967294 random unsigned 64-bit values are computed).
- In set_rtl.c the functions bitsetNonZero() and setIsEmpty() have
  been improved.
- The function memchr_strelem() has been added to striutl.c. This
  function uses loop unrolling inspired by Duff's device. This
  function is used when sizeof(wchar_t) != 4 holds. In case
  sizeof(wchar_t) == 4 holds (wchar_t has the same size as the
  Seed7 characters) the macro memchr_strelem is defined as wmemchr.
- In lib/comp/create.s7i the function process_sct_alloc has been
  improved. Now it can be used as expression.
- In big_rtl.c the functions basicRadix2To36 and binaryRadix2To36
  have been improved to use the parameter 'digits' instead of the
  parameter 'upperCase'.
- The functions bigCmp, chrCmp and fltCmp have been improved.
- The program chkccomp.c has been improved to check if system()
  returns the correct result of the process.
- The program chkccomp.c has been improved to determine if isatty()
  or _isatty() should be used.
- The functions type_value_call_obj and getValue have been added to
  executl.c. The function getValue determines the default value of
  a type.
- The program setpaths.c has been improved to use preprocessor macros
  only when they are defined.
- The program setwpath.c has been improved to include direct.h when
  USE_DIRWIN is defined.

20170702:
- The performance of the function bigStr() in big_rtl.c has been
  improved by a factor of 2.7 (measured with gcc and valgrind when
  str(123456789_**12345) is computed). Now A binary method is used to
  convert large bigInteger numbers to a string.
- The performance of the function bigRadix2To36() in big_rtl.c has
  been improved by a factor of 7.3 (measured with gcc and valgrind
  when 123456789_**12345 radix 7 is computed). Now A binary method is
  used to convert large bigInteger numbers to a string.
- The compiler (s7c.sd7) has been improved to create destructors for
  local DATABASEOBJECTs and SQLSTMTOBJECTs.
- The database driver sql_odbc.c has been improved to support the
  type SQL_BIT.
- The database driver sql_odbc.c has been improved to close the
  the database only after all prepared statements have been freed.
- Support to read BLOBs (Binary large objects) and wide character
  CLOBs (Character large objects) from an ODBC database has been
  added to sql_odbc.c. SQL_DATA_AT_EXEC is used to flag BLOBs and
  CLOBs for the buffer types SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR,
  SQL_WCHAR, SQL_WVARCHAR, SQL_WLONGVARCHAR, SQL_BINARY,
  SQL_VARBINARY and SQL_LONGVARBINARY.
- The function bigInteger(string), which converts a string to a
  bigInteger number, has been added to bigint.s7i.
- Checks that test the conversion of a bigInteger to a string (with
  the function str() and the operators RADIX and radix) have been
  added to chkbig.sd7.
- The example program db7.sd7 has been improved to list column
  headers even when no line was found.
- The functions getConversionDivisor, basicToStri, binaryToStri,
  basicRadix2To36, binaryRadix2To36, uBigDivRem1, bigDivRem1,
  bigDivRemSizeLess and bigDivRem have been added to big_rtl.c.
- The program chkccomp.c has been improved to have better checks for
  utime and fileno.
- Documentation about the macros used have been added to chkccomp.c.
- In src/read_me.txt descriptions of C_COMPILER, C_COMPILER_SCRIPT,
  CC_FLAGS and LINKER have been improved.

20170530:
- The example program db7.sd7 has been added. Db7 is a Database
  inspector with browser interface.
- In array.s7i the function insert has been improved to insert an
  array of elements.
- In browser.s7i the function close has been improved to ignore an
  error when the browser has already closed the socket.
- In browser.s7i the new function display (with the browser as first
  argument) has been introduced. The old function (with the browser
  as second argument) is deprecated and will be removed in a future
  version.
- In cgidialog.s7i the parameters of the function dialogTable have
  been improved. Now the column headers can be specified and a two
  dimensional array of strings can be used to specify the content.
- The compiler has been improved to use the function bigAbsTemp to
  optimize bigInteger expressions.
- Checks that test if the function abs works correctly have been#
  added to chkbig.sd7.
- The picture on_off_pic has been added to pic16.s7i and pic32.s7i.
- Tests for the function abs have been added to chk_all.sd7.
- The program ide7.sd7 has been improved to use the new version of
  the function display.
- The function bigAbsTemp has been added to big_rtl.c and big_gmp.c.
- In big_gmp.c errors in bigFromUInt64 and bigLowerBits64 have been
  fixed.
- The makefiles have been improved to avoid unnecessary includes
  and defines in chkccomp.h.

20170501:
- The example program diff7.sd7 has been added. This program compares
  two files line by line.
- The example program hd.sd7 has been added. This program writes a
  hexdump of a given file.
- The functions sha384 and sha512 have been added to msgdigest.s7i.
- The compiler has been improved to optimize expressions like
  bin64(aBigExpression mod aPowerOfTwo).
- The library vectorfont.s7i has been improved to allow scaling of
  vector fonts.
- The dialog element passwordField has been added to cgidialog.s7i.
  The passwordField dialog element allows entering a password without
  readable echo.
- The function readPassword has been added to editline.s7i.
- In array.s7i the for-until loops for arrays have been improved to
  work correctly, when the until-condition uses the for variable.
- In cli_cmds.s7i the functions getCommandParameter,
  getUnixCommandParameter and getDosCommandParameter has been
  improved to recognize when a closing quote is missing.
- In cli_cmds.s7i in the function processCommand the handling of
  external commands with redirection of stdin has been improved.
- The functions xyArray and scale have been added to graph.s7i.
- In seed7_05.s7i the exception DATABASE_ERROR has been introduced.
- The programs sql7.sd7 and chkdb.sd7 have been improved to use the
  new exception DATABASE_ERROR.
- A parse operator for dbCategory has been added to sql_base.s7i.
- The pictures return_pic and right_arrow_pic have been added to
  pic32.s7i and pic16.s7i.
- The function checkBinBinaryWithBigMod has been added to chkbin.sd7.
  This function checks the optimizations done with expressions like
  bin64(aBigExpression mod aPowerOfTwo).
- In tls.s7i the type securityParameters has been renamed to
  tlsParameters. The functions showMsg and showMsgType have been
  renamed to showTlsMsg respectively showTlsMsgType.
- In tls.s7i the generation of CLIENT_HELLO, SERVER_HELLO,
  CERTIFICATE, SERVER_HELLO_DONE, CLIENT_KEY_EXCHANGE,
  CHANGE_CIPHER_SPEC, FINISHED, ALERT and APPLICATION_DATA messages
  has been improved.
- In int_act.s7i the types addSubElementType and
  addSubElementListType have been renamed to addSubIntElementType
  respectively addSubIntListType.
- In the compiler (in big_act.s7i, function process_const_big_mod)
  the handling of the bigInteger mod operator, when the divisor is a
  power of two, has been improved. Now a temporary result is freed.
- In the compiler (in big_act.s7i, function process_const_big_mult)
  the handling of the bigInteger multiplication with a negated power
  of two has been improved. Now a temporary result is freed.
- The functions generateAddSubParamList and evaluateConstants have
  been added to comp/big_act.s7i.
- The function optimize_bin_binary_of_big_mod has been added to the
  compiler (in bin_act.s7i). This function optimizes the expression
  bin64(aBigNumber mod aPowerOfTwo) to
  bigLowerBits64(aBigNumber) & ord(pred(aPowerOfTwo)).
  This optimization converts to bin64 earlier. This allows the usage
  of cheap bin64 operations instead of bigInteger operations.
- The functions optimizeAddSubElement and optimizeAddSubList have
  been added to comp/bin_act.s7i.
- In big_rtl.c the performance of the functions bigFromUInt32 and
  bigFromUInt64 has been improved.
- The function bigLowerBits64 has been added to big_rtl.c and
  big_gmp.c. This function is used by the compiler to optimize
  expressions like bin64(aBigNumber mod aPowerOfTwo).
- The program chkccomp.c has been improved to check for the presence
  of snprintf() and vsnprintf().
- The functions sql_eq_db, sql_eq_stmt, sql_ne_db and sql_ne_stmt
  have been added to sqllib.c.
- Interpreter and compiler have been improved to support the actions
  DRW_CONVPOINTLIST, SQL_CMP_DB, SQL_CMP_STMT, SQL_EQ_DB,
  SQL_EQ_STMT, SQL_ERR_CODE, SQL_ERR_DB_FUNC, SQL_ERR_LIB_FUNC,
  SQL_ERR_MESSAGE, SQL_NE_DB and SQL_NE_STMT.
- Support for the action DRW_CONVPOINTLIST has been added to
  drwlib.c, drwlib.h, drw_win.c and drw_x11.c.
- A definition of snprintf has been added to fil_win.c.
- The function list_length has been added to listutl.c.
- The new files sql_base.c and sql_base.h have been added. This
  files contain definitions of dbLibError, dbInconsistentMsg and
  dbError. The makefiles have been adjusted to use sql_base.c.
- The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c
  and sql_post.c have been improved to write database errors to the
  struct dbError. The content of dbError can be obtained with the
  actions SQL_ERR_CODE, SQL_ERR_DB_FUNC, SQL_ERR_LIB_FUNC and
  SQL_ERR_MESSAGE.
- The functions sqlErrCode, sqlErrDbFunc, sqlErrLibFunc and
  sqlErrMessage have been added to sql_rtl.c
- The handing of local variables has been changed in blockutl.c
  (improved function get_local_var_list) and prclib.c (new functions
  process_local_decl and evaluate_local_decls). Instead of executing
  the local declarations as a whole they are now executed line by
  line. This change might be useful for future improvements.

20170328:
- A chapter about signals has been added to the manual.
- The handling of ctrl-c (respectively the signal SIGINT), when s7 or
  s7c are used with the option -ts, has been improved:
  - A dialog offers several possibilities: Continue, terminate,
    trigger SIGFPE or raising an exception.
  - If the program was waiting for an input at the console the input
    can be entered again.
  - Under windows signal handler and the program that waits for an
    input are synchronized now.
- The library aes.s7i with AES (Advanced Encryption Standard) cipher
  support has been improved to support key lengths of 192 and 256
  bits.
- The library tls.s7i has been improved to support the cipher suits
  TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256 and
  TLS_RSA_WITH_AES_256_CBC_SHA256.
- The performance of the function bigMultAssign in big_rtl.c has been
  improved by a factor of 22 (measured with gcc and valgrind when
  big1 := 123456789_**123456; big1 *:= 123456789_**123456; is
  computed). Now Karatsuba multiplication is used to compute *:= .
- The functions wildcardMatch and findMatchingFiles have been moved
  from cli_cmds.s7i to the new library wildcard.s7i.
- The function flush has been added to pixmap_file.s7i.
- The signal handling of interpreted and compiled programs has been
  unified. Now the signal handling is done in sigutl.c.
- Sigutl.c has been moved from the library s7_comp.a to the run-time
  library seed7_05.a.
- Code to generate signal handling functions has been removed from
  s7c.sd7.
- The functions kbdKeyPressed and kbdGetc in con_win.c have been
  rewritten to use Win32 functions (PeekConsoleInputW and
  ReadConsoleInputW) instead of functions from conio.h (kbhit and
  getch). The include directive for conio.h has been removed.
- Code to use conio.h has been moved from con_win.c to con_con.c.
- In fil_win.c the function stdinReady has been added and calls of
  kbhit have been replaced by calls of stdinReady. The include of
  conio.h has been removed.
- Checks that test if NaN is returned as error value for math
  functions have been added to chkflt.sd7.
- Checks that test if sqrt of a negative number raises NUMERIC_ERROR
  have been added to chkbig.sd7 and chkint.sd7.
- Checks for sqrt have been added to chkint.sd7.
- Checks for *:= have been added to chkbig.sd7.
- The configuration value SQRT_FUNCTION_OKAY has been added to
  cc_conf.s7i.
- The program esc2qte.c has been improved to avoid generating output
  with a newline character inside a quoted part.
- The function readChar has been renamed to readCharChkCtrlC and
  moved from fil_rtl.c to fil_unx.c and fil_win.c.
- The function readCharFromTerminal has been added to fil_rtl.c.
  This function allows to re-enter the input, when a program is
  resumed after a ctrl-c.
- The functions doLineRead and doWordRead have been removed from
  fil_rtl.c. The content of this functions has been moved to
  filLineRead respectively filWordRead.
- The function fltSqrt has been added to flt_rtl.c. This function
  checks for negative arguments. This avoids a bug of MinGW-w64 where
  sqrt(-2.0) returns -2.0 instead of NaN.
- The configuration value SQRT_FUNCTION_OKAY has been added to
  cc_conf.s7i.
- The compiler (s7c) has been improved to use fltSqrt when
  SQRT_FUNCTION_OKAY is FALSE.
- The functions sqlCpyDbGeneric, sqlCpyStmtGeneric,
  sqlCreateDbGeneric, sqlCreateStmtGeneric, sqlDestrDbGeneric and
  sqlDestrStmtGeneric have been added to sql_rtl.c.
- The function suspendInterpreter has been added to exec.c.
- The function uncaught_exception has been added to runerr.c.
- In executl.c the functions old_do_create, do_create, do_destroy,
  old_do_copy and do_copy have been improved. Now the functions write
  a message about an uncaught exception, when the function fails and
  exception tracing is switched on.
- The file stat_drv.h has been improved to optionally define the
  st_mode macros and the struct stati64Ext.
- In stat_win.c the function fstati64Ext has been improved to use
  os_fstat_orig or for work without os_fstat_orig.
- In chkccomp.c the code that searches for the MySql include file
  has been fixed.
- The program chkccomp.c has been improved to define the macros
  likely, unlikely, NORETURN, INTPTR_T_DEFINED, FLOAT_ZERO_DIV_ERROR,
  FREXP_INFINITY_NAN_OKAY and LIMITED_CSTRI_LITERAL_LEN always.
- The program chkccomp.c has been improved to define the macro
  DIGRAPH_SEQUENCES_ARE_REPLACED.
- The file config.h has been changed to define the macros
  WITH_STRI_CAPACITY, ALLOW_STRITYPE_SLICES, ALLOW_BSTRITYPE_SLICES,
  WITH_LIST_FREELIST, WITH_NODE_FREELIST, WITH_FILE_FREELIST,
  STACK_LIKE_ALLOC_FOR_OS_STRI, FLOATTYPE_DOUBLE,
  MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS, FORBID_DRIVE_LETTERS and
  EMULATE_ROOT_CWD always.
- At several places #ifdef has been replaced by #if to adopt to the
  macros that are always defined.
- Documentation comments have been added or improved in big_rtl.c,
  con_cap.c, con_con.c, con_cur.c, con_dos.c, con_rtl.c, con_tcp.c,
  intlib.c, asn1.s7i and wildcard.s7i.

20170305:
- The performance of the function bigIPow in big_rtl.c has been
  improved by a factor of 15 (measured with gcc and valgrind when
  bitLength(123456789_**123456) is computed). Now Karatsuba
  multiplication and Karatsuba squaring is used to compute the power.
- The performance of the function uBigMult in big_rtl.c has been
  improved by 22% (measured with gcc and valgrind).
- The compiler has been improved to optimize expressions like:
    stri := stri & ....
    stri := stri[pos ..];
    stri := lower(stri);
    stri := upper(stri);
  The optimization avoids an unnecessary copy of the string result of
  the right hand side expression.
- The code generated by the compiler for the action STR_FOR has been
  improved. Now correct code is generated, when the for-statement
  loops over a string expression.
- The library seed7_05.s7i has been improved to support if-statements
  with omitted statement after the keyword 'then'.
- The functions getFile and putFile have been added to osfiles.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for the commands FILES and LOAD has been added.
- Test cases for the power operator (**) and the operators div, rem,
  mdiv and mod have been added to chkbig.sd7.
- Test cases for the new string optimizations done by the compiler
  have been added to chkstr.sd7.
- Interpreter and compiler have been improved to support the action
  PRC_IF_NOOP.
- The new library http_response.s7i has been added. It contains
  support for HTTP responses.
- The comanche webserver has been improved to work with the new
  library http_response.s7i.
- In big_rtl.c the functions bigIPow and bigIPowN have been improved
  to use uBigSquareK and uBigMultK instead of uBigSquare and
  uBigMultIntoHelp.
- In big_rtl.c an improved version of uBigDigitMult has been added and
  an older deactivated (but faster) version of uBigMult has been
  reactivated.
- In str_rtl.c the function strHeadTemp has been improved to avoid a
  heap corruption for the strange corner case that shrinking a memory
  area fails. Additionally this can only happen with the new compiler
  optimization that generates the expression:
    aString = strHeadTemp(aString, anIndex);
- The functions uBigMultIntoHelp and uBigSquare have been removed from
  big_rtl.c
- In flt_rtl.c the functions fltDgts and fltSci have been improved to
  work correctly, when printf() does not have a fixed maximum for the
  float precision.
- The program chkccomp.c has been changed such that several test
  programs link with SYSTEM_LIBS, when wide variants of system file
  functions are tested.
- The test programs of chkccomp.c, which determine BOOLTYPE,
  FLOAT_ZERO_DIV_ERROR, PRINTF_FMT_E_MAXIMUM_FLOAT_PRECISION and
  PRINTF_FMT_F_MAXIMUM_FLOAT_PRECISION have been improved.
- The test programs of chkccomp.c, which determine database include
  files have been improved to use something from the include file.
  This way the correct include file is selected when a C compiler just
  warns about a missing include file instead of flagging an error.

20170129:
- The new library filesys.s7i has been added. It defines the interface
  fileSys. Files of TAR, ZIP and JAR archives and files from FTP and
  the operating system can be accessed via the fileSys interface. The
  file system changes are work in progress.
- The libraries tar.s7i, zip.s7i, ftp.s7i and osfiles.s7i have been
  adjusted to implement the new interface fileSys.
- Definitions of the types fileType, filePermission and fileMode have
  been moved from osfiles.s7i to the new library filesys.s7i.
- A definition of the file system osFiles has been added to
  osfiles.s7i.
- In ftp.s7i the interface ftpFileSys has been added. This interface
  extends fileSys with the functions listDir, getActiveMode,
  setActiveMode, getAsciiTransfer and setAsciiTransfer.
- The functions retrieve and store have been removed from ftp.s7i and
  the function open (to open a file) has been added.
- The new library ftpserv.s7i has been created. This library allows,
  that the back end of an FTP server is also a file system. Most of
  the contents of ftpserv.s7i has been moved from ftpserv.sd7.
- The functions setUpHead, tarTell, tarXtract and tarCreate have been
  moved from tar.s7i to the new library tar_cmds.s7i.
- The conversion functions bin32 and float have been added to
  bin32.s7i. This functions convert values between single precision
  float and bin32.
- The conversion functions bin64 and float have been added to
  bin64.s7i. This functions convert values between double precision
  float and bin64.
- The functions getBitLsb and getBitsLsb have been added to
  bitdata.s7i. This functions read bits from a file in the direction
  from LSB (least significant bit) to MSB (most significant bit).
- The operator |:= has been added to the libraries bitsetof.s7i and
  bitset.s7i.
- The type void has been improved to allow writing a void value.
  This allows that calc7.sd7 can execute procedures.
- The new library inflatefile.s7i has been added. It allows to
  uncompress data from a file with the Inflate algorithm. In contrast
  to inflatefile.s7i the functions from inflate.s7i assume that the
  compressed data is in a string.
- A test of the tar header checksum has been added to tar.s7i.
- A support for long link paths has been added to tar.s7i.
- The function readMinimumOfHead has been added to tar.s7i. With this
  function opening a tar archive can be done faster.
- The functions fileMode and getMTime in zip.s7i have been improved
  to recognize modes and times from different operating systems.
- In zip.s7i the function rposOfMagic has been improved to work with
  one call of seek() and one gets(). This way the function is faster,
  when the file is not a ZIP file.
- In zip.s7i the functions get_local_header, get_central_header and
  get_end_of_central_directory have been improved to read the fixed
  size part of the header with one statement and to convert the data
  afterwards. This improves the performance of get_central_header by
  about 10%.
- In zip.s7i a map of extra header fields has been introduced.
- In zip.s7i the function getContent has been renamed to getFile.
  Additionally the function has been improved to work when the local
  header does not contain the compressed size. In this case the new
  library inflatefile.s7i is used.
- The function timestamp1601ToTime has been added to time.s7i.
- A test for the operator |:= has been added to chkset.sd7.
- The function filGets in fil_rtl.c has been improved to recognize a
  request to read zero characters earlier. This improves this special
  case a little bit, without a negative effect on the normal case.
- The function uintCard has been added to int_rtl.c.
- The computation of the mode in the function fileAttr2UnixMode in
  stat_win.c has been improved.
- The program ftp7.sd7 has been improved to work with the new
  ftpFileSys interface.
- The program ftpserv.sd7 has been improved to work with the new
  library ftpserv.s7i.
- In seed7_05.s7i the function to convert an integer to a string with
  a given base has been improved.
- Interpreter and compiler have been improved to support the actions
  BIN_CARD, SET_UNION_ASSIGN and STR_FOR.
- In the compiler (s7c) the generation of inline code for the actions
  STR_RANGE and STR_SUBSTR has been improved. When some parameters are
  constant checks can be done at compile-time instead of run-time.
- In drw_x11.c the function redraw() has been improved and the new
  function setupBackup() has been added. This changes have been done
  to handle EXPOSE events correctly, when backing store has the value
  WhenMapped.
- In runerr.c the functions continue_question, run_error, empty_value
  and var_required have been changed to allow the replacement of the
  current exception with a new one.
- The function str_for has been added to strlib.c.

20161231:
- The function toArray has been added to the libraries bitset.s7i,
  bitsetof.s7i and hashsetof.s7i. This function creates an array
  with all values from a given set.
- Experimental functions to access TAR and ZIP archives as file system
  have been added to tar.s7i and zip.s7i. This is work in progress, so
  the API might change.
- The compiler has been improved to work correctly with a C++ compiler
  back end (Now it uses strRaiseError instead of intRaiseError) for the
  code generated for BIN_RADIX and INT_RADIX.
- The compiler has been improved to use sigaction(), when available
  (HAS_SIGACTION is TRUE).
- The compiler has been improved to reactivate the signal handler,
  when necessary (SIGNAL_RESETS_HANDLER is TRUE).
- Test cases for the parse function with whitespace and control
  characters have been added to chkbig.sd7.
- in big_gmp.c the functions bigParse and bigParseBased have been
  improved, to raise RANGE_ERROR when whitespace characters are in the
  string.
- The configuration values HAS_SIGACTION and SIGNAL_RESETS_HANDLER
  have been added to cc_conf.s7i.
- The program chkccomp.c has been improved to define
  SIGNAL_RESETS_HANDLER.
- The function checkMoveDirectory has been removed from chkccomp.c.
- In several files the literal 8 has been replaced by CHAR_BIT, when 8
  refers to the number of bits is a char.
- Several integer literals have been replaced by defined constants.
- Documentation comments have been added or improved in bitset.s7i,
  bitsetof.s7i, hashsetof.s7i, cc_conf.s7i, ftp.s7i, tar.s7i, zip.s7i,
  arrlib.c, arr_rtl.c, big_rtl.c, conlib.c, dll_unx.c, dll_win.c,
  fillib.c, fil_rtl.c, heaputl.c, hshlib.c, hsh_rtl.c, numlit.c,
  numutl.c, pcs_unx.c, pcs_win.c, pol_dos.c, pollib.c, pol_sel.c,
  pol_unx.c, sctlib.c, setlib.c, set_rtl.c, str_rtl.c and typlib.c.

20161204:
- A description, how compiler optimizations can reduce the potential
  of integer overflow, has been added to the manual.
- Documentation comments have been improved in cc_conf.s7i,
  integer.s7i, int_rtl.c, stat_win.c and tim_win.c.
- The compiler has been improved to optimize expressions, where
  several terms are added or subtracted in combination with the
  functions succ or pred. It is possible to combine adjacent constant
  terms at compile time. This simplifies overflow checks.
- The compiler has been improved to optionally generate programs,
  that trace function calls. This is activated with the option -tf.
- Checks have been added to chkint.sd7, where several terms are added
  in combination with the functions succ or pred.
- The functions wstati64Ext (in stat_win.c) and alternate_utime (in
  tim_win.c) have been improved to avoid the strange time adjustments
  of windows for Daylight Saving Time: For the same file different
  times are retrieved respectively set in summer and winter. Now the
  times do not depend on the time when they are retrieved or set.
- In stat_win.c a check for wildcards in a path has been removed from
  wstati64Ext.
- The performance of dirRead in dir_rtl.c has been improved by 10%
  (measured with gcc and valgrind). A smarter check for the
  directories . and .. reduces the CPU time used.
- In cmd_rtl.c the functions remove_dir and copy_dir have been
  improved with a smarter check for the directories . and .. to
  reduce the CPU time used.
- The function getSearchPath in cmd_rtl.c has been improved to work
  correctly, when there is no environment variable named PATH.
- Definitions of macros to check the st_mode field of struct stat
  (e.g. S_ISDIR, S_ISREG, etc.) have been moved from fil_rtl.h to
  stat_drv.h.
- The program chkccomp.c has been improved to work correctly, when
  C compiler options are separated by linefeeds (\n). In this case the
  linefeeds are replaced by spaces. The linefeeds are used in
  cc_conf.s7i to allow the definition of SYSTEM_DB_LIBS as an array of
  database libraries.
- In sudo.c the call of ShellExecute() has been replaced by a call of
  ShellExecuteA().
- A definition of FMT_T, a printf format for time_t values, has been
  added to common.h.
- The makefile mk_clangw.mak has been improved to use the library
  extension ".lib".
- Calls of logFunction and logError have been added or improved in
  cmd_rtl.c, cmd_win.c, gkb_win.c, flt_rtl.c, int_rtl.c, pcslib.c,
  reflib.c, rfllib.c, stat_win.c and tim_win.c.
- In dir_rtl.c the function readVolumeName has been improved to
  consider only directories as volumes.
- In int_rtl.c the functions uint_mult, uint2_mult and uint2_add
  have been renamed to uintMult, uint2Mult and uint2Add respectively.
- In stat_win.c the functions filetime_to_unixtime and
  fileattr_to_unixmode have been renamed to fileTime2UnixTime and
  fileAttr2UnixMode respectively.
- In tim_win.c the function alternate_utime has been improved to
  avoid calling os_utime_orig, because the utime functions of Windows
  do different time adjustments for the same time in summer and
  winter.

20161031:
- The examples about multiple dispatch in the FAQ and in the manual
  have been changed.
- In dir_win.c the functions opendir and wopendir have been improved
  to work correctly, when a volume is empty. FindFirstFile returns
  INVALID_HANDLE_VALUE, when the path refers to an empty volume
  (a directory that does not contain the . and .. directories).
  After FindFirstFile fails GetFileAttributesEx is used to recognize
  empty volumes.
- In stat_win.c the function wstati64Ext has been improved to
  recognize empty volumes correctly. Now GetFileAttributesEx is used
  instead of FindFirstFile to get information about a file.
- The function openVolumeList has been moved from cmd_win.c and
  cmd_unx.c to dir_win.c.
- The definition of volumeListType has been moved from cmd_drv.h to
  dir_win.h.
- In str_rtl.c the function strAppendN has been improved to work
  correctly, when an appended string is identical to the destination
  or a slice of it. There was already code to handle this case, but
  this code could access freed memory in rare situations.
- The makefiles mk_nmake.mak and mk_msvc.mak have been changed to
  include the file 'macros' before the macro SYSTEM_DB_LIBS is used.
- Rand functions have been added to bin32.s7i and bin64.s7i.
- The compiler has been improved to optimize the float shift
  operators << and >> .
- Documentation comments have been improved in float.s7i,
  integer.s7i, osfiles.s7i, big_gmp.c, big_rtl.c, bstlib.c and
  bst_rtl.c.

20161002:
- Definitions of float shift operators << and >> have been added to
  float.s7i (A << B is equivalent to A * 2.0 ** B and A >> B is
  equivalent to A / 2.0 ** B).
- Checks for the operators << and >> have been added to chflt.sd7.
- Interpreter and compiler have been improved to support the primitiv
  actions FLT_LSHIFT and FLT_RSHIFT.
- The example program find7.sd7 has been added. This program is an
  utility to search for files and file contents.
- Documentation comments have been added to arrlib.c, biglib.c,
  blnlib.c, bstlib.c, fillib.c, pcslib.c, prclib.c, prglib.c and
  strlib.c.

20160831:
- The Seed7 runtime library has been improved to allow paths longer
  than PATH_MAX (260) characters under Windows.
- The program sydir7.sd7 has been improved. Now it is avoided to copy
  a file, when source and destination differ only by date. The
  option -c has been added. With -c the source is copied and files
  that are missing in the source are removed from the destination.
- The function readVolumeName in dir_rtl.c has been improved to allow
  extended length paths (This paths exist under Windows and have a
  prefix of \\?\ ).
- The functions opendir and wopendir in dir_win.c have been improved
  to allow paths longer than 260.
- In the library seed7_05.s7i the undocumented function xalloc has
  been removed.
- The function printArgv has been added to arr_rtl.c to improve the
  logging.
- The program chkccomp.c has been improved to write settings to
  always use the directory functions from dir_win.c under Windows.
- The function adjustCwdForShell has been added to cmd_rtl.c. This
  function sets the current working directory to something acceptable
  by cmd.exe.
- In stat_win.c the function wstati64 has been renamed to wstati64Ext
  and improved to call the original stat function, when possible.
- The new file stat_drv.h has been added. In this file a prototype
  of wstati64Ext is defined when necessary.
- The program wrdepend.c has been improved to work correctly, when
  the INCLUDE_OPTIONS macro contains newline characters.
- Calls of logFunction have been added to arr_rtl.c, cmd_rtl.c,
  dir_rtl.c, executl.c, fil_rtl.c, pcs_win.c, runerr.c, sctlib.c,
  sigutl.c, stat_win.c and striutl.c.
- Calls of logError have been added to arrlib.c, blnlib.c, cmd_rtl.c,
  conlib.c, dir_win.c, drwlib.c, enulib.c, fil_rtl.c, itflib.c,
  lstlib.c, prclib.c, reflib.c and striutl.c.

20160731:
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for CVD, CVDMBF, CVS, CVSMBF, HPLOT, MKD$, MKDMBF$, MKS$,
  MKSMBF$, PLOT, SCREEN, SHARED and VARPTR$ has been improved.
  Creating Cga, Ega and Vga images from arrays has been improved to
  work also for float and double arrays.
- The functions bin32, compare, hashCode, float2Bits, bits2Float,
  float2MbfBits and mbfBits2Float have been added to bin32.s7i. The
  functions fourBytesLeToBin32 and fourBytesBeToBin32 have been
  removed (The new function bin32 can be used instead).
- The functions bin64, compare, hashCode, float2Bits, bits2Float,
  float2MbfBits and mbfBits2Float have been added to bin64.s7i. The
  functions eightBytesLeToBin64 and eightBytesBeToBin64 have been
  removed (The new function bin64 can be used instead).
- The program chkbin.sd7 has been added. This program checks the
  correctness of the functions float2Bits, bits2Float, float2MbfBits,
  mbfBits2Float, str, radix and RADIX.
- Checks for the function decompose have been added to chkflt.sd7.
- The compiler has been improved to optimize expressions where several
  terms are added or subtracted. It is possible to combine adjacent
  constant terms at compile time. This simplifies overflow checks.
- The compiler has been improved to store NaN values as bin64
  literals.
- The calc7 example program has been improved to support bin32 and
  bin64 functions.
- The function decompose and the type floatElements have been added
  to the library float.s7i. The function decompose splits a float into
  a normalized fraction and an integral exponent for 2. The result
  of decompose uses the type floatElements.
- The function integer (it converts a string to an integer) has been
  added to integer.s7i.
- In the library seed7_05.s7i the undocumented function xalloc has
  been replaced by the function create.
- The functions uintCmp and uintCmpGeneric have been added to
  int_rtl.c.
- The configuration value FREXP_INFINITY_NAN_OKAY has been added to
  cc_conf.s7i.
- The primitive action FLT_A2TAN has been renamed to FLT_ATAN2 in
  interpreter, compiler and runtime library.
- Documentation comments have been improved in bitdata.s7i, arrlib.c,
  binlib.c, bstlib.c, bst_rtl.c, fillib.c, kbdlib.c, literal.c.
- Interpreter and compiler have been improved to support the primitiv
  actions BIN_CMP, FLT_BITS2DOUBLE, FLT_BITS2SINGLE, FLT_DECOMPOSE,
  FLT_DOUBLE2BITS and FLT_SINGLE2BITS.
- The program chkccomp.c has been improved to define
  FREXP_INFINITY_NAN_OKAY and to work for PostgreSQL version 9.5.

20160630:
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for CVSMBF, CVDMBF, FLASH, FRE, GR, HGR, HOME, HTAB,
  INVERSE, NORMAL, TEXT, PR# and VTAB has been added. Support for
  CLEAR, COLOR, GET, INPUT, LOG, SQR and RUN has been improved.
  Some keywords can now be used as label.
- Documentation comments have been added or improved in several files.
- Definitions of the operator @:= have been added to bitset.s7i,
  bitsetof.s7i and hashsetof.s7i.
- The compiler has been improved optimize expressions like
  factor*base**exponent when the base is a power of two.
- In x509cert.s7i the constant stdCertificate has been improved to
  have a new validity (until end of 2017).
- In drw_win.c the function privateConsole has been improved to
  determine a private console window (A cmd.exe console that was
  invoked implizit when the program started) more reliable. This
  avoids that an already existing console (from which the program was
  started) is accidentally hidden.
- The function redraw in drw_x11.c has been improved to ignore NULL
  windows (EXPOSE events can arrive after a window has been freed).
- The function drwFree in drw_x11.c has been improved to free also the
  backup pixmap.
- Compiler and interpreter have been improved to support the action
  REF_ALLOC_INT.
- Checks for factor*base**exponent when the base is a power of two
  have been added to chkflt.sd7.
- Checks with several summands in a chain and checks of the
  subtraction of integer.first have been added to chkint.s7i.
- First steps have been done for a compiler optimization of adding
  and subtracting several summands in a chain.
- Occurrences of nodeValue and MDULEOBJECT have been removed from
  interpreter and runtime library.
- The function prg_find has been removed from prglib.c.
- The function ref_find has been removed from reflib.c.
- The support for the actions PRG_FIND and REF_FIND has been removed
  from the interpreter.
- Function and variable definitions in setpaths.c and wrdepend.c have
  been changed to static definitions.

20160531:
- Documentation comments have been added or improved in many files.
- The compiler (s7c) has been improved to start C compiler and linker
  direct and not via a shell (except when the compiler must be started
  with a script).
- The program chkccomp.c has been improved to use consecutive numbers
  for test program files.
- The program chkccomp.c has been improved to show the progress of the
  tests done.
- The experimental function startProcess, with files to redirect, has
  been added to process.s7i.
- The functions childStdIn, childStdOut and childStdErr have been
  added to process.s7i.
- The function shellParameters has been added to shell.s7i.
- The function noEmptyStrings has been added to seed7_05.s7i.
- A conv operator to convert an interface object to a specific
  implementation type has been added to seed7_05.s7i.
- The compiler (s7c) has been improved to support the new conv
  operator defined in seed7_05.s7i.
- In cc_conf.s7i the configuration values CC_OPT_DEBUG_INFO,
  CC_FLAGS, LINKER_FLAGS, SYSTEM_LIBS, SYSTEM_CONSOLE_LIBS,
  SYSTEM_DRAW_LIBS and SYSTEM_DB_LIBS have been changed to be arrays
  of strings instead of strings.
- In cc_conf.s7i the configuration values CALL_C_COMPILER_FROM_SHELL,
  CC_ERROR_FILDES, REDIRECT_FILDES_1, REDIRECT_FILDES_2 and
  NULL_DEVICE have been added.
- In cc_conf.s7i the configuration value REDIRECT_C_ERRORS has been
  removed.
- Interpreter and compiler have been improved to support the actions
  PCS_CHILD_STDERR, PCS_CHILD_STDIN, PCS_CHILD_STDOUT, FIL_PIPE and
  FIL_OPEN_NULL_DEVICE.
- The function analyzeProg in analyze.c has been improved to have less
  usages of the global variable prog.
- The functions in chkccomp.c have been changed to static functions.
- The program chkccomp.c has been improved to define
  POPEN_SUPPORTS_CLOEXEC_MODE, FOPEN_SUPPORTS_CLOEXEC_MODE,
  HAS_FCNTL_SETFD_CLOEXEC and HAS_PIPE2.
- The function filPipe has been added to fil_unx.c and fil_win.c.
- In fil_rtl.c the functions filOpen and filPopen have been improved
  to open files with the CLOEXEC flag, when possible.
- The function filOpenNullDevice has been added to fil_rtl.c.
- The functions init_findid, init_entity and init_sysvar have been
  changed to use a progType parameter.
- The functions pcsStart in pcs_unx.c and pcs_win.c have been improved
  to have parameters for stdin, stdout and stderr.
- The functions pcsChildStdErr, pcsChildStdIn and pcsChildStdOut have
  been added to pcs_rtl.c.
. The functions pcs_childStdErr, pcs_childStdIn and pcs_childStdOut
  have been added to pcslib.c.
- In src/read_me.txt descriptions of SEARCH_PATH_DELIMITER.
  REDIRECT_FILDES_1, REDIRECT_FILDES_2, NULL_DEVICE, REDIRECT_C_ERRORS
  and CC_ERROR_FILDES have been improved.
- The functions find_sysvar and concat_path have been renamed to
  findSysvar and concatPath respectively.

20160430:
- The makefile mk_clangw.mak has been improved, such that compilation
  with newer versions of clang under Windows works better.
- Tests for integer parse have been added to chkexc.sd7.
- The function doRemove in chkccomp.c has been improved to write
  nothing to the console.
- The function showErrors has been added to chkccomp.c.
- In actutl.c the functions searchAction and findAction have been
  improved to use fewer parameters and the function getActIllegal
  has been added.
- In chkccomp.c the function writeReadBufferEmptyMacro has been
  improved to optionally use _get_stream_buffer_pointers() to define
  the macro read_buffer_empty.
- The operator 'char conv' has been improved to check if the integer
  fits in a character.
- Documentation comments have been improved in float.s7i, poll.s7i,
  actlib.c actutl.c, big_gmp.c, big_rtl.c, bln_rtl.c, bst_rtl.c,
  chr_rtl.c, cmd_rtl.c, dir_dos.c, dir_win.c, drw_rtl.c, fltlib.c,
  flt_rtl.c, int_rtl.c, pcs_rtl.c, pollib.c, pol_sel.c, pol_unx.c,
  prg_comp.c, rfl_data.c, setlib.c, set_rtl.c and str_rtl.c.
- Calls of logFunction have been added to cmdlib.c and flt_rtl.c.
- Calls of logError have been added to functions in actlib.c,
  biglib.c, bstlib.c, chrlib.c, cmdlib.c, drwlib.c, fillib.c,
  fltlib.c, hshlib.c, intlib.c, pcslib.c, pollib.c, prglib.c,
  rfl_data.c, rfllib.c, sctlib.c, setlib.c, strlib.c and typlib.c.

20160330:
- The makefile mk_clangw.mak has been added. This makefile supports
  compilation under Windows with the clang compiler.
- The experimental function parentDir has been added to osfiles.s7i.
- The experimental function getServerCertificate has been added to
  tls.s7i.
- The compiler (s7c) has been improved to use the function
  strAppendN, when two or more strings are appended to a string.
- Tests for string append (operator &:= ) have been added to
  chkstr.sd7.
- The function strAppendN has been added to str_rtl.c.
- The function strCopy in str_rtl.c has been simplified.
- The program chkccomp.c has been improved to write a definition of
  CHAR_BIT, when it is not defined in limits.h.
- Several files have been changed to use CHAR_BIT instead of the
  literal 8.
- in chkccomp.c several string literals have been changed to wide
  string literals (e.g. L"abc" instead of "abc").
- In several files integer literals have been replaced by constants
  or #define macros.
- The function __mulodi4 has been added to int_rtl.c. This function
  is used by clang under Windows, but unfortunately is not part of
  the runtime library. This situation is recognized by chkccomp.c and
  the function __mulodi4 in int_rtl.c is used instead.

20160229:
- The function fltCmp in flt_rtl.c has been improved to work
  correctly in the case that isnan returns neither 0 nor 1 (Many
  thanks go to Arnel L. for reporting this problem).
- The function determineGetaddrlimit in chkccomp.c has been improved
  to include <sys/types.h> before <sys/resource.h>. FreeBSD needs
  that to work correctly (Many thanks go to Pietro Cerutti for
  providing a fix and explaining the background.
- The function getOsCwd has been added to cmd_rtl.c. With this
  function it is possible to read (e.g. under Linux) a current
  working directory that is longer than PATH_MAX.
- Documentation comments have been improved in encoding.s7i.
- The program chkccomp.c has been improved to write definitions of
  USE_DIRENT, USE_DIRWIN, OS_WIDE_DIR_INCLUDE_DIR_H, os_DIR,
  os_dirent_struct, os_opendir, os_readdir, os_closedir,
  INCLUDE_SYS_UTIME, os_utimbuf_struct, USE_ALTERNATE_UTIME,
  os_utime_orig, os_utime, os_chdir, OS_GETCWD_MAX_BUFFER_SIZE,
  os_getcwd, os_mkdir, os_rmdir, OS_CHMOD_INCLUDE_IO_H, os_chmod,
  os_remove, os_rename, os_system, os_fopen, os_popen, os_pclose,
  DEFINE_WGETENV, os_getenv
- The functions keys_helem and values_helem in hshlib.c and
  hsh_rtl.c have been improved to use a loop instead of a tail
  recursion. For compilers that don't recognize the tail recursion
  this results in a speed improvement (Gcc recognizes tail
  recursions so there is no speed improvement).
- The functions free_helem and free_hash in hsh_rtl.c have been
  improved to stop searching for helems as soon as the last helem
  has been freed.
- The functions helem_data_to_list and helem_key_to_list have been
  improved to use a loop instead of a tail recursion (see above).

20160130:
- A code page for pdf doc encoding has been added to charsets.s7i.
- An optimization for the length of concatenated strings has been
  added to the compiler (in file str_act.s7i).
- Checks for the string length function have been added to
  chkstr.sd7.
- The checks for the string operators := and &:= have been rewritten
  to use one line for each test case.
- The example program rever.sd7 has been improved to allow a level
  of 10.
- The compiler has been improved to create code that raises the
  exception ACTION_ERROR, when at runtime no implementation function
  is found for an interface function.
- The performance of the hash table functions keys (which returns
  all keys) and values (which returns all values) has been improved
  in interpreted and compiled programs. For an average test case
  hshKeys() (in hsh_rtl.c) now uses only 27% of the previous runtime
  (measured with gcc and valgrind).
- In hshlib.c the performance of the functions free_hash,
  keys_helem, keys_hash, values_helem, values_hash, for_helem,
  for_hash, for_key_helem, for_key_hash, for_data_key_helem and
  for_data_key_hash has been improved.
- In hsh_rtl.c the performance of the functions free_hash,
  keys_helem, keys_hash, values_helem and values_hash has been
  improved.
- In listutl.c the performance of the functions helem_data_to_list,
  hash_data_to_list, helem_key_to_list and hash_keys_to_list has
  been improved.
- Several functions in cmd_rtl.c have been improved to work
  correctly, when logError is activated (os_path is freed now after
  its last use in logError).

20151216:
- A compiler bug, triggered with a nested function and an array
  parameter, has been fixed. Many thanks go to "rfnbs" for providing
  an excellent bug report. The bug was fixed by changing the type of
  the global variable 'prog' and by saving and restoring the 'prog'
  variable in the functions get_create_call_obj and
  get_destroy_call_obj.
- The functions toAscii85 and fromAscii85 have been added to the
  library encoding.s7i.
- Definitions of for-each-loops, which have an until condition and
  loop over the characters of a string, have been added to the
  library forloop.s7i.
- The function gzcompress has been added to the library gzip.s7i.
- The type of the global variable 'prog' has been changed from
  progRecord to progType (pointer to progRecord).
- Changes have been done in analyze.c, atom.c, blockutl.c, dcllib.c,
  doany.c, entutl.c, error.c, exec.c, expr.c, findid.c, findid.h,
  match.c, name.c, parser.c, prclib.c, prg_comp.c, prglib.c,
  reflib.c, runerr.c, s7.c, sctlib.c, syntax.c, syvarutl.c,
  syvarutl.h, traceutl.c and type.c to reflect that the type of the
  variable 'prog' changed from struct to pointer to struct.
- The functions get_create_call_obj and get_destroy_call_obj in
  executl.c have been changed to save, set and restore the variable
  'prog'.
- In chkccomp.c all functions, which have a name starting with
  'detemine', have been renamed such that the name starts with
  'determine'.

20151129:
- The library bitdata.s7i, which provides functions to read and
  write bits to and from strings, has been added.
- The libraries deflate.s7i and inflate.s7i have been changed to use
  functions from bitdata.s7i.
- The undocumented function reverseBits has been moved from
  deflate.s7i to bitdata.s7i. The meaning of the two parameters has
  been changed.
- The constant array reverseBits has been added to bitdata.s7i.
  All calls of the function reverseBits have been removed.
- Calls of the function reverseBits in deflate.s7i have been
  replaced by usages of the array reverseBits.
- In inflate.s7i two loops have been replaced by usages of the array
  reverseBits.
- The library lzw.s7i, which provides support for Lempel-Ziv-Welch
  compression and decompression, has been added.
- The function gzuncompress has been added to gzip.s7i. This
  function decompresses a string that was compressed with zlib
  (RFC 1950).
- The function literal(in char: ch) in seed7_05.s7i has been changed
  to write character literals with the new numeric escape sequence.
- In the function detemineOdbcDefines (file chkccomp.c) the test
  program, that verifies the linker option for the static lib, has
  been improved to work correctly under Windows.
- Definitions for SQLGetData() have been added to db_odbc.h and
  sql_odbc.c.
- Support to read a CLOB (Character large object) from an ODBC
  database has been added to sql_odbc.c.

20151110:
- The program toutf8.sd7 has been improved to accept byte order
  marks for the encodings UTF-16BE and UTF-16LE.
- Documentation comments have been improved in bigint.s7i,
  integer.s7i, big_gmp.c, big_rtl.c, bst_rtl.c, flt_rtl.c,
  int_rtl.c, pcs_rtl.c, rfl_data.c, set_rtl.c, str_rtl.c and
  typ_data.c.
- In analyze.c and prg_comp.c function names and parameter names
  have been changed to use camel case.
- The global variable programPath and the function
  relativeToProgramPath have been removed. They were only used when
  the makefile setting PATHS_RELATIVE_TO_EXECUTABLE was active (this
  setting was not used by any makefile for years).
- All explanations related to PATHS_RELATIVE_TO_EXECUTABLE has been
  removed from the FAQ and from src/read_me.txt.
- The functions hsh_incl and hsh_update in hshlib.c have been
  changed to raise RANGE_ERROR when cmp_func is NULL.

20151029:
- The explanation in the FAQ, how Seed7 programs can be debugged
  with Eclipse, has been improved.
- The function commandPath in process.s7i has been improved to
  return always "", when the executable is not found.
- The functions processOptions and printOptions in s7.c have been
  improved to use a parameter instead of a global variable.
- Calls of logFunction have been added to hsh_rtl.c, listutl.c,
  match.c and rfl_data.c.
- In striAsUnquotedCStri and bstriAsUnquotedCStri (file striutl.c)
  the size of the static char buffer is computed at compile-time
  instead of estimated.
- Several numeric literals have been replaced by defined constants.
- The makefile mk_freebsd.mk has been changed to use numutl.c
  instead of sql_util.c.
- To improve the readability the maximum line length in several C
  source files has been reduced.

20151012:
- The program setpaths.c has been changed to work correctly when
  the binary release (for Windows) is used.
- Errors in the bigInteger operators +:= and -:= have been fixed.
  This errors were triggered with expressions like A +:= A; when the
  value of A has a value in a specific range. Thanks go to Fausto C.
  for reporting this problem.
- The example program ide7.sd7 has been improved to start programs
  as process and to allow their termination.
- The chapter about errors in the manual has been improved.
- The picture terminate_pic has been added to pic16.s7i and
  pic32.s7i.
- Checks for +:=, -:= and *:= have been added to chkbig.sd7.
- Documentation comments have been added to aes.s7i, arc4.s7i,
  bin32.s7i, bin64.s7i, complex.s7i, des.s7i and tdes.s7i.
- Errors in the functions bigAddAssign and bigSbtrAssign have been
  fixed. Now the check for a negative delta is done before the
  variable is changed. This fixes the errors with A +:= A; and
  A -:= A; .
- The makefile mk_mingc.mak has been improved such that it can be
  called without the parameters S7_LIB_DIR and SEED7_LIBRARY.
- The program chkccomp.c has been improved to check if pow() works
  correctly when the exponent is the maximum odd value that fits in
  a float respectively double.
- A buffer in a test program used by chkccomp.c has been enlarged
  to avoid a possible buffer overflow.
- Calls of logFunction have been added to big_gmp.c, big_rtl.c and
  traceutl.c.
- The definition of CATCH_SIGNALS has been removed from the
  makefiles. Now signal handlers are used when one of the functions
  sigaction() and signal() is available.
- The function socAddressCStri() has been added to soc_rtl.c. Now
  this function is used instead of bstriAsUnquotedCStri(), to write
  addresses in log functions.
- The function printParameters() has been added to pcs_unx.c and
  pcs_win.c. In log functions this function is now used to print
  parameter lists.
- The unused functions bin_add and bin_add_assign have been removed
  from bin64.s7i, binlib.c, binlib.h and primitiv.c.

20150927:
- The library cgidialog.s7i, which provides dialogs that are shown
  with a web browser, has been added.
- The example program ide7.sd7 has been added. This program is a
  cgi dialog demo program.
- The library browser.s7i, which opens a web browser and provides a
  connection to it, has been added.
- The chapter about types in the manual has been improved.
- The compiler has been improved to create code for the action
  FLT_DIV_ASSIGN in a way that works with icc (icc has problems
  when */ precedes /= ).
- The program chkccomp.c has been improved to write definitions of
  OVERFLOW_SIGNAL and PRINTF_SUPPORTS_VARIABLE_FORMATS.

20150914:
- The FAQ has been improved to explain the support for Unicode names
  and how Unicode names are activated with a pragma.
- The heap management for strings has been improved to determine the
  maximum length of the free lists automatically at run-time. This
  improves the runtime, when the compiler (s7c) compiles itself, by
  2.7% (measured with gcc and valgrind). In many other situations
  this optimization has also a positive effect.
- The interpreter has been improved to allow experimental support
  for case statements with a string decision expression.
- The compiler has been improved to use the functions abs()
  respectively labs() for the absolute value of an integer (when
  overflow checking is switched off).
- Tests for abs have been added to chkint.sd7.
- The example program raytrace.sd7 has been improved to use result
  variables with descriptive names.
- The configuration values LONG_SIZE and BOOLTYPE have been added to
  cc_conf.s7i.
- Interpreter and compiler have been changed to use the type _Bool
  or bool for boolean values, when one of them is available. This
  allows some optimizations by the C compiler, since the possible
  values are restricted to 0 and 1.
- The deprecated functions open_utf8, open_utf16, open_echo,
  open_line, open_tee, open_more, open_upper, open_lower,
  open_reverse, open_window and open_field have been removed.
  The replacement functions are openUtf8, openUtf16, openEcho,
  openLine, openTee, openMore, openUpper, openLower, openReverse,
  openWindow and openField.
- The deprecated function removeAnyFile has been removed. The
  replacement function is removeTree.
- The macros 'likely' and 'unlikely' have been added to functions in
  analyze.c, arrlib.c, biglib.c, bstlib.c, chrlib.c, cmdlib.c,
  dcllib.c, drw_win.c, drw_x11.c, fillib.c, fil_unx.c, fil_win.c,
  numutl.c, pollib.c, prclib.c, sql_lite.c, sql_my.c, sql_oci.c,
  sql_odbc.c, sql_post.c and ut8_rtl.c.
- The definition of the macro logFunction in common.h has been
  improved to write the file name.
- Calls of logFunction have been added to arrlib.c, prclib.c,
  big_gmp.c, cmd_unx.c cmd_win.c dir_dos.c, dir_win.c, drw_win.c,
  set_rtl.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c, sql_post.c
  and sql_rtl.c.
- Checks for err_info != OKAY_NO_ERROR have been replaced by checks
  for pointer variables being NULL in sql_lite.c, sql_my.c,
  sql_oci.c, sql_odbc.c and sql_post.c. Since the address of
  err_info is used this variable cannot be placed into a register.
- Several variables have been changed to constants.
- Several calls of strlen() have been replaced with calls of the
  macro STRLEN() (STRLEN() computes the string size of a literal at
  compile-time).
- The files drw_win.c and tim_win.c have been improved to reduce the
  number of C compiler warnings.
- The function setupFiles in fil_win.c has been improved to set only
  redirected files to _O_BINARY mode. Real console files are left in
  _O_TEXT mode. This way the ENTER key is translated to '\n'.
- The function freelistStatistic has been added to heaputl.c.
- Several definitions have been changed to use a static storage
  class.

20150823:
- The example program raytrace.sd7 has been added. This program is a
  raytracing demo.
- The library vector3d.s7i, which supports 3D vectors, has been
  added.
- The compiler s7c has been improved to create code to manage free
  lists for struct data. This avoids many calls of malloc() and
  free(). The maximum length of the free lists is determined
  automatically at run-time.
- In color.s7i the elements of the type color have been renamed to
  redLight, greenLight and blueLight. The files mahjong.sd7 and
  draw.s7i have been changed to use the new element names of the
  type color.
- The functions doubleToCharBuffer, fltDgts and fltSci in flt_rtl.c
  have been improved to work without calls of strlen().
- The function bigHexCStri in big_rtl.c has been improved to use
  fewer calls of memmove() and strlen().
- The function process_pragma() in analyze.c has been improved to
  use fewer calls of strlen().
- The function opendir in dir_dos.c and dir_win.c has been improved
  to work without calls of strcat().
- The functions striAsUnquotedCStri and bstriAsUnquotedCStri in
  striutl.c have been improved to use fewer calls of strlen().
- The function cp_to_command in striutl.c has been improved to use
  fewer calls of os_stri_strlen.
- The function getcaps in trm_cap.c has been improved to use fewer
  calls of strcat().
- The function fix_capability in trm_inf.c has been improved to use
  fewer calls of strcat().
- The function strLit in str_rtl.c has been improved to work without
  calls of strlen().
- The functions calculate_output_length and print_stri in error.c
  have been improved to use fewer calls of strlen().
- The function prot_os_stri has been removed from traceutl.c.
- The macros 'likely' and 'unlikely' have been added to functions in
  act_comp.c, analyze.c, arr_rtl.c, big_gmp.c, big_rtl.c, chr_rtl.c,
  cmd_rtl.c, cmd_unx.c, cmd_win.c, con_win.c, hshlib.c, hsh_rtl.c,
  soc_rtl.c, striutl.c and traceutl.c.
- Checks for err_info != OKAY_NO_ERROR have been replaced by checks
  for pointer variables being NULL in cmd_win.c, dir_rtl.c,
  fil_rtl.c, pcs_unx.c, pcs_win.c, striutl.c. Since the address of
  err_info is used this variable cannot be placed into a register.
  The pointer variables used now can be placed into a register.
- Variables in big_rtl.c, dir_rtl.c and striutl.c have been changed
  to constants.

20150802:
- An explanation, how Seed7 programs can be debugged with Eclipse,
  has been added to the FAQ.
- Checks for the operators << and >> have been added to chkbig.sd7.
- Checks for string comparisons  ( < <= > >= ) and the operator
  'mult' have been added to chkstr.sd7.
- The functions bigLShift, bigLShiftAssign, bigRShift and
  bigRShiftAssign in big_gmp.c and big_rtl.c have been improved to
  avoid a signed integer overflow, when the shift count is the most
  negative integer.
- The compiler has been improved to optimize code for bigInteger
  shifts and compares.
- The compiler has been improved to create inline code for some
  string comparisons ( < <= > >= ) and the operator 'mult'.
- In int_rtl.c the function intLpad0 has been improved to avoid a
  signed integer overflow when the number is the most negative
  integer.
- In numlit.c the functions decimalValue, basedValue, readBigBased,
  basedInteger, intExponent and lit_number have been changed to
  work with unsigned integers.
- Calls of logFunction have been added to atom.c, doany.c,
  entutl.c, exec.c, executl.c, expr.c, findid.c, libpath.c, name.c,
  object.c, parser.c, syntax.c, token.c and type.c.
- The type of digit_value elements has been changed to uintType.
- The function drwImage in drw_win.c has been improved to avoid
  a multiplication in the inner loop.

20150720:
- The chapter about errors in the manual has been improved.
- In seed7_05.s7i parameter declarations without parameter name
  (which use the keyword 'param') have been changed to parameter
  declarations with parameter name.
- The compare functions in rational.s7i and bigrat.s7i have been
  improved.
- The compiler has been improved to use inline code for the integer
  compare function.
- Checks for the compare function have been added to chkint.sd7.
- Checks for hash tables with bigInteger, rational and bigRational
  keys have been added to chkhsh.sd7.
- Calls of logError have been added to pcs_unx.c, pcs_win.c and
  ref_data.c.
- Calls of logFunction have been added to big_rtl.c, blockutl.c,
  drw_win.c, flistutl.c, gkb_win.c, gkb_x11.c, heaputl.c, hshlib.c,
  identutl.c, infile.c, listutl.c, pcs_unx.c, pcs_win.c, ref_data.c,
  tim_dos.c, tim_unx.c, tim_win.c, trm_inf.c, typ_data.c, typeutl.c
  and typlib.c.
- In cc_conf.s7i, flt_act.s7i, cmd_rtl.c and common.h the
  configuration value MAX_INTEGER_IN_FLOATTYPE has been renamed to
  INT_RANGE_IN_FLOATTYPE_MAX.
- Documentation comments have been added to string.s7i, strlib.c and
  str_rtl.c.

20150705:
- The chapters describing statements and object orientation in the
  manual have been improved.
- The library tls.s7i has been improved to use explicit
  initialization vectors (IVs) for block ciphers, when the TLS
  version is 1.1 or higher.
- The library tls.s7i has been improved to avoid raising exceptions,
  when the handshake fails.
- The list of supported ciphers in tls.s7i has been changed.
- The functions round and trunc in float.s7i have been improved to
  raise RANGE_ERROR, when the float value cannot be represented as
  integer.
- The function log2 has been added to the library math.s7i.
- Checks for the functions str, round, trunc and log2 and for the
  power operator (**) have been added to chkflt.sd7.
- The comanche webserver has been improved to continue without
  exception, when the client closes the socket.
- The comanche webserver now accepts parameters with drive letters.
- The program chkccomp.c has been improved to write definitions of
  HAS_LOG2, HAS_CBRT, HAS_EXP, HAS_EXP2, HAS_EXP10,
  POW_OF_NAN_OKAY, POW_OF_ZERO_OKAY, POW_OF_ONE_OKAY,
  POW_EXP_NAN_OKAY and POW_EXP_MINUS_INFINITY_OKAY.
- The configuration values HAS_LOG2 and HAS_CBRT have been added to
  cc_conf.s7i.
- In config.h the configuration macros DO_HEAPSIZE_COMPUTATION,
  DO_HEAP_STATISTIC, DO_HEAP_CHECK and CHECK_INT_OVERFLOW have been
  changed to have a value of 0 or 1.
- Documentation comments have been improved in cc_conf.s7i,
  float.s7i, fltlib.c, str_rtl.c and ut8_rtl.c.
- Calls of logFunction and logError have been added to actutl.c,
  fltlib.c, literal.c, sql_rtl.c, striutl.c and ut8_rtl.c.
- The macros 'likely' and 'unlikely' have been added to functions in
  arr_rtl.c, int_rtl.c, ref_data.c, rfl_data.c, set_rtl.c, sql_my.c,
  sql_rtl.c and strlib.c.
- The definition of ERROR_INFORMATION in soc_rtl.h has been changed
  to contain the name of the error variable. Usages of this macro in
  pol_sel.c, pol_unx.c and soc_rtl.c have been adjusted.
- The performance of filGets for large files has been improved by
  2% (measured with gcc and Valgrind).
- In various Seed7 libraries (*.s7i) parameter declarations without
  parameter name (which use the keyword 'param') have been changed
  to parameter declarations with parameter name.

20150614:
- The exponentiation operator for float values has been improved to
  work correctly, when the base is negative zero, one or NaN (not a
  number).
- The chapter describing float exponentiation in the manual has been
  improved.
- The parse operator for integers has been improved to recognize,
  when there is no digit after the sign.
- The makefile mk_msvc.mak has been improved to work without calling
  vcvars32 before.
- The function isPositiveZero has been added to float.s7i.
- Checks for the exponentiation with integer and float exponent have
  been added to chkflt.sd7.
- Checks for the parse operator have been added to chkbig.sd7 and
  chkint.sd7.
- Checks for the operators div, rem, mdiv and mod have been added to
  chkint.sd7.
- Documentation comments have been added to float.s7i, cc_conf.s7i,
  fltlib.c and flt_rtl.c.
- The configuration values NAN_COMPARISON_OKAY, POW_FUNCTION_OKAY,
  HAS_EXP2, HAS_EXP10, INT_MIN, INT_MAX and MAX_INTEGER_IN_FLOATTYPE
  have been added to cc_conf.s7i
- The function intParse in int_rtl.c has been improved to recognize
  when there is no digit after the sign.
- Calls of logFunction and logError have been added to analyze.c,
  arr_rtl.c, cmd_rtl.c, flt_rtl.c infile.c, numlit.c, numutl.c
- The function defineTempVariable has been added to
  comp/expr_util.s7i.
- The functions process_const_flt_ipow and process_const_flt_pow
  have been added to comp/flt_act.s7i.
- The function process_const_int_mdiv in comp/int_act.s7i has been
  improved.
- The function bigIntToDouble in numutl.c has been improved to use
  a right shift instead of a division by two.
- In numutl.c and numutl.h the prototypes of the functions
  getDecimalInt, getDecimalBigInt, getDecimalBigRational and
  getDecimalFloat have been changed to use ustriType instead of
  void *.
- The function getDecimalInt in numutl.c has been improved to do the
  conversion without calling intParse.
- The macros logFunctionX and logErrorX have been added to common.h.
  This allows the activation of selected logging functions by adding
  X.
- In str_rtl.c macro definitions for strelem_memcmp and
  search_strelem have been added. The macros are defined, when the
  functions wmemcmp respectively wmemchr are available and when they
  work with 32-bit data elements.
- The macros 'likely' and 'unlikely' have been added to functions in
  striutl.c.
- The files sql_util.c and sql_util.h have been renamed to numutl.c
  respectively numutl.h
- The program chkccomp.c has been improved to write definitions of
  CAST_INT_TO_FLOAT_OKAY, HAS_EXP2, HAS_EXP10, NAN_COMPARISON_OKAY,
  FLOAT_ZERO_TIMES_INFINITE_OKAY, NAN_MULTIPLICATION_OKAY,
  NAN_DIVISION_OKAY, POWER_UNDERFLOW_WITH_SIGN, POWER_OF_ZERO_OKAY,
  POWER_OF_ONE_OKAY, POWER_OF_NAN_OKAY, PRINTS_NEGATIVE_ZERO,
  MAX_INTEGER_IN_FLOAT, MAX_INTEGER_IN_DOUBLE, HAS_WMEMCMP,
  HAS_WMEMCHR and HAS_WMEMSET.
- Definitions of C_COMPILER_SCRIPT and GET_CC_VERSION_INFO_OPTIONS
  have been added to mk_msvc.mak. This definitions are used by the
  program setpaths.c to write definitions of the macros C_COMPILER
  and GET_CC_VERSION_INFO to version.h

20150601:
- Interpreter and compiler have been improved to work correctly, when
  the function body (the part between 'begin' and 'end') consists of
  one symbol (e.g.: begin test end; ).
- The parse operator for float values has been improved to work like
  the corresponding function that reads literals in a Seed7 program.
- The parse operator for float values has been changed to forbid
  hex literals (that the underlying C function might allow).
- In cli_cmds.s7i the copy and move commands have been fixed to work
  correctly, when the target file is specified.
- Checks for division by zero (with div, mdiv, mod and rem) have been
  added to chkbig.sd7 and chkint.sd7.
- Checks for log2 and log10 with negative argument have been added to
  chkbig.sd7 and chkint.sd7.
- Checks if RANGE_ERROR is raised by the operators parse, digits, and
  sci have been added to chkflt.sd7
- Checks for the sci operator have been added to chkflt.sd7.
- Checks for factorial with negative numbers have been added to
  chkint.sd7.
- Checks if RANGE_ERROR is raised by the parse operator have been
  added to chkint.sd7
- In chkbig.sd7 the functions chkGrow, chkShrink and chkMultCopy have
  been renamed to chkAddAssign, chkSubtractAssign and chkMultAssign
  respectively.
- The function defineTempVariable has been added to
  lib/comp/expr_util.s7i and used in several compiler files.
- Changes to avoid signed unsigned mismatches in comparisons have
  been done in actIConv (act_comp.c), act_iconv (actlib.c) and
  bigParseBased2To36 (big_rtl.c)
- Explicit casts to void (document that a function result is ignored)
  have been added to chrCLitToBuffer (chr_rtl.c) and bigLog10
  (big_rtl.c).
- The functions getEnvironment and freeEnvironment have been added to
  cmd_win.c.
- The file con_emc.c has been added. This file contains a (dummy)
  driver for emcc (JavaScript) console access.
- The file stat_win.c has been added. This file defines the functions
  wstati64() and fstati64().
- The program chkccomp.c has been improved to write definitions of
  os_isnan, os_isinf, DOUBLE_MIN_EXP10, MIN_PRINTED_EXPONENT_DIGITS,
  MAX_PRINTED_EXPONENT_DIGITS, STRTOD_ACCEPTS_HEX_NUMBERS,
  ATOF_ACCEPTS_HEX_NUMBERS, STRTOD_ACCEPTS_DENORMAL_NUMBERS,
  ATOF_ACCEPTS_DENORMAL_NUMBERS, HAS_SYMBOLIC_LINKS and HAS_READLINK.
- The config value ISNAN_WITH_UNDERLINE has been removed. Instead the
  macro os_isnan has been defined.
- The macro HAS_SYMLINKS has been renamed to HAS_SYMBOLIC_LINKS.
- In match.c the function match_symbol() has been added and used in
  match_object().
- The function dllSym has been renamed to dllFunc. The function
  dllFunc returns a function pointer instead of a void pointer.
  This silences warnings issued by some C compilers.
  The sql_*.c drivers have been changed to use dllFunc.
- Calls of logError have been added or improved in act_comp.c,
  arr_rtl.c, big_gmp.c, big_rtl.c, bst_rtl.c, cmd_rtl.c, cmd_win.c,
  dir_rtl.c, fil_rtl.c, fil_unx.c, fil_win.c, flt_rtl.c, hsh_rtl.c,
  intlib.c, pcs_unx.c, set_rtl.c and stat_win.c.
- Calls of logFunction have been added or improved in arr_rtl.c,
  big_rtl.c, chr_rtl.c, cmd_rtl.c, dir_rtl.c, fil_rtl.c, fil_unx.c,
  fil_win.c, flt_rtl.c, gkb_win.c, int_rtl.c, s7.c, set_rtl.c,
  stat_win.c, tim_rtl.c

20150517:
- Error messages in cli_cmds.s7i have been improved.
- The function getHttp with a httpLocation parameter has been added
  to gethttp.s7i.
- The structure httpRequest in httpserv.s7i has been improved to
  contain a field for the header.
- Documentation comments have been added to the functions
  getAttrValue, getAttributes, getSubNodes and getContent in
  xmldom.s7i.
- The function readXml with a string parameter has been added to
  xmldom.s7i.
- The comanche webserver has been improved to respond with 405
  (Method Not Allowed), when the request method is unknown.
- The check for phaser energy in startrek.sd7 has been improved.
- The function fltSci in flt_rtl.c has been improved to check for
  PRINTF_FMT_E_MAXIMUM_FLOAT_PRECISION.
- Declarations of sqlite3_db_handle() and sqlite3_errmsg() have been
  added to db_lite.h and sql_lite.c.
- The functions assertCompAndLnk and assertCompAndLnkWithOptions
  have been added to chkccomp.c.
- The function numericProperties in chkccomp.c has been improved
  to determine more values from test programs.
- The makefiles have been changed to define the linker options for
  libraries before chkccomp is executed.
- The macro safe_fileno has been added to os_decls.h. This macro
  is used in logging functions to avoid a segmentation violation,
  when a FILE is NULL.
- Calls of logFunction and logError have been added to big_gmp.c,
  big_rtl.c, drw_rtl.c, drw_win.c, drw_x11.c, fil_rtl.c, flt_rtl.c,
  gkb_win.c, gkb_x11.c, int_rtl.c, prg_comp.c, str_rtl.c and
  ut8_rtl.c.

20150503:
- The example program cat.sd7 has been added. The program
  concatenates and prints files. Thanks go to Brian Callahan for
  providing it.
- The makefile mk_emccw.mak has been added. This makefile supports
  compiling with the emcc C compiler from Emscripten. The support of
  Emscripten is experimental (see also src/read_me.txt).
- Documentation comments have been improved in osfiles.s7i, utf8.s7i,
  cmd_rtl.c and ut8_rtl.c.
- Various changes have been done in chkccomp.c. Many configuration
  settings are now always defined and have a value of 0 or 1. The
  corresponding #ifdef directives in the C source files have been
  changed to #if directives.
- The library comp/int_act.s7i has been changed to use only
  ccConf.CHECK_INT_REM_BY_ZERO for the operators 'rem' and 'mod'.
- In cmd_rtl.c the function cmdFileType has been changed to return
  FILE_SYMLINK, when the chain of symbolic links is too long.
- In fil_rtl.c the functions seekFileLength(), offsetTell() and
  offsetSeek() have been improved to fail for terminal devices such
  as stdin. Under OpenBSD fseek() and ftell() succeeded in this case.
- In drw_x11.c the functions drwPut() and drwSetTransparentColor()
  have been changed to consider a pixmap with a window of 0 as empty.
- Calls of logFunction and logError have been added to fil_rtl.c,
  soc_rtl.c, str_rtl.c, tim_unx.c and ut8_rtl.c.

20150419:
- The library httpserv.s7i, which supports HTTP server and HTTP
  requests, has been added.
- The comanche webserver has been changed to use the library
  httpserv.s7i.
- The example program which.sd7 has been added. This program locates
  in which directory a command is found.
- In shell.s7i the modes used for popen and popen8 have been changed.
  Now a pipe can be opened with the binary modes "r" (read) and
  "w" (write), or with the text modes "rt" (read) and "wt" (write).
- Variants of the functions popen and popen8, which use an array of
  parameters, have been added to shell.s7i.
- In tls.s7i the function gets has been changed to return as soon as
  data is available. This behavior corresponds to the gets function
  in socket.s7i.
- Checks for the radix operator have been added to chkbig.sd7 and
  chkint.sd7.
- Interpreter and compiler have been improved such that the files
  STD_IN, STD_OUT and STD_ERR are in binary mode.
- The function doRemove in chkccomp.c has been improved to check for
  the presence of the file before it is removed.
- The function checkPopen has been been added to chkccomp.c.
- The function cmdShellEscape in cmd_rtl.c has been improved. Now all
  characters except '\0;', '\n' and '\r' can be escaped ('\r' can be
  escaped under Linux/Unix/BSD).
- Now there are two versions of cmdShellEscape and the define
  variable ESCAPE_SHELL_COMMANDS decides which one is used.
- The function filPopen has been changed, to open a pipe in binary or
  text mode.
- In fil_rtl.c the function read_and_alloc_stri has been changed to
  read the data into a list of buffers. Afterwards the string is
  allocated, the data is copied and the buffer list is freed. This
  improves the performance, when the file is a pipe.
- In fil_rtl.c the function doGetsFromTerminal has been changed to
  check for a negative length.
- In soc_rtl.c the function read_and_alloc_stri has been added. This
  function reads the data into a list of buffers. Afterwards the
  string is allocated, the data is copied and the buffer list is
  freed.
- In soc_rtl.c the function socGets has been improved to use
  read_and_alloc_stri, when the requested length is larger than 1 MB.
- In soc_rtl.c the function socWrite has been improved to call send()
  again, when not all data has been written.
- In prclib.c the functions prc_block_catch_all and
  prc_block_otherwise have been improved to free the fail_stack.
  This way the call stack that is written, when an exception
  terminates the program, is always correct.
- The function escape_command in striutl.c has been improved.
- Verbose exceptions have been added to big_rtl.c, fil_rtl.c,
  pol_sel.c, pol_unx.c and soc_rtl.c.
- The logging of C functions in big_rtl.c, cmd_rtl.c, fil_rtl.c,
  hsh_rtl.c, int_rtl.c, pcs_rtl.c, pcs_unx.c, pcs_win.c, prg_comp.c,
  soc_rtl.c, str_rtl.c, tim_dos.c, tim_rtl.c, tim_unx.c and tim_win.c
  has been changed to use the macro logFunction.
- The definition of the macro logError has been removed from various
  C files. The new definition of logError is in common.h.
- Trace output has been added to fil_rtl.c.
- Documentation comments have been improved in process.s7i shell.s7i,
  socket.s7i, big_rtl.c, fillib.c

20150405:
- A cache for client sessions has been added to tls.s7i. This allows
  that a TLS connection can be resumed (without a new negotiation of
  the security parameters).
- The comanche webserver has been improved to keep connections open
  for 15 seconds.
- The functions compare and hashCode for the type socketAddress have
  been added to sockbase.s7i.
- A new variant of openServerTls, with a certAndKey parameter, has
  been added to tls.s7i.
- The functions validityType, createX509Cert, certAndKey and
  selfSignedX509Cert have been added to x509cert.s7i.
- The constant stdRsaKeyPair has been added to pkcs1.s7i.
- The functions localAddress, peerAddress and ord have been added to
  socket.s7i.
- In duration.s7i the functions YEARS, MONTHS, DAYS, HOURS, MINUTES,
  SECONDS and MICRO_SECONDS have been improved to normalize the
  duration value.
- The functions sendGet (gethttp.s7i) and sendHttpResponse
  (comanche.sd7) have been change to send the request/response with
  one write statement.
- The library tls.s7i has been improved to accept client-hello and
  server-hello messages with extensions.
- The functions openTlsSocket and openServerTls (in tls.s7i) have
  been improved to avoid exceptions, when an alert message is
  received or a socket is closed.
- In tls.s7i the function write has been changed to send long strings
  with several messages.
- Tests for the operators parse and radix and for the function
  bigInteger have been added to chkbig.sd7.
- The functions openHttpSession, closeHttpSession, processHttpRequest
  and cleanSessions have been added to comanche.sd7.
- Trace output and verbose exceptions have been added to various
  functions in big_rtl.c, soc_rtl.c, int_rtl.c and str_rtl.c.
- The functions striAsUnquotedCStri and bstriAsUnquotedCStri have
  been added to striutl.c.
- In traceutl.c the functions prot_stri_unquoted and prot_bstri have
  been changed to use striAsUnquotedCStri and bstriAsUnquotedCStri
  respectively.
- Interpreter and compiler have been improved to support the actions
  SOC_GET_LOCAL_ADDR, SOC_GET_PEER_ADDR and SOC_ORD (SOC_GET_ADDR has
  been renamed to SOC_GET_LOCAL_ADDR).

20150322:
- The program chkchr.sd7 has been added. This program checks the
  correctness of the functions isLetter and width. Thanks go to
  Arkady Kuleshov for providing chkchr.sd7.
- Interpreter and compiler have been improved to allow Unicode names.
  This functionality is inspired by patches from Arkady Kuleshov.
  Unicode names are switch off by default. They must be activated
  with the pragma: $ names unicode;
- The library smtp.s7i, with support for SMTP (simple mail transfer
  protocol), has been added.
- Interpreter and compiler have been changed to write an error
  message, when a deprecated string escape sequence (e.g.: "\7\")
  is used instead of a new escape sequence (e.g.: "\7;").
- The function getHttpLocation in gethttp.s7i has been improved to
  handle IPv6 addresses correctly.
- In cli_cmds.s7i error messages have been added to doCopyCmd and
  doMoveCmd.
- Documentation comments have been added or improved in console.s7i,
  ftp.s7i and cli_cmds.s7i.
- Checks for the function bigInteger have been added to chkbig.sd7.
- Checks for the integer for-loop have been added to chkprc.sd7.
- In big_rtl.c the functions bigParseBasedPow2 and bigParseBased2To36
  have been improved to raise RANGE_ERROR when a digit is too big.
- The program chkccomp.c has been changed to use test programs for
  various settings. This has been done to allow that chkccomp.c can
  be compiled with any compiler (not just the one that is to be
  tested).
- The function write_position_info has been added to runerr.c.
- In runerr.c the function write_call_stack has been improved to
  catch the signal SIGSEGV.
- The function scan_symbol_utf8 has been added to scanner.c.
- The functions prot_cstri8 and prot_string have been added to
  traceutl.c.
- The function escape_sequence in literal.c has been changed to write
  an error when a deprecated string escape sequence is used.
- The function utf8_char in literal.c has been changed to save the
  UTF-8 sequence.
- The function basedValue in numlit.c has been changed to write the
  error ILLEGALBASEDDIGIT with the correct digit.
- In prclib.c the functions prc_for_downto, prc_for_downto_step,
  prc_for_to and prc_for_to_step have been changed such that the
  loop variable has a defined value after the loop. After the
  for-loop the loop variable must be beyond the upper bound (or below
  the lower bound for for-downto-loops).
- In doany.c the functions do_flush, do_wrnl and do_wrstri have been
  changed to allow that outfile is from a different program.

20150308:
- The compile time error messages have been improved. Now Unicode
  characters in the error line are displayed correctly. Before they
  have been displayed as question marks (?). When the error line is
  written to a console the encoding of the operating system is used.
  When stdout has been redirected to a file the error line is encoded
  with UTF-8. Thanks go to Arkady Kuleshov for triggering this
  improvement. The patch proposed by Arkady is based on stdout and
  UTF-8. The actual implementation uses a different approach via the
  console driver con_drv.h. The console driver uses UTF-16 under
  Windows (unless stdout has been redirected) and UTF-8 under
  Linux/Unix/BSD.
- The function getBinary has been added to bin64.s7i. This function
  returns 64 bits from a bitset starting with a given bit number.
- The compiler has been changed to use the function getBinary to
  generate bitset literals.
- Interpreter and compiler have been improved to support the actions
  BIN_GET_BINARY_FROM_SET, PRC_FOR_DOWNTO_STEP and PRC_FOR_TO_STEP.
- The compiler function AppendWithDiagnostic has been renamed to
  appendWithDiagnostic.
- The function appendWithDiagnostic in comp/debug.s7i has been
  improved to add #line directives only when they are missing.
- The function defineTempConstant has been added to expr_util.s7i.
- The functions process_const_bin_radix and process_bin_radix in
  comp/bin_act.s7i have been improved to use uintRadix() and
  uintRadixPow2() for the actions BIN_radix and BIN_RADIX.
- The generation of for-loops in comp/prc_act.s7i has been improved.
- A definition of an integer for-loop with step has been added to
  forloop.s7i. Before integer for-loops with step were defined with
  the template FOR_STEP_DECLS.
- The functions prc_block, prc_block_catch_all, prc_block_otherwise,
  prc_repeat and prc_while in prclib.c have been improved to check
  for fail_flag with the macro unlikely().
- The functions check_for_int_to and check_for_int_downto in
  chkprc.sd7 have been improved.
- The program err.sd7 has been improved.
- The program chkccomp.c has been changed to write the version
  information to stdout when no file name has been provided as
  argument.
- A definition of the macro chrStrMacro has been added to chr_rtl.h.
- The function utf8_char in literal.c has been changed to call
  next_character() before reporting the errors CHAR_ILLEGAL,
  OVERLONG_UTF8_ENCODING, UTF16_SURROGATE_CHAR_FOUND and
  CHAR_NOT_UNICODE.
- The functions read_ustri8_line, ustri8_buffer_to_stri,
  calculate_output_length, print_stri and read_and_print_line have
  been added to error.c

20150216:
- The functions isLetter and width have been added to the library
  char.s7i. Compiler and interpreter have been changed to support
  this functions. Thanks go to Arkady Kuleshov for providing a patch.
- The library unionfnd.s7i and the program percolation.sd7 have been
  added. Thanks go to Arkady Kuleshov for providing them.
- The makefile mk_icc.mak has been added. This makefile supports
  compiling with the icc C compiler.
- The library bin64.s7i, a 64-bit binary value support library, has
  been added.
- The functions fourBytesLeToBin32, fourBytesBeToBin32,
  bin32AsFourBytesLe and bin32AsFourBytesBe have been added to
  bin32.s7i.
- The functions bigAsEightBytesLe and bigAsEightBytesBe have been
  added to bytedata.s7i
- Interpreter and compiler have been improved to support the actions
  BIN_STR, BIN_radix, BIN_RADIX, BIN_AND, BIN_OR, BIN_XOR,
  BIN_LSHIFT, BIN_RSHIFT, BIN_LSHIFT_ASSIGN, BIN_RSHIFT_ASSIGN,
  BIN_AND_ASSIGN, BIN_OR_ASSIGN, BIN_XOR_ASSIGN, CHR_IS_LETTER and
  CHR_WIDTH.
- The support for the actions INT_AND, INT_AND_ASSIGN, INT_OR,
  INT_OR_ASSIGN, INT_ULSHIFT, INT_ULSHIFT_ASSIGN, INT_URSHIFT,
  INT_URSHIFT_ASSIGN, INT_XOR and INT_XOR_ASSIGN has been removed
  from interpreter and compiler.
- The compiler library comp/bin_act.s7i has been added.
- The functions isConstantCall and isPureFunction in comp/const.s7i
  have been improved.
- The functions uintRadix, uintRadixPow2 and uintStr have been added
  to int_rtl.c.
- The function bld_binary_temp has been added to objutl.c.

20150201:
- The option -p of the interpreter (Specify a protocol file, for
  trace output) has been documented in FAQ, s7.1 and in the help
  function of the interpreter.
- The behavior of a Seed7 program, when it receives a signal, has
  changed. Now a program is terminated, when it receives a signal.
  The old behavior, that asks for RETURN or '*', is used when
  interpreter or compiler are called with the option -ts.
- The option -ts of interpreter and compiler (Trace signals) has
  been documented in FAQ, s7.1, s7c.1 and in the help functions of
  the programs.
- Documentation comments in integer.s7i, bigint.s7i and char.s7i have
  been improved.
- The runtime of the function bitsetElemAsHex (in comp/set_act.s7i)
  has been improved by a factor of 7 (measured with gcc and
  Valgrind).
- The operator sci has been improved in integer.s7i and bigint.s7i.
- The function check_sci, which checks the sci operator, has been
  added to chkint.sd7.
- The function check_str, which checks the str function, has been
  added to chkset.sd7.
- The function doRemoveCmd in cli_cmds.s7i has been improved to write
  a message when the operation is not permitted.
- The compiler has been improved to generate better code for the
  action STR_MULT.
- The function check_string_mult, which checks string
  multiplications, has been added to chkstr.sd7.
- The function bitsetNonZero has been added to set_rtl.c. This
  function uses loop unrolling inspired by Duff's device.
- The function setNext (in set_rtl.c) has been changed to call
  bitsetNonZero. This improves the speed of setNext by a factor of 2
  (measured with gcc and Valgrind).
- The function strMult in str_rtl.c has been improved to use a binary
  method for string multiplication. This improves the speed of
  strMult by a factor of 2 (measured with gcc and Valgrind).
- The function drwEmpty has been added to drw_x11.c drw_win.c and
  drw_dos.c.

20150118:
- The performance of the function bytes2Int in bytedata.s7i has been
  improved by 10% (measured with gcc and valgrind). An intermediate
  function has been removed and a boolean parameter has been omitted
  from the underlying C function .
- The function check_string_concat, which contains checks for string
  concatenation, has been added to chkstr.sd7.
- Improvements have been done in gethttp.s7i and tls.s7i to avoid
  blocking and exceptions, when a socket is closed or unexpected data
  is read.
- Several optimizations in the compiler (s7c) have been done:
  - The function optimize_str_cat has been added to comp/str_act.s7i.
    This function optimizes sequences of string concatenations.
  - The flag prefer_result_expr has been added to the struct
    expr_type in comp/expr.s7i. With this flag it can be requested
    that a parameter is preferred as result_expr (the value is
    allocated at the heap).
  - The function process_int_str has been added to int_act.s7i.
    This function is used for INT_STR and for the radix operator
    when the base is 10.
- The program chk_all.sd7 has been changed to ignore the exception
  FILE_ERROR, when it is raised by some calls of removeFile.
- In int_rtl.c the functions intBytesBe2Int and intBytesLe2Int have
  been changed to convert only signed values (in twos-complement
  representation). The parameter isSigned has been removed.
- The functions intBytesBe2UInt and intBytesLe2UInt have been added
  to int_rtl.c. This functions convert unsigned values.
- The function write_place in error.c has been fixed to write the
  correct file name and line. This error has been introduced in
  version 2014-09-07, when the function write_place has been added.
- A definition and calls of the macro logError have been added to
  fil_rtl.c and soc_rtl.c.
- A version of the function alloc has been added to progs.s7i. This
  version allocates a string object.
- The functions prot_params and prot_name in traceutl.c have been
  improved to write syntax with keywords at the beginning and at the
  end correctly.
- In ref_data.c the functions refAlloc, refArrMaxIdx, refArrMinIdx,
  refArrToList, refBody, refCategory, refFile, refHshDataToList,
  refHshKeysToList, refIsVar, refItfToSct, refLine, refLocalConsts,
  refLocalVars, refNum, refParams, refResini, refResult,
  refSctToList, refStr, refType, actValue, bigValue, blnValue,
  bstValue, chrValue, drwValue, filValue, fltValue, intValue,
  pcsValue, polValue, prgValue, refValue, rflValue, setValue,
  strValue and typValue have been changed to use const parameters.
- The actions INT_BYTES_BE and INT_BYTES_LE have been replaced by
  INT_BYTES_BE_SIGNED, INT_BYTES_BE_UNSIGNED, INT_BYTES_LE_SIGNED and
  INT_BYTES_LE_UNSIGNED.
- The actions INT_BYTES_BE_2_UINT, INT_BYTES_LE_2_UINT and
  REF_ALLOC_STRI have been added.

20150104:
- In sql_post.c the function swap64 has been renamed to swapUInt64.
  Thanks go to Brian Callahan for reporting that OpenBSD already has
  a function called swap64().
- The library aes.s7i with AES (Advanced Encryption Standard) cipher
  support has been added.
- The library tls.s7i has been improved to allow encoding with AES.
- The functions fileType and fileTypeSL have been added to ftp.s7i.
- The handling of the command ls -l in the program ftp7.sd7 has been
  improved to write the file type.
- The compilation of the action ARR_IDX in the compiler (file
  arr_act.s7i) has been improved.
- In des.s7i and tdes.s7i all occurrences of subkey have been renamed
  to subKey.
- In sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c the
  function setupFuncTable has been changed to use count.sql_func
  (defined in heaputl.h).

20141223:
- The chapter about primitive actions in the manual has been
  improved.
- The compiler optimization of bigInteger divisions and
  multiplications by -1 has been improved.
- Tests of bigInteger divisions and multiplications have been added
  to chkbig.sd7.
- The functions fltDgts and fltSci have been improved to allow a
  precision greater than 1000.
- Tests of the operators digits and sci with large precision values
  have been added to chkflt.sd7.
- In drw_x11.c the functions drwHeight and drwWidth have been
  improved to avoid a call of XGetGeometry, when the window is a
  pixmap. This significantly improves the writing with Seed7 fonts
  under Mac OS X.
- The compiler has been improved to limit the length of generated C
  float literals to 100 characters. The length of a float literal
  accepted by the cl C compiler from msvc is limited.
- The function doubleToCharBuffer in flt_rtl.c has been improved to
  work correctly for numbers with big and small exponents.
- Tests of float to string conversions have been added to chkflt.sd7.
  The tested float values have exponents from the allowed range.
- The function bigAddAssignSignedDigit (former bigGrowSignedDigit) in
  big_rtl.c has been changed to mask the delta value with
  BIGDIGIT_MASK.
- The functions numericSizes and deteminePostgresDefines in
  chkccomp.c have been improved. Now the macros INT32_SUFFIX,
  UINT32_SUFFIX, INT32TYPE_LITERAL_SUFFIX, INT32TYPE_FORMAT,
  INT64_SUFFIX, UINT64_SUFFIX, INT64TYPE_LITERAL_SUFFIX and
  INT64TYPE_FORMAT are written by chkccomp.c instead of being defined
  in common.h.
- The function findPgTypeInclude has been added to chkccomp.c.
- The check for the function __builtin_expect in chkccomp.c has been
  improved.
- The actions BIG_GROW, BIG_SHRINK, FLT_GROW, FLT_SHRINK, INT_GROW
  and INT_SHRINK have been renamed to BIG_ADD_ASSIGN,
  BIG_SBTR_ASSIGN, FLT_ADD_ASSIGN, FLT_SBTR_ASSIGN, INT_ADD_ASSIGN
  and INT_SBTR_ASSIGN respectively.
- In big_rtl.c and big_gmp.c the functions bigGrowSignedDigit,
  bigGrow and bigShrink have been renamed to bigAddAssignSignedDigit,
  bigAddAssign and bigSbtrAssign respectively.
- A check for DEFAULT_DECIMAL_PRECISION in sql_odbc.c has been
  corrected.

20141210:
- The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c
  and sql_post.c have been improved to select a shared library / DLL
  from a list of candidates.
- The program chkccomp.c has been improved to configure database
  drivers with a list of shared libraries / DLLs.
- The makefiles mk_bcc32.mak, mk_bccv5.mak, mk_msvc.mak, mk_msys.mak,
  mk_mingc.mak, mk_mingw.mak and mk_nmake.mak have been improved to
  write definitions of the C macros MYSQL_DLL, SQLITE_DLL and
  POSTGRESQL_DLL to the file chkccomp.h.
- The chapters about integer, rational and exceptions in the manual
  have been improved.
- In bigint.s7i the performance of the binomial coefficient operator
  (infix operator symbol: ! ) has been improved by 17% (measured with
  gcc and valgrind).
- The optimization of constant expressions in the compiler has been
  improved.
- The program esc2qte.c has been added. This program searches for
  backslash escaped spaces and quotes the string instead. It is used
  by mk_nmake.mak to process the file depend.
- Documentation comments in integer.s7i have been improved.
- The recognition of integer formats in chkccomp.c has been improved
  (the test programs now include <string.h>).
- The makefiles mk_msys.mak and mk_nmake.mak have been improved to
  use wrdepend.exe to determine the dependencies.
- The program wrdepend.c has been changed to include config.h (this
  way the macro MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS is available).
- A cast has been added to sudo.c.

20141207:
- The paragraph in src/read_me.txt, that describes the compilation
  under Mac OS X, has been improved.
- The function bigIPow1 in big_rtl.c has been changed to call
  bigLog2BaseIPow instead of bigLShiftOne when the base is a power of
  two. This avoids an integer overflow when the shift count is
  computed.
- The function fltIPow in flt_rtl.c has been changed to avoid a
  division by zero when CHECK_FLOAT_DIV_BY_ZERO has been defined.
- The function fltIPow in flt_rtl.c has been improved to return
  -Infinity for (-0.0) ** n when n is negative.
- The function uint_rand (in int_rtl.c) has been renamed to uintRand
  and changed to omit the initialization of the random seed.
- The function setupRand has been added to int_rtl.c. This function
  initializes the random seed of uintRand.
- The function uintRandLimited has been added to int_rtl.c.
- The runtime of the integer random number generator has been reduced
  to 45%.
- The compiler has been improved to generate optimized code for
  special cases of the action INT_RAND. For special cases the
  functions uintRand and uintRandLimited are used instead of intRand.
- The compiler has been improved to optimize the binomial coefficient
  operator (infix operator symbol: ! ).
- Tests for the binomial coefficient (infix operator symbol: ! ) have
  been added to chkint.sd7 and chkovf.st7
- Tests for the integer random number generator have been added to
  chkint.sd7.
- Tests for powers of negative zero have been added to chkflt.s7i.
- The database interface headers db_lite.h, db_my.h, db_oci.h,
  db_odbc.h and db_post.h have been added. This include files are
  used when the original database include files are not available.
- The functions decimalValue and basedValue in numlit.c have been
  improved to use an unsigned integer value and a simplified test for
  the maximum value of a literal. The change reduces the runtime of
  decimalValue by 6% (measured with gcc and valgrind).
- The function intBinom (in int_rtl.c) has been improved to work
  correctly as long as the result is representable in an integer of
  type intType. When the result is not representable in an integer
  the exception OVERFLOW_ERROR is raised.
- The function uintBinomNoChk has been added to int_rtl.c. This
  special case function is used by the compiler, when n_number is
  less than a limit.
- The function intSafeMult has been renamed to intMultOvfChk.
- The makefile mk_osxcl.mak has been added. This makefile supports
  compilation under Mac OS X with the clang compiler.
- The file sql_ite.c has been renamed to sql_lite.c.
- The makefiles have been improved to write additional macros to
  chkccomp.h. This macros are used by chkccomp.c to do the database
  investigation.
- The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c
  and sql_post.c have been improved.
- The configuration program chkccomp.c has been improved:
  - Now it writes definitions of INT8TYPE and INT16TYPE to version.h.
  - Now it adds /opt/X11/include to the include path, when
    /usr/include/X11 does not exist. This is required for Mac OS X.
  - The functions that write define macros for databases have been
    improved to take the new database interface headers (db_*.h) into
    account.

20141116:
- The type process has been added to the library process.s7i. The
  type process is used to manage child processes.
- The functions compare, hashCode, str, exitValue isAlive,
  startProcess, kill and waitFor have been added to process.s7i.
- Support for the actions CMD_PIPE2, CMD_PTY and CMD_START_PROCESS
  has been removed from interpreter and compiler.
- Support for the actions PCS_CMP, PCS_CPY, PCS_EQ, PCS_EXIT_VALUE,
  PCS_HASHCODE, PCS_IS_ALIVE, PCS_KILL, PCS_NE, PCS_PIPE, PCS_PTY,
  PCS_START, PCS_STR, PCS_VALUE and PCS_WAIT_FOR has been added to
  interpreter and compiler.
- The files pcs_rtl.c, pcs_rtl.h, pcs_unx.c, pcs_win.c, pcs_drv.h,
  pcslib.c, pcslib.h and pcs_act.s7i have been added.
- The functions freeArgVector, genArgVector have been moved from
  cmd_unx.c to pcs_unx.c.
- The function prepareCommandLine has been moved from cmd_win.c to
  pcs_win.c.
- The makefiles have been improved to consider the files necessary
  for process support.

20141102:
- The files to generate man pages for Seed7 interpreter and compiler
  (files doc/s7.1 and doc/s7c.1) have been improved.
- Functions have been moved from make.s7i and makedata.s7i to the new
  library cli_cmds.s7i (Emulate CLI commands from UNIX and DOS).
- Support for the commands mkdir and md has been added to
  cli_cmds.s7i.
- The library makedata.s7i has been improved to support the functions
  dir, notdir, suffix, basename, addprefix, addsuffix, filter,
  filter-out, foreach, call, sort and shell.
- The libraries makedata.s7i and make.s7i have been improved to
  support pattern rules with equal patterns.
- The configuration program chkccomp.c has been improved to set the
  POSTGRESQL_POSTGRES_H and POSTGRESQL_PG_TYPE_H in more situations.
- The function exec_call in exec.c has been improved to raise the
  exception ILLEGAL_ACTION, when it is called for a FORWARDOBJECT.
- The compiler has been improved to issue an error, when a forward
  defined function is called.
- The function prg_eval in prglib.c has been improved to call
  raise_with_arguments instead of raise_exception.
- The function nameOfBufferType in sql_post.c has been improved to
  use PGNODETREEOID, INT2ARRAYOID, OIDARRAYOID and FDW_HANDLEROID
  only when they have been defined.

20141019:
- The compiler s7c has been improved to process the semicolon
  operator with reduced stack usage. Thanks go to Pietro Cerutti for
  pointing out problems with the available stack size under FreeBSD.
- In drw_x11.c the function redraw has been improved to ignore expose
  events when backing store is active. Thanks go to Brian Callahan
  for reporting problems with activated backing store under OpenBSD.
- The library makedata.s7i has been improved. Now conditional
  makefile parts with ifdef and ifndef are allowed. Now it is
  possible to use the ?= operator to assign a value to a variable.
  Now the value of a variable is taken from the environment, when it
  has not been defined in the makefile.
- The function setupStack has been moved from cmd_rtl.c to heaputl.c.
- The self extracting Seed7 installer for Windows has been improved
  to allow downloading the latest Seed7 release.
- Tabs in various files have been replaced with spaces.

20141005:
- The example program sql7.sd7 has been improved to write help
  information, when it is called with the option -? .
- The configuration program chkccomp.c has been improved to accept
  the #define macros MYSQL_INCLUDE_OPTIONS, SQLITE_INCLUDE_OPTIONS,
  POSTGRESQL_INCLUDE_OPTIONS, ODBC_INCLUDE_OPTIONS,
  OCI_INCLUDE_OPTIONS, MYSQL_LIBRARY_PATH, SQLITE_LIBRARY_PATH,
  POSTGRESQL_LIBRARY_PATH, ODBC_LIBRARY_PATH and OCI_LIBRARY_PATH.
- The makefile mk_freebsd.mk has been improved to allow database
  connections under FreeBSD.
- The makefiles mk_mingw.mak, mk_msvc.mak, mk_bcc32.mak and
  mk_bccv5.mak have been improved to support the SQLite database.
- The database driver sql_ite.c has been improved such that it can
  also work with a DLL that is loaded at runtime.
- Tracing statements have been added to drw_x11.c.

20140921:
- Access to MySql/MariaDb, SQLLite, PostgreSQL, Oracle and ODBC
  databases has been added.
- The library sql_base.s7i has been added. This library provides
  functions to connect to a database, to prepare statements, to bind
  variables to prepared statements, to execute prepared statements,
  to fetch data from the database and to get individual columns from
  fetched data.
- A paragraph about the compilation of Seed7 with database
  connections has been added to the FAQ.
- The example program sql7.sd7 has been added. This program connects
  with a database, reads SQL commands and sends them to the database.
- The example program chkdb.sd7 has been added. This program checks
  SQL statements with several databases. The database login data in
  chkdb.sd7 must be adjusted to allow that opening the databases
  succeeds.
- The library ftp.s7i and the program ftp7.sd7 have been improved to
  accept connection strings of the form user:password@hostName .
- Interpreter and compiler have been improved to support databases.
- The compiler now adds parentheses around comma expressions when
  they are used as index. This changes have been done in the files
  arr_act.s7i, bst_act.s7i and str_act.s7i.
- Database drivers consisting of the files dll_drv.h, dll_unx.c,
  dll_win.c, sql_drv.h, sql_ite.c, sql_my.c, sql_oci.c, sql_odbc.c,
  sql_post.c, sql_rtl.c, sql_rtl.h, sql_util.c, sql_util.h, sqllib.c
  and sqllib.h have been added.
- The program wrdepend.c has been added. This program is used to
  write C header dependencies to the file depend. It calls the C
  compiler with -I options. The -I options come from the macro
  INCLUDE_OPTIONS, which is defined in the file version.h.
- Database driver files have been added to makefiles.

20140907:
- The function setSearchPath has been added to the library
  process.s7i.
- The compiler has been improved to write an error message, when the
  sets of a case-statement overlap. Until now this situation was only
  recognized by the C compiler.
- The interpreter has been improved to raise an exception, when the
  current value of a case-statement is element of two sets.
- There have been changes in the libraries makedata.s7i and make.s7i.
- The macro expansion in makedata.s7i has been changed. Now all macro
  expansions (except the expansions of internal macros) are done with
  the function applyMacros.
- In makedata.s7i the function applyMacros has been improved to
  process the makefile macro functions wildcard, error and warning.
- The functions evalFunction and getMacro, that where used to do
  macro expansion when the makefile is read, have been removed.
- The code to read the definition of recursively expanded variables
  has been changed to do no macro expansion. This macros are expanded
  when they are used.
- The library make.s7i has been improved to read the parameters
  for the commands rm, cp, and mv as Unix shell parameters (with the
  function getUnixCommandParameter).
- The library make.s7i has been improved to read the parameters
  for the commands del, copy, xcopy and move as Dos/Windows batch
  parameters (with the function getDosCommandParameter).
- Interpreter and compiler have been improved to support the action
  CMD_SET_SEARCH_PATH.
- The batch file bin/call_gcc.bat has been changed to work correctly,
  when it is called from any directory.
- Writing error messages in error.c has been changed to use prot_...
  functions instead of printf.

20140817:
- The chapter about files in the manual has been improved.
- Variants of the for-each-loop with an until condition have been
  added to array.s7i.
- The parse operator for characters has been improved to accept only
  strings with a length of 1.
- The function trimValue has been introduced. This function trims a
  string such that it can be converted to a specified type.
- The exception handlers for RANGE_ERROR have been removed from the
  functions read and readln in enable_input.s7i. The functions read
  and readln now raise range RANGE_ERROR when the conversion to the
  target type fails.
- Occurrences of io_ok, io_error, io_empty and io_filled have been
  removed from the libraries. This undocumented feature was not used
  for years. The function succeeds and the functions read and readln
  with default value are better suited for error checking, when data
  is read.
- The exception handlers in interpreter and compiler have been
  improved to allow an otherwise part.
- The function succeeds has been introduced. This function executes
  a statement and returns TRUE when no exception occurs.
- The example programs nicoma.sd7 and savehd7.sd7 have been improved
  to use the new function succeeds.
- The parse operator for float has been changed to raise RANGE_ERROR
  when leading whitespace is found.
- The library make.s7i has been improved to accept the commands
  erase, xcopy, mv, move and rem.
- The library makedata.s7i has been improved to accept the macro
  functions subst and patsubst.
- The reading of rules in makedata.s7i has been improved to read
  commands without macro substitution. The macros in commands are
  substituted just before the commands are executed.
- The make functions in make.s7i have been changed to raise
  FILE_ERROR when a command fails.
- The function applyMacros in makedata.s7i has been improved to
  accept macro functions and the shorthands of patsubst.
- The function replaceSuffixes in makedata.s7i has been improved to
  accept pattern substitution with the % character.
- In the library make.s7i the logging has been removed from the
  functions doRm, doCp, doPwd, doEcho, doCd, doMake, doOneCommand,
  doCommands and processCommand.
- The program chkflt.sd7 has been adjusted to work with the strict
  parse operator for float.
- Interpreter and compiler have been improved to support the actions
  PRC_BLOCK_CATCH_ALL and PRC_BLOCK_OTHERWISE.
- The program sudo.c has been improved to work without upper limit
  for the parameter length.
- The functions checkIfOutsideRange and negate have been added to
  int_act.s7i.

20140803:
- The handling of ctrl-c has been changed to work better under
  Windows.
- The runtime of the function intPowOvfChk in int_rtl.c has been
  reduced to 57% (measured with gcc and valgrind).
- The generation of code in the compiler for the action INT_POW has
  been improved. When the base is a negative power of two the
  exponentiation is done with a shift instead of a call of intPow
  (respectively intPowOvfChk).
- The overflow checking for INT_POW in the compiler has been
  improved. When base or exponent is known the overflow checking is
  done with inline code and intPow is called instead of intPowOvfChk.
- Documentation comments have been added to bitsetof.s7i
- Tests for ** have been added to chkint.sd7 and chkovf.st7
- The tests for * and *:= in chkovf.st7 have been reorganized.
- An interrupt_flag has been introduced in the interpreter. This flag
  is used for exception handling and for signal handling. Exceptions
  set interrupt_flag and fail_flag (with the macro set_fail_flag).
  Signals set only the interrupt_flag (file sigutl.c). The
  interrupt_flag is handled in exec_action (file exec.c).
- The functions signal_name, handle_signals, handle_segv_signal,
  handle_term_signal and activate_signal_handlers in sigutl.c have
  been improved.
- The functions continue_question, write_curr_position and
  show_signal in runerr.c have been improved.
- The functions handle_int_signal, readChar, doGetcFromTerminal,
  doGetsFromTerminal, doLineRead, doLineReadFromTerminal, doWordRead,
  doWordReadFromTerminal, filGetcChkCtrlC, filGetsChkCtrlC,
  filHasNextChkCtrlC, filLineReadChkCtrlC and filWordReadChkCtrlC
  have been added to fil_rtl.c. This functions support reading from
  a terminal with a check for ctrl-c. This functions are used by the
  interpreter (file intlib.c).
- Tracing has been added to functions in int_rtl.c.
- Configuration defines for CTRL_C_SENDS_EOF,
  SIGNAL_HANDLER_CAN_DO_IO and INT64TYPE_NO_SUFFIX_BUT_CAST have been
  added to makefiles.

20140720:
- The compiler has been improved to generate overflow checking code
  by default. The generation of overflow checking code can be
  switched off with the option -so.
- The exception OVERFLOW_ERROR has been introduced. It is raised by
  the interpreter and by compiled programs when an integer overflow
  occurs.
- A paragraph about integer overflow and the installation of Seed7
  has been added to the FAQ.
- The chapter about exceptions in the manual has been improved.
- The program chkovf.sd7, which checks the recogition of integer
  overflows, has been added.
- Checks for +, -, *, rem, mod, <<, +:=, -:=, *:=, succ, pred, incr
  and decr have been added to chkint.sd7.
- Checks for the lpad operator have been added to chkstr.sd7.
- The compiler option -r has been replaced by the option -sr.
- The program calc7.sd7 has been improved to report MEMORY_ERROR and
  OVERFLOW_ERROR.
- The library make.s7i has been improved such that make7.sd7 accepts
  echo (and echo.) statements without parameters.
- The function eof has been defined for the type tlsFile in tls.s7i.
- The function gets in tls.s7i has been improved.
- The function getHttp in gethttp.s7i has been improved to avoid an
  endless loop when eof has been reached.
- The function memcpy_from_strelem has been added to striutl.c. This
  function uses loop unrolling inspired by Duff's device and a trick
  with a binary or (|=) to check for allowed values.
- The functions filWrite, socWrite and bstParse have been changed
  to use memcpy_from_strelem. The reduction in runtime has been
  measured with gcc and valgrind. The runtime of filWrite, socWrite
  and bstParse has been reduced to 53%, 61% and 56% respectively.
- Documentation comments have been added to integer.s7i, bin32.s7i,
  intlib.c and striutl.c.
- The compiler has been improved to generate overflow checking code
  for *, <<, >>, *:=, <<:= and >>:= .
- The generation of overflow checking code for the operators rem and
  mod has been improved.
- Checks for overflow, division by zero, numeric error and index out
  of bounds in compiled programs now use the macros ovfChk, divChk,
  numChk and idxChk. This macros inform the C compiler about the
  unlikeliness of an exception.
- The function fltIPow has been improved to avoid a signed integer
  overflow, when the exponent is the most negative integer.
- The primitive actions INT_ULSHIFT and INT_ULSHIFT_ASSIGN have been
  added and supported in interpreter and compiler.
- A version of the function uint_rand, which uses 128-bit integers,
  has been added to int_rtl.c.
- The function raise_error3 in runerr.c has been renamed to
  interprRaiseError.
- The configuration values INT128TYPE, UINT128TYPE and MACRO_DEFS
  have been added to cc_conf.s7i. The configuration value
  SIGILL_ON_OVERFLOW has been replaced with OVERFLOW_SIGNAL.
- The functions constValueIsEqual, checkRangeFromZero,
  process_const_int_lshift, process_const_int_lshift_assign,
  process_const_int_rshift_assign, process_const_int_mult,
  process_const_int_mult_assign, process_const_int_ulshift_assign,
  process_const_int_ulshift and process_const_int_urshift_assign
  have been added to int_act.s7i.
- The function intExpr in chkbig.sd7, chkexc.sd7, chkint.sd7 and
  chkstr.sd7 has been changed to make sure that the C compiler
  cannot evaluate it at compile time.
- The runtime of the functions str_lpad, strLpad and strLpadTemp has
  been improved.

20140706:
- The interpreter has been improved to recognize integer overflow.
  Now the exception NUMERIC_ERROR is raised, when a program triggers
  an integer overflow. The checks for overflow are done in software,
  but the overhead is small. With overflow checks the interpreter
  needs 0.5% (zero point five percent) more run-time to execute the
  program chkint.sd7 (verified with gcc and valgrind).
- A chapter about the Seed7 Structured Syntax Description (S7SSD)
  has been added to the manual.
- The for-until-loops in bitset.s7i and bitsetof.s7i have been
  improved such that the for-variable has the correct value, when it
  is used in the until-condition.
- The function replaceN has been added to string.s7i. This function
  does replacements until no occurrence of the target string is left.
  This function is used by toStdPath to replace multiple occurrences
  of a character by one occurrence (replace("/a///b////c", "//", "/")
  returns "/a/b/c").
- The program calc.sd7 has been renamed to calc7.sd7.
- The program calc7.sd7 has been changed to accept the commands
  'quit' and 'exit'. This commands can be used to exit the program.
  The possibility to leave the program with an empty input line has
  been removed.
- The program calc7.sd7 has been improved to write the name of the
  exception, when it has been raised.
- The compiler has been improved to allow the generation of overflow
  checking code. Overflow checking code can be generated for the
  operators +, -, **, +:= and -:= and the functions abs, succ, pred,
  incr and decr. Until the rest of the functions is implemented and
  enough tests have been added to chkint.sd7 the functionality is
  switched off.
- The template FOR_UNTIL_DECLS has been added to forloop.s7i. This
  template defines for-loops with a condition.
- The function abs has been moved from the library math.s7i to the
  library float.s7i.
- Checks for addition, subtraction, multiplication, power and abs
  have been added to chkint.sd7.
- In the compiler the statements to write the C prototypes have been
  moved from s7c.sd7 to functions in the files comp/xxx_act.s7i
  (xxx is the abbreviation for the corresponding primitive type).
- The functions getReference and getParameterAsReference have been
  added to comp/expr_util.s7i.
- The function isit_bool from objutl.c has been replaced by the macro
  isit_bool (defined in objutl.h). This improves the speed of the
  interpreter.
- The function set_card has been improved to call setCard, which
  computes the cardinality of a set much quicker.

20140615:
- The makefile mk_freebsd.mk has been changed to work with the new
  version of chkccomp.c. Thanks go to Pietro Cerutti for pointing out
  the problem.
- The self extracting Seed7 package for Windows has been improved to
  use gcc version 4.8.1 instead of 4.5.0.
- The new function removeTree, which removes a directory tree, has
  been introduced in osfiles.s7i. The function removeAnyFile, which
  has been used for the same purpose, is deprecated. Deprecated
  functions will be removed in a future version.
- Checks for hash tables with character keys have been added to
  chkhsh.sd7.
- The test program "chkcmd.sd7" has been added. This program checks
  functions that copy, move and remove files. Note that Windows has
  race conditions when files are copied, moved and removed quickly in
  succession. This bug of Windows cannot be fixed in a runtime
  library.
- The function temp_name_in_dir has been added to striutl.c.
- The typedef of socketType in common.h has been changed such that
  socketType is always int.
- Functions in soc_rtl.c, pol_sel.c and pol_unx.c have been changed
  to use the type os_socketType.
- Tracing statements in hsh_rtl.c, cmd_rtl.c, drw_win.c and drw_x11.c
  have been changed to use the FMT_ strings from common.h. This way
  the tracing is more portable.
- Under Windows the functions cmdRemoveFile and cmdRemoveTree now
  rename a file before it is removed. When the renaming fails the
  directory is left intact. This avoids half removed directory trees
  under Windows, when a process has the current working directory
  somewhere in the directory that is to be removed. The renaming also
  lowers the probability of race conditions under Windows, but they
  still can happen.
- The function checkMoveDirectory has been added to chkccomp.c.
- The target make7 has been added to the makefiles. With 'make make7'
  an executable of the make7 program is generated and placed in
  seed7/bin.

20140601:
- The compiler has been refactored. Code has been moved from s7c.sd7
  to several compiler libraries. The compiler libraries are licensed
  with the GPL and can be found in seed7/lib/comp. The refactored
  compiler is the first compiler of the 3.0 series.
- The chapter in the manual about the foreign function interface has
  been improved.
- Checks for parse and str have been added to chkflt.sd7 and
  chkint.sd7.
- In chkccomp.c code has been moved from main() to the new functions
  numericSizes and numericProperties.
- Usages of the macro logError have been added to cmd_rtl.c and
  cmd_unx.c.
- The stack size defined in mk_mingc.mak, mk_mingw.mak, mk_msys.mak
  and mk_nmake.mak has been changed from 4194304 to 8388608.
- The function cstri_buf_to_stri has been added to striutl.c.
- The generation of float literals in the compiler has been improved
  to avoid that precision is lost.
- Interpreter and compiler have been improved to support the actions
  BLN_EQ and BLN_NE.

20140518:
- Errors in con_wat.c and drw_dos.c have been fixed (thanks to
  "Rugxulo" for the help to fix them).
- The function str in duration.s7i has been improved to work for
  negative durations.
- The library tar.s7i has been improved to work with the old file
  format that does not use the magic value "ustar".
- The function bigToInt16 has been added to big_rtl.c and big_gmp.c.
- The macros with format strings in common.h have been renamed.
  Now the macros have shorter names (starting with FMT_ and F_).
  The macros define formats for various integer sizes. This formats
  are independent from the actual C compiler and C runtime library.
- The function bigLog10 in big_rtl.c has been improved to work
  correctly when BIGDIGIT_SIZE is small.
- The program chkccomp.c has been improved to define
  LOCALTIME_WORKS_SIGNED, when localtime can process negative times.
- The program chkccomp.c has been improved to write the define
  directives to the file specified with the first parameter.
- The function intParse in int_rtl.c has been improved to accept the
  most negative number.
- The function timSetLocalTZ in tim_rtl.c has been changed to avoid
  raising an exception when LOCALTIME_WORKS_SIGNED is not defined and
  the time is before 1970-01-01. In this case the daylight saving
  time flag is set to FALSE.

20140504:
- The answer concerning Unicode support in the FAQ has been improved.
- The chapters in the manual that describe the types integer,
  bigInteger, rational, bigRational and float have been improved.
- The function log10 has been added to the libraries integer.s7i and
  bigint.s7i. This function computes the truncated base 10 logarithm.
- The operator sci has been added to the libraries integer.s7i,
  bigInteger.s7i, bigrat.s7i and rational.s7i. This operator converts
  a number to a string in scientific notation. Halfway cases are
  rounded away from zero.
- The function round10 has been added to the libraries rational.s7i
  and bigrat.s7i. It rounds halfway cases away from zero.
- The function str has been improved in the libraries rational.s7i
  and bigrat.s7i. Now the function converts to a string with a
  decimal representation (e.g.: "1.25"). When repeating decimals are
  recognizend they are enclosed in parentheses.
- The operator digits has been improved in the libraries rational.s7i
  and bigrat.s7i. Now the operator rounds halfway cases away from
  zero.
- Documentation comments have been improved in bigint.s7i, float.s7i,
  rational.s7i, bigrat.s7i, char.s7i, big_gmp.c and fltlib.c.
- Definitions of the constants integer.first and integer.last have
  been added to integer.s7i.
- In bigrat.s7i and rational.s7i the function reduce has been
  improved to accept Infinity and NaN.
- The function strDateTime has been added to time.s7i.
- A definition of INTTYPE_DECIMAL_SIZE has been added to s7c.sd7 and
  common.h.
- The function bigGcd in big_rtl.c has been improved to make sure
  that the greatest common divisor is positive or zero.
- Checks for log10, **, +:= and -:= have been added to chkbig.sd7.
- The checks for log2 have been improved and checks for log10 have
  been added to chkint.sd7.
- Checks for the function str have been added to chkflt.sd7.
- The compiler has been improved to use the functions
  bigIPowSignedDigit and bigGrowSignedDigit to optimize the operators
  **, +:= and -:= for bigInteger operands.
- The compiler has been improved to support the actions INT_LOG10 and
  BIG_LOG10.
- The function isPureFunction in the compiler has been improved.
- The functions bigGrowSignedDigit and bigLog10 have been added to
  big_rtl.c and big_gmp.c.
- The program chkccomp.c has been improved to write definitions of
  the macros isinf, DOUBLE_DECIMAL_EXPONENT_DIGITS, FLOAT_STR_FORMAT,
  FLOAT_STR_LARGE_NUMBER, DOUBLE_STR_FORMAT, DOUBLE_STR_LARGE_NUMBER,
  FLOAT_MANTISSA_FACTOR, FLOAT_MANTISSA_SHIFT, DOUBLE_MANTISSA_FACTOR
  and DOUBLE_MANTISSA_SHIFT.
- The functions fltDgts and fltSci in flt_rtl.c have been changed to
  raise RANGE_ERROR when the precision is negative.
- The function fltStri in flt_rtl.c has been improved to write a
  reasonable number of fractional digits.
- The functions getMantissaAndExponent, setMantissaAndExponent and
  doubleToCharBuffer have been added to flt_rtl.c.
- The function intLog10 has been added to int_rtl.c.
- The function stri_to_wstri has been renamed to stri_to_utf16.
- The functions stri_to_wstri_buf and wstri_buf_to_stri have been
  added to striutl.c.

20140420:
- The chapter in the manual about the foreign function interface has
  been improved.
- A paragraph about regular expressions and lexical scanner functions
  has been added to the FAQ.
- The handling of the actions CHR_CLIT and INT_STRI in the compiler
  has been improved. The string buffers for chrCLitToBuffer and
  intStrToBuffer use the correct alignment now.
- In big_rtl.c the functions bigParseBasedPow2 and bigParseBased2To36
  have been added and bigParseBased has been changed to call them.
  This improves the conversion of a string to a bigInteger, when the
  base is a power of two. Valgrind measurements of the function
  bigParseBased in chkbig.sd7 show a speed improvement with a factor
  of 239.
- The macros memcpy_to_strelem and memset_to_strelem (defined in
  striutl.h) have been turned into functions (defined in striutl.c).
- The unrolling in memcpy_to_strelem and memset_to_strelem has been
  changed from 8 times to 32 times. This improves the performance
  for big data amounts by 16% (Measured with valgrind and gcc).
- Usages of the macros memcpy_to_strelem and memset_to_strelem in
  bst_rtl.c, fil_rtl.c, soc_rtl.c and str_rtl.c have been turned into
  usages of the corresponding functions.
- Calls of cstri_expand, ustri_expand, cstri_expand2 and
  ustri_expand2 in analyze.c, chr_rtl.c, flt_rtl.c, infile.c,
  str_rtl.c and striutl.c have been turned into calls of
  memcpy_to_strelem.
- The functions (macros) cstri_expand, ustri_expand, cstri_expand2
  and ustri_expand2 have been removed from striutl.c and striutl.h.
- The functions doCompileAndLink, compileAndLinkWithOptionsOk,
  compileAndLinkOk, appendToFile and detemineDatabaseDefines have
  been added to chkccomp.c. The function compilationOkay has been
  replaced by compileAndLinkOk.

20140406:
- The chapters in the manual about primitive actions and the foreign
  function interface have been improved.
- The names of the C types used in interpreter and runtime library
  have been refactored to use camel case.
- The elements in the unions valueUnion (in data.h) and rtlValueUnion
  (in data_rtl.h and s7c.sd7) have been refactored to use names with
  camel case.
- The library bigint.s7i has been changed to define the operators
  radix and RADIX with the actions BIG_radix and BIG_RADIX. This
  results in a significant performance improvement when large numbers
  are converted.
- Interpreter and compiler have been improved to support the actions
  BIG_radix and BIG_RADIX.
- Test cases for the operators radix and RADIX have been added to
  chkbig.sd7.
- The compiler has been improved to do an optimization for the action
  INT_MDIV when the divisor is known at compile time. When the
  dividend is known to be positive or zero it is casted to an
  unsigned integer and the quotient is casted back to a signed
  integer. Dividing an unsigned integer by a constant is known to be
  faster than dividing a signed integer.
- The functions bigRadix, bigRadixPow2, bigRadix2To36 and
  uBigDivideByDigit have been added to big_rtl.c
- The function bigRadix has been added to big_gmp.c.
- The functions stri_to_cstri8_buf and cstri8_buf_to_stri have been
  added to striutl.c.
- In traceutl.c the function mapTraceFlags has been improved to work
  correctly when the parameter trace_level defines several options.
- The function printTraceOptions has been added to traceutl.c.
- In arr_rtl.c the definition of getArgv has been improved to use
  less #ifdef directives in the function body.

20140316:
- The documentation file doc/install.txt has been improved to
  describe the command 'make install'.
- The chapter about the foreign function interface in the manual has
  been improved.
- In striutl.h the macros os_stri_alloc and os_stri_free have been
  improved to use a stack like allocation. Allocations done with
  os_stri_alloc must be freed with os_stri_free in the reverse
  order of their creation. The new macros reduce the runtime of
  stri_to_os_stri and cp_to_os_path to 66% of the old time. This
  reduces the time used by operating system calls. E.g.: The CPU time
  used by the program sydir7 is reduced to 83% of the old time.
- The targets 'install' and 'uninstall' have been added to makefile,
  mk_linux.mak, mk_osx.mak, mk_clang.mak, mk_cygw.mak, mk_mingw.mak,
  mk_msys.mak, mk_nmake.mak, mk_msvc.mak, mk_bcc32.mak and
  mk_bccv5.mak.
- The program setwpath.c has been added. This program sets the search
  path (PATH variable) under Windows.
- The obsolete target 'hi' has been removed from the makefiles.
- The functions initEmulatedCwd, cmdSetenv (both in cmd_rtl.c),
  setEmulatedCwd (in striutl.c) and freeArgVector (in cmd_unx.c) have
  been adjusted to work with the stack like allocation of
  os_stri_alloc and os_stri_free.
- The functions heapAllocOsStri and heapFreeOsStri have been added to
  striutl.c.
- Usages of MAX_SYMLINK_PATH_LENGTH in cmd_rtl.c have been replaced
  with MAX_OS_STRI_LEN.

20140302:
- The function setSockOpt and the constant SO_REUSEADDR have been
  added to sockbase.s7i. Many thanks go to Domingo Alvarez Duarte
  for pointing out that this functionality was missing.
- The function openInetListener in listener.s7i has been improved
  to succeed when the socket is reused (it calls setSockOpt with
  SO_REUSEADDR now).
- The functions opendir and wopendir in dir_win.c and the function
  opendir in dir_dos.c have been improved to check for the maximum
  path length supported by Windows and DOS.
- The functions act_string and act_okay have been removed from
  actutl.c.
- The function exec_action in exec.c has been improved to use
  get_primact instead of act_okay. This results in a significant
  performance improvement in the case when WITH_ACTION_CHECK is
  defined and the option -tc is used.
- The function str1Split has been removed from strlib.c.
- Documentation comments have been added to arr_rtl.c, arrutl.c,
  cmd_unx.c, cmd_win.c, dir_dos.c, dir_rtl.c, dir_win.c, kbd_inf.c,
  kbd_poll.c, scanner.c and ut8_rtl.c.
- Interpreter and compiler have been improved to support the action
  SOC_SET_OPT_BOOL.

20140216:
- A new numeric escape sequence for string literals has been
  introduced. A backslash followed by an integer literal and a
  semicolon is interpreted as character with the specified ordinal
  number. E.g.: "abc\128;def". With the old numeric escape sequence
  this would be "abc\128\def". Terminating the escape sequence
  with ; instead of \ improves the readability, especially when
  escape sequences follow each other. Instead of "\8\\12\\7\8\9\\\"
  it is now possible to write "\8;\12;\7;8\9;\\" The old escape
  sequence is still supported, but it is deprecated and should not
  be used. Future versions will warn about the deprecated escape
  sequence.
- The conversion functions 'bytes' and 'bytes2Int' in bytedata.s7c
  have been improved to support all combinations of signedness and
  endianness.
- The functions bStriBe and bStriLe have been removed from
  bstring.s7i. The function 'bytes' in bytedata.s7c can be used as
  replacement.
- Checks for lowestSetBit and UNSIGNED conversions with the
  functions 'bytes' and 'bytes2Int' have been added to chkint.sd7.
- Checks for UNSIGNED conversions with the functions 'bytes' and
  'bytes2BigInt' have been added to chkbig.sd7.
- Checks for the function rand have been added to chkset.sd7.
- The parser has been improved to write error messages when the
  source file contains unexpected UTF-8 continuation bytes, solitary
  UTF-8 start bytes, extended control codes from the C1 set or an
  UTF-16 byte order mark.
- In tar.s7i the functions getoct, putspc and putoct have been
  improved. The computation of the size of padding data has also
  been improved.
- The compiler has been improved to optimize string initializations
  with the function strZero. StrZero creates a string of arbitrary
  length with '\0;' (zero) bytes.
- The compiler has been improved to optimize integer exponentiation
  (action INT_POW). Now the multiplication pattern is determined at
  compile time and the number of multiplications is reduced.
- The performance of the function setCard in set_rtl.c has been
  improved by a factor of 2.5.
- The performance of the function setRand in set_rtl.c has been
  improved by a factor of 2.3.
- Loop unrolling inspired by Duff's device has been introduced in
  striutl.h. The unrolling is used for tight loops which copy byte
  data to Seed7 strings in fil_rtl.c, soc_rtl.c and bst_rtl.c. The
  performance improvement has been verified with gcc and valgrind.
- The example program err.sd7, which checks compile time error
  messages, has been improved.
- The old way to store the data of constant bigIntegers has been
  removed from compiler and runtime library.
- The buffers used in intRadix and intRadixPow2 (file int_rtl.c) have
  been enlarged to fit for the most negative number with a base of 2.
- In itflib.c the functions itf_cpy and itf_cpy2 have been fixed to
  work correctly, when the destination is converted from a struct to
  an interface.
- In traceutl.c the tracing of characters has been improved in the
  functions prot_char, prot_os_stri, prot_stri_unquoted and
  prot_bstri.
- In ut8_rtl.c the function ut8Getc has been improved to use smarter
  checks for ranges of characters.
- The deprecated variant of the function str, which has a second
  parameter to specify a numeric base, has been removed. The
  operators radix and RADIX can be used instead.
- Interpreter and compiler have been improved to support the new
  actions INT_BYTES_BE, INT_BYTES_LE, INT_BYTES_BE_2_INT and
  INT_BYTES_LE_2_INT. The functions intBytesBe, int_bytesBe,
  intBytesLe, int_bytesLe, intBytesBe2Int, int_bytesBe2Int,
  intBytesLe2Int and int_bytesLe2Int have been added.
- Support for the actions BIG_CLIT, INT_TO_BSTRI_BE, INT_TO_BSTRI_LE,
  INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT has been removed from
  interpreter and compiler. The functions bigImport, bigCLit,
  big_clit, intToBStriBe, int_toBStriBe, intToBStriLe, int_toBStriLe,
  intBytesBe2UInt, int_bytes_be_2_uint, intBytesLe2UInt and
  int_bytes_le_2_uint have been removed.

20140202:
- The manual chapter describing the foreign function interface has
  been improved.
- The handling of Unicode in the console has been improved. Cursor
  positioning and writing Unicode strings to the desired position
  works now also under Linux.
- A strict checking of all strings, that are passed to C functions,
  has been introduced. Zero bytes and non Unicode characters in the
  original string raise the exception RANGE_ERROR now.
- The performance of several loops in the runtime library has been
  improved. Now the loops use indices instead of pointer increments
  and they work downward towards an index of zero. This allows C
  compilers to do more optimizations (verified with gcc and
  valgrind).
- The enumeration types signedness and endianness have been added to
  bytedata.s7c.
- The conversion functions bytes, bytes2Int and bytes2BigInt have
  been added to bytedata.s7c. The new function allow conversions
  to and from signed and unsigned byte strings with big- and
  little-endian byte order. This functions replace the less flexible
  functions bytesLe2Int, bytesBe2Int, bytesLe and bytesBe.
- The functions bStriBe, bStriLe, bStriBe2BigInt and bStriLe2BigInt
  have been moved from bytedata.s7c to bstring.s7i.
- The performance of the functions int16AsTwoBytesLe,
  int32AsFourBytesLe, int64AsEightBytesLe int16AsTwoBytesBe,
  int32AsFourBytesBe and int64AsEightBytesBe has been improved.
- Documentation comments have been added or improved in cc_conf.s7i,
  bytedata.s7i, environment.s7i, sockbase.s7i, actutl.c, big_rtl.c,
  big_gmp.c, biglib.c cmd_rtl.c, con_inf.c, con_win.c, con_wat.c,
  int_rtl.c, intlib.c, soc_rtl.c, striutl.c and syvarutl.c.
- The program chk_all.sd7 has been improved to check several
  compiler options and to allow that the output of interpreted and
  compiled compiler differs. The difference of the generated C code
  is okay, when the execution of the compiled programs results in
  the same output.
- The compiler (s7c) has been improved to do more optimizations for
  the action BIG_REM (operator rem).
- The compiler has been improved to count inserted and suppressed
  range checks.
- Interpreter, compiler and runtime library have been improved to
  allow bstrings with slices. This is used by the compiler to
  reduce the memory used for constant bstrings.
- The compiler has been improved to store the data of constant
  bigIntegers in bstrings.
- Checks for div, rem, mdiv and mod have been added to chkbig.sd7.
- Checks for float division by zero have been added to chkexc.sd7.
- Checks for float parse have been added to chkflt.sd7.
- In con_inf.c, con_win.c and con_wat.c the function conText has
  been replaced by conWrite. ConWrite takes an UTF-32 string and
  writes it to the console. If stdout is redirected an UTF-8 string
  is written to the destination file.
- The function gen_act_ptr_table has been added to actutl.c. This
  function creates act_ptr_table and removes double entries from it.
- The functions intBytesBe2UInt and intBytesLe2UInt have been added
  to int_rtl.c.
- Interpreter and compiler have been improved to support the new
  actions INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT.
- Checks for the function sigaction() and for integer division and
  remainder have been added to chkccomp.c.
- The configuration values ALLOW_BSTRITYPE_SLICES,
  CHECK_INT_REM_BY_ZERO and CHECK_INT_REM_ZERO_BY_ZERO have been
  added to cc_conf.s7i, chkccomp.c, cmd_rtl.c and s7c.sd7.
- Several versions of timAwait in tim_unx.c have been improved to
  restart calls of poll(), ppoll() and select().
- A check for the character '=' in the environment variable name has
  been added to the function cmdSetenv (in cmd_rtl.c).
- In striutl.c the functions stri_compress, stri_export_utf8 and
  cp_to_cstri8 have been improved and renamed to conv_to_cstri
  conv_to_cstri8 and stri_to_cstri8 respectively. Interpreter and
  runtime library have been improved to use the new function names.
- The function stri_to_cstri and the macro free_cstri8 have been
  added to striutl.c.
- The functions conv_to_cstri, conv_to_cstri8, stri_to_cstri8 and
  stri_to_bstri have been improved to use an err_info parameter.

20140119:
- The library tdes.s7i with TDES (Triple DES respectively 3DES)
  cipher support has been added.
- The library tls.s7i has been improved to allow encoding with TDES
  (3DES) and to accept the handshake message CertificateRequest.
- The function drwGetImage has been added to drw_dos.c (thanks to
  "Rugxulo" for pointing out, that it was missing).
- Checks for mdiv and mod have been added to chkbig.sd7.
- The compiler (s7c) has been improved to do more optimizations for
  the action BIG_MOD (operator mod). Now the functions bigLowerBits
  and bigLowerBitsTemp are used when the divisor is a power of two.
- The compiler has been improved to optimize if-statements, when the
  condition is constant.
- The compiler has been improved to optimize the action BIG_MDIV
  (operator mdiv) correctly, when the divisor is a negated power of
  two (e.g. n div -8). The generated code now corresponds to the
  Seed7 expression -dividend >> log(-divisor).
- New functions to open files have been introduced in various
  libraries. The new functions are openUtf8, openUtf16, openEcho,
  openLine, openTee, openMore, openUpper, openLower, openReverse,
  openWindow and openField. The new functions have been added as
  replacement for the functions open_utf8, open_utf16, open_echo,
  open_line, open_tee, open_more, open_upper, open_lower,
  open_reverse, open_window and open_field. The old functions are
  still supported, but they are deprecated and should not be used.
  Deprecated functions will be removed in a future version.
- The example programs have been changed to use the new functions
  to open files.
- Documentation comments have been added or improved in cipher.s7i,
  clib_file.s7i, external_file.s7i, shell.s7i, utf8.s7i, utf16.s7i,
  unicode.s7i, bytedata.s7i, big_gmp.c, biglib.c, big_rtl.c,
  cmdlib.c, cmd_rtl.c, fillib.c, fil_rtl.c, intlib.c, int_rtl.c,
  strlib.c, str_rtl.c and entutl.c.
- The functions bigLowerBits and bigLowerBitsTemp have been added
  to big_rtl.c and big_gmp.c.
- The free list management in big_rtl.c and big_gmp.c has been
  improved to allow the configuration of a maximum free list length.
- The function bigMultAssign1 has been added to big_rtl.c. This
  function is used by bigMultAssign when the factor is just one
  bigdigit.
- The function bigLog2BaseLShift has been renamed to
  bigLog2BaseIPow in big_rtl.c, big_gmp.c and s7c.sd7.
- The function getValue for boolean values has been added to
  progs.s7i. Interpreter, compiler and runtime library have been
  improved to support it.
- the management of types in the runtime library has been improved.
  Now they are attached to the corresponding program. This way they
  can be freed by prgDestr().

20140105:
- The library des.s7i with DES (Data Encryption Standard) cipher
  support has been added.
- The library tls.s7i has been improved to support block ciphers
  and encoding with DES.
- The functions blockSize and decode have been added to cipher.s7i
  and arc4.s7i.
- The functions str, rotLeft and rotRight and the operators
  radix, RADIX, ~ and ><:= have been added to bin32.s7i.
- Support to write bin32 values has been added to bin32.s7i.
- The new library unicode.s7i, with functions to convert between
  Unicode encodings, has been added.
- The functions utf16beToStri, utf16leToStri, utf7ToStri and
  replaceUtf16SurrogatePairs have been improved and moved from
  charsets.s7i to unicode.s7i. The functions striToUtf8 and
  utf8ToStri have been moved from string.s7i to unicode.s7i. The
  functions striToUtf16be and striToUtf16le have been added to
  unicode.s7i.
- The actions FLT_MINUS, INT_MINUS and BIG_MINUS have been renamed
  to FLT_NEGATE, INT_NEGATE and BIG_NEGATE respectively.
- The library gethttps.s7i has been improved to accept links to
  HTTP.
- The operator symbols ~ and ><:= have been added to syntax.s7i.
- Checks for -, mdiv, << and >> have been added to chkbig.sd7.
- The compiler (s7c) has been improved to do more optimizations for
  the actions BIG_DIV, BIG_LSHIFT, BIG_RSHIFT, BIG_MDIV, BIG_MULT,
  BIG_NEGATE and CHR_CLIT.
- The function charLiteral has been added to the compiler.
- The compiler has been improved to avoid the generation of long
  lines for bigInteger literals.
- The function bigMinus has been renamed bigNegate and the function
  bigNegateTemp has been added to big_gmp.c and big_rtl.c.
- A check for the keyword 'restrict' has been added to chkccomp.c.
- The function chrCLitToBuffer has been added to chr_rtl.c.
- Interpreter, compiler and runtime library have been improved to
  support the action INT_XOR_ASSIGN.
- The functions utf8_char (literal.c), utf8_to_stri (striutl.c),
  utf8_bytes_missing (striutl.c), strUtf8ToStri (str_rtl.c) and
  ut8Getc (in ut8_rtl.c) have been improved to check for ranges
  of characters instead of bit patterns. This improves the
  performance of UTF-8 conversions by up to 6%.
- The functions freeArgVector and genArgVector have been added to
  cmd_unx.c.

20131222:
- Consecutive calls of write in bas7.sd7 have been combined into
  single calls of write respectively writeln.
- Several links have been added to the FAQ.
- The types cardSuit and cardRank and the functions cardPixmap and
  cardBackside have been added to the library cards.s7i.
- The library cards.s7i has been improved to use functions from
  pic_util.s7i.
- The program carddemo.sd7 has been improved to use the new types
  and functions from cards.s7i.

20131208:
- Explanations how Seed7 compares to Java and about an elegant way
  to initialize data have been added to the FAQ.
- The functions pipe2, pty, startProcess and getSearchPath have been
  moved from shell.s7i to the new library process.s7i.
- The function commandPath has been added to process.s7i.
- Under Windows removeFile can trigger an error, when an executable
  is removed shortly after it was executed. It was not possible to
  correct this failure of Windows in the Seed7 runtime library. To
  avoid the Windows error the program chk_all.sd7 has been improved
  to catch the raised exception.
- The pictures execute_pic, seed7_include_pic, seed7_source_pic,
  clear_pic and save_as_pic have been added to pic16.s7i and
  pic32.s7i.
- In pic16.s7i and pic32.s7i the pictures exit_pic, load_pic and
  save_pic have been improved.
- The function cmdPty in cmd_unx.c has been improved to free memory
  correctly.
- The function cmdPipe2 in cmd_win.c has been improved to open stdin
  and stdout in text mode.
- The function filInputReady in fil_unx.c and fil_win.c has been
  improved to return TRUE after a hang up respectively a broken
  pipe.

20131124:
- The new library pic_util.s7i has been added. It contains utility
  functions for pictures. A picture is a simple way to describe
  graphic images as readable text. A picture is an array of strings,
  where every character describes the color of a pixel.
- The programs castle.sd7, mahjong.sd7, pairs.sd7, panic.sd7,
  shisen.sd7, sokoban.sd7 and sudoku7.sd7 have been adjusted to use
  pic_util.s7i.
- The pictures in pic16.s7i and pic32.s7i have been adjusted to be
  useable by pic_util.s7i.
- The pictures cancel_pic, folder_pic and reset_pic have been added
  to pic16.s7i and pic32.s7i.
- A function to convert a pixmap image to BMP format has been added
  to draw.s7i.
- The function getPixelColor has been added to draw.s7i.
- In the example programs all usages of the function clear without
  parameters have been replaced with clear(black). The function
  clear without parameters is deprecated.
- Interpreter and compiler have been improved to support the actions
  DRW_GETIMAGE and DRW_GETIMAGEPIXEL.
- The performance of the function strCLit in str_rtl.c has been
  improved by a factor of 10.
- The function init_bstri_constants in s7c.sd7 has been improved to
  use the function c_literal instead of cCharLiteral. This way it
  cannot happen that a sequence like ??( is interpreted as trigraph
  sequence. As a side effect the performance has been improved also.
- The function init_win_constants in s7c.sd7 has been improved to
  call getImage instead of getPixel. This improves the performance
  dramatically.
- The functions prc_return and prc_return2 in prclib.c have been
  improved to avoid using block_body when it is NULL.
- Spelling errors in chlog.txt, faq.htm, faq.txt, install.txt,
  manual.htm, manual.txt, problems.txt read_me.txt, src/read_me.txt,
  flistutl.c, flistutl.h, heaputl.c, heaputl.h and striutl.c have
  been fixed.
- The function drwGetImage has been added to drw_x11.c and
  drw_win.c.
- The function drwGetImagePixel has been added to drw_rtl.c.
- The program chkccomp.c has been improved to write defines for
  NO_EMPTY_STRUCTS, HAS_SYMLINKS and HAS_FIFO_FILES to version.h.

20131110:
- Compiler and runtime library have been improved to work on Sparc
  64-bit machines under OpenBSD. Thanks go to Brian Callahan, for
  his support and for providing access to his Sparc 64-bit machine.
- The FAQ explanation concerning portability has been improved.
- The new library cc_conf.s7i has been added. This library manages
  configuration values for C compiler and runtime.
- The compiler has been improved to use the library cc_conf.s7i.
- The chapter about the defines used in version.h has been improved
  in src/read_me.txt.
- The type rtlGenerictype has been renamed to generictype in the
  files of the runtime library. Now compiler and runtime library
  both use the name generictype.
- The function checkForLimitedStringLiteralLength, a check for
  trigraph sequences and checks for the presence of getrlimit()
  and siglongjmp() have been added to chkccomp.c.
- The function setupStack has been added to cmd_rtl.c. This function
  tries to raise the stack limit to STACK_SIZE.
- Usages of USE_SIGSETJMP have been renamed to HAS_SIGSETJMP.
- The table key_code has been improved in kbd_inf.c and kbd_poll.c.
  Now the erase char of the terminal interface (VERASE) is always
  returned as backspace (KEY_BS respectively '\8\'). This improves
  the behavior under Cygwin.
- The function utf8_init has been changed in kbd_inf.c and
  kbd_poll.c to assume UTF-8 mode when no locale environment
  variable is set.
- The function msgDigest in msgdigest.s7i has been changed to use
  in-parameters.
- The function configValue has been moved from osfiles.s7i to
  cc_conf.s7i.
- The macro REALLOC_STRI_SIZE_SMALLER has been added to heaputl.h.
  Several usages of REALLOC_STRI_SIZE_OK in the runtime library have
  been changed to usages of REALLOC_STRI_SIZE_SMALLER.
- The compiler has been improved to initialize boolean and
  enumeration elements of structs with the values value.boolvalue
  respectively value.enumvalue. This is necessary to work correctly
  on big-endian systems.
- Interpreter and compiler have been improved to support the actions
  ACT_EQ and ACT_NE.

20131027:
- Compiler and runtime library have been improved to support
  big-endian systems. Thanks go to Brian Callahan, for his support
  and for providing access to his PowerPC Macintosh under OpenBSD.
- The list of source files and the chapter about the defines used in
  version.h have been improved in src/read_me.txt.
- The library tls.s7i has been improved to avoid raising an
  exception, when the remote side closes the socket.
- The program chkccomp.c has been improved to write defines for
  CHECK_INT_DIV_BY_ZERO, INT_DIV_BY_ZERO_SIGNALS and
  DO_SIGFPE_WITH_DIV_BY_ZERO to version.h.
- Documentation comments have been added or improved in fillib.c,
  int_rtl.c, soclib.c, tim_dos.c, tim_unx.c, tim_win.c, ut8lib.c,
  ut8_rtl.c, tls.s7i and bytedata.s7i.
- The generic compare functions bigCmpGeneric, bstCmpGeneric,
  chrCmpGeneric, intCmpGeneric, rflCmpGeneric, setCmpGeneric,
  strCmpGeneric and typCmpGeneric have been improved to work
  endianness neutral. Now they work correctly on little- and
  big-endian systems.
- The generic create functions bigCreateGeneric, bstCreateGeneric,
  drwCreateGeneric, rflCreateGeneric, setCreateGeneric,
  strCreateGeneric and itfCreateGeneric have been improved to work
  endianness neutral. Now they work correctly on little- and
  big-endian systems.
- The new generic copy functions bigCpyGeneric, bstCpyGeneric,
  drwCpyGeneric, fltCpyGeneric, rflCpyGeneric, setCpyGeneric and
  strCpyGeneric have been added. This functions work endianness
  neutral.
- The new generic destroy functions bigDestrGeneric,
  drwDestrGeneric, rflDestrGeneric, setDestrGeneric and
  strDestrGeneric have been added. This functions work endianness
  neutral.
- The functions uintCmpGeneric, intCreateGeneric and intDestrGeneric
  have been renamed to genericCmp, genericCreate respectively
  genericDestr.
- The functions genericCpy, ptrCmp, ptrCmpGeneric, ptrCpyGeneric and
  ptrCreateGeneric have been added to int_rtl.c.
- The function cmdConfigValue in cmd_rtl.c has been improved to
  support the config value DO_SIGFPE_WITH_DIV_BY_ZERO.
- The handling of the option -l in processOptions (file s7.c) has
  been improved to work endianness neutral.
- Several functions have been optimized:
  In infile.c:   get_file_name and get_file_name_ustri
  In prg_comp.c: prgSyobject
  In rfllib.c:   rfl_elemcpy and rfl_idx
  In rfl_data.c: rflElemcpy, rflIdx and rflTail
- The function get_ident and the macro IDENT_TABLE have been changed
  to have an additional progtype argument.
- The function typNum in typ_data.c has been improved to use a
  hashtable.
- In typlib.c the functions typ_num and typ_str have been improved
  to call typNum respectively typStr.
- Support for the actions ACT_ICONV and ACT_ORD has been added to
  interpreter, compiler and runtime library.
- The function id_string2 has been added to datautl.c, and used in
  ref_data.c and typ_data.c.

20131013:
- Libraries for TLS (Transport Layer Security), SSL (Secure Sockets
  Layer) and HTTPS (HyperText Transfer Protocol Secure) support have
  been added. The new libraries are: arc4.s7i, asn1.s7i, cipher.s7i,
  gethttps.s7i, hmac.s7i, pkcs1.s7i, tls.s7i and x509cert.s7i.
- Comparison operators for < (proper subset) and > (proper superset)
  have been added to hashsetof.s7i.
- The type digestAlgorithm and the functions msgDigest, blockSize
  and digestSize have been added to msgdigest.s7i.
- The function hex has been added to bytedata.s7i.
- The example program castle.sd7 has been improved to avoid, that
  an item can be dropped on an illegal place.
- The library make.s7i has been improved to accept the option -p for
  the cp command.
- Documentation comments have been added to sockbase.s7i,
  socket.s7i, atom.c, entutl.c, soclib.c, soc_rtl.c and striutl.c.
- The padding in the message digest functions of msgdigest.s7i has
  been corrected. Now the functions pad nothing instead of 64 bytes,
  when the message length is 55 (mod 64).
- The function getHttp in gethttp.s7i has been improved to use
  a case-insensitive comparison for HTTP header field names.
- In exec.c the functions eval_arg_list and dump_arg_list have been
  improved to avoid reading from freed memory. This occurred in very
  rare cases.
- The functions find_action (in actutl.c), fltParse (in flt_rtl.c),
  cmdConfigValue (in cmd_rtl.c) and find_sysvar (in syvarutl.c)
  have been improved to use the macros MAX_STRI_EXPORT_LEN and
  max_utf8_size.
- Interpreter and runtime library have been improved to ignore the
  signal SIGPIPE. Writing to a broken pipe or socket raises the
  exception FILE_ERROR instead.
- The functions bln_and and bln_or in blnlib.c have been improved
  to return either SYS_TRUE_OBJECT or SYS_FALSE_OBJECT.
- The program chkccomp.c has been improved to determine the
  alignment used by malloc and whether an access to unaligned memory
  succeeds.
- Usages of ALLOC_CHUNK in flistutl.h have been improved to allocate
  aligned memory the same way as malloc returns aligned memory.
- The program chkccomp.c has been improved to define the macro
  'inline', when the C compiler does not support the keyword inline.
- Occurrences of 'INLINE' have been replaced with 'inline' in the
  files analyze.c, atom.c, big_gmp.c, big_rtl.c, chr_rtl.c, exec.c,
  findid.c, infile.c, int_rtl.c, numlit.c, parser.c, rfl_data.c,
  scanner.c, striutl.c, strlib.c, str_rtl.c, syntax.c and ut8_rtl.c.

20130929:
- The functions bStriLe, bytesLe, bStriBe and bytesBe have been
  added to bytedata.s7i. This functions convert an integer to a
  sequence of bytes.
- The compiler has been improved to generate inline code for the
  action STR_PUSH. This action is used when a character is appended
  to a string (with the operator &:= ).
- The function sendGet has been added to gethttp.s7i.
- The functions str_yy_mm_dd and str_hh_mm_ss have been added to
  time.s7i.
- Checks for +:= and -:= have been added to chkbig.sd7.
- Checks for bytesBe and bytesLe have been added to chkint.sd7.
- Checks for & and &:= have been added to chkstr.sd7.
- The function doLocalDeclsOfStatement has been added to the
  compiler. This function is used to simplify the processing
  of various statements.
- The functions that process the statement actions BIG_GROW,
  BIG_LSHIFT_ASSIGN, BIG_MULT_ASSIGN, BIG_RSHIFT_ASSIGN,
  BIG_SHRINK, BLN_CPY, CHR_CPY, CHR_GROW, CHR_SHRINK, ENU_CPY,
  FIL_CPY, FLT_CPY, FLT_DIV_ASSIGN, FLT_GROW, FLT_MULT_ASSIGN,
  FLT_SHRINK, INT_AND_ASSIGN, INT_CPY, INT_GROW, INT_LSHIFT_ASSIGN,
  INT_MULT_ASSIGN, INT_OR_ASSIGN, INT_RSHIFT_ASSIGN, INT_SHRINK,
  INT_URSHIFT_ASSIGN, REF_CPY, RFL_INCL, SET_EXCL, SET_INCL,
  SOC_CPY, STR_PUSH and TYP_CPY in the compiler have been
  simplified.
- The functions int_toBStriBe and int_toBStriLe have been added to
  intlib.c.
- The functions intToBStriBe and intToBStriLe have been added to
  int_rtl.c
- In big_rtl.c and big_gmp.c the functions bigFromBytesBe and
  bigFromBytesLe have been renamed to bigFromByteBufferBe
  respectively bigFromByteBufferLe.
- The performance of the functions bst_cmp (in bstlib.c), bstCmp
  (in bst_rtl.c) and strMult (in str_rtl.c) has been improved.
- The macro 'unlikely' has been added to functions in bst_rtl.c.

20130908:
- The compiler has been improved to use charvalue instead of
  intvalue, when characters are initialized. Thanks go to Brian
  Callahan, for reporting the bug. Btw.: Brian Callahan created an
  openBSD port for Seed7.
- The makefile mk_freebsd.mk has been added to support compilation
  under freeBSD. Thanks go to Pietro Cerutti, for providing it.
- The makefiles mk_clang.mak and mk_freebsd.mk have been improved
  to use the options -ffunction-sections, -fdata-sections and
  -Wl,--strip-debug.
- The functions bStriLe2BigInt, bytesLe2BigInt, bStriBe2BigInt,
  bytesBe2BigInt, bStriLe, bytesLe, bStriBe and bytesBe have been
  added to bytedata.s7i. This functions convert between sequences
  of bytes and bigInteger numbers.
- In bytedata.s7i the functions bytesLeAsInt and bytesBeAsInt have
  been renamed to bytesLe2Int respectively bytesBe2Int.
- Parameter names have been added to seed7_05.s7i, graph_file.s7i,
  graph.s7i, reference.s7i, pac.sd7, tetg.sd7, tet.sd7 and wiz.sd7.
- Checks for the Karatsuba multiplication and the functions bytesBe,
  bytesLe, bytesBe2BigInt and bytesLe2BigInt have been added to
  chkbig.sd7.
- Checks for set membership in character sets have been added to
  chkset.sd7.
- The readability of the bitset initialization in the compiler (s7c)
  has been improved.
- Interpreter and compiler have been improved to support the new
  actions BIG_FROM_BSTRI_BE, BIG_FROM_BSTRI_LE, BIG_TO_BSTRI_BE and
  BIG_TO_BSTRI_LE.
- The functions bigFromBytesBe, bigFromBytesLe, bigFromBStriBe,
  bigFromBStriLe, bigToBStriBe and bigToBStriLe have been added to
  both, big_gmp.c and big_rtl.c.
- In big_gmp.c and big_rtl.c the function bigImport has been
  rewritten to use bigFromBytesBe.
- The readability of the function uint2_mult in int_rtl.c has been
  improved.
- The program chkccomp.c has been improved to check for a ones
  complement inttype and if casting can be used to get the element
  of a union.
- Several makefiles have been adjusted to use 'cp -p' instead of
  'cp -a'. The cp command of openBSD does not support -a.
- The function bigRand in big_rtl.c has been improved to avoid that
  a random number is outside the required range.

20130820:
- The library sha1.s7i has been renamed to msgdigest.s7i.
- The message digest and secure hash functions md4, md5, sha224 and
  sha256 have been added to msgdigest.s7i.
- The new library propertyfile.s7i, which defines functions to
  read a property file into a hash table, has been added.
- The performance of the random number generator has been improved.
  The function uint2_mult in int_rtl.c is now defined as inline
  function. The macro 'unlikely' has been added to describe that the
  initialization of the random number generator is unlikely.
- The function uint_mult has been added to int_rtl.c and used in
  big_rtl.c.
- The macro 'unlikely' has been added to functions in flt_rtl.c.
- The function bytesLeAsInt has been added to the library
  bytedata.s7i.
- In bytedata.s7i the function int64AsBytesBytesLe has been renamed
  to int64AsEightBytesLe.
- A variant of the function skipWhiteSpace has been added to the
  library scanfile.s7i.

20130805:
- The functions hashCode in complex.s7i, duration.s7i, rational.s7i
  and time.s7i have been improved to avoid an integer overflow.
  Thanks to Pietro Cerutti, for reporting this problem.
- The description of the Seed7 installation in doc/install.txt has
  been improved.
- The new library sha1.s7i, which defines a message digest with the
  SHA-1 secure hash algorithm, has been added.
- Definitions of the operators &:= and |:= have been added to
  bin32.s7i.
- The functions int64AsBytesBytesLe, int64AsEightBytesBe and
  bytesBeAsInt have been added to bytedata.s7i.
- Interpreter and compiler have been improved to support the actions
  INT_AND_ASSIGN and INT_OR_ASSIGN.
- A bug in the function conText (file con_win.c) has been fixed.
- Debug code has been added to kbd_inf.c and kbd_poll.c.
- The makefile mk_cygw.mak has been improved to avoid problems with
  the console keyboard.

20130722:
- Spelling errors in chlog.txt, faq.htm and faq.txt have been fixed.
- The function conText (in con_win.c) has been improved to work
  correctly for long strings. The underlying function WriteConsoleW
  fails for string lengths above some limit between 26000 to 32000.
- The functions find_window, remove_window, gkbGetc, gkbKeyPressed,
  gkbButtonPressed, gkbRawGetc, gkbWindow, gkbButtonXpos and
  gkbButtonYpos have been moved from drw_win.c to the new file
  gkb_win.c.
- In the functions drwPCircle, drwPFCircle, drwPFEllipse and
  drwFPolyLine (file drw_win.c) wrong usages of inIntRange have been
  replaced with better code.
- In con_win.c the table map_key has been improved such that kbdGetc
  recognizes the key F12.
- In gkb_x11.c the functions find_window, enter_window and
  remove_window have been improved.
- The makefiles mk_bcc32.mak, mk_bccv5.mak, mk_mingc.mak,
  mk_mingw.mak, mk_msvc.mak, mk_msys.mak and mk_nmake.mak have been
  changed to use the new file gkb_win.c.
- The program chk_all.sd7 has been improved to call chkhsh.sd7.
- The program chkhsh.sd7 has been improved.
- The compiler has been improved to generate compare functions with
  the correct prototype.
- The functions bitSize and process_generic_cmp_declaration have been
  added to s7c.sd7.
- In flt_rtl.c the function fltCpy has been renamed to fltCpyGeneric.
- The functions dump_hash and dump_helem have been added to
  hsh_rtl.c.
- The function new_type in typeutl.c has been changed to add the new
  type to the parameter owningProg instead of the global prog.

20130704:
- A wordfile for Ultraedit and a syntax definition file for Textpad
  has been added. Many thanks to Renato Lenzi for providing it. This
  files can be found also on his great italian page about Seed7.
- A compilation problem with DJGPP in fil_rtl.c has been fixed
  (thanks to "Rugxulo" for pointing it out).
- The keyboard read function getc(KEYBOARD) has been improved to
  accept all Unicode characters also under Linux/Unix/BSD. Up to now
  the function did only accept Latin-1 characters.
- The keyboard read function getc(KEYBOARD) has been improved to
  accept usages of the mouse wheel also under Windows.
- Checks for correct UTF-8 encoding of the program source have been
  added. Overlong UTF-8 encodings, UTF-16 surrogate characters and
  missing UTF-8 continuation bytes result in a compile time error.
- The example program err.sd7, which checks compile time error
  messages, has been improved.
- The FAQ explanations concerning Unicode and automatic casts have
  been improved.
- Documentation comments have been added to gzip.s7i and make.s7i.
- The example programs gkbd.sd7 and kbd.sd7 have been improved to
  write the character, if it is printable.
- The example programs pairs.sd7, panic.sd7, tetg.sd7, sokoban.sd7,
  sudoku7.sd7, mandelbr.sd7 and wator.sd7 have been changed to use
  proportional Seed7 pixmap fonts.
- Tests for the functions lower and upper with cyrillic letters have
  been added to chkstr.sd7.
- The libraries console.s7i, pixmap_file.s7i, graph_file.s7i,
  file.s7i, editline.s7i, echo.s7i, null_file.s7i, external_file.s7i,
  strifile.s7i, stritext.s7i, tee.s7i, window.s7i, reverse.s7i,
  lower.s7i and upper.s7i, have been improved to work with
  proportional fonts. Proportional font support uses the functions
  moveLeft, erase, backSpace, cursorOn and cursorOff.
- The vector font cronos16 has been improved to look more similar to
  the font cronos27.
- The bitmap fonts stdFont10, stdFont12, stdFont14, stdFont16,
  stdFont18, stdFont20 and stdFont24 have been improved.
- The vector fonts vecFont10 and vecFont18 have been adjusted to look
  like the corresponding bitmap fonts.
- The fonts stdFont8, stdFont9 and cronos27 have been improved to use
  less spacing between the characters.
- In graph_file.s7i the logic of a writeln after a setPosXY has been
  changed. Now the writeln moves one line downward relative to the
  position given with setPosXY.
- A description of the subrange operator, which gets an array slice
  from a position with maximum length, has been added to the manual.
- A table to map keysym values to Unicode and the function
  mapKeysymToUnicode, which does a binary search in this table, have
  been added to gkb_x11.c.
- The function gkbGetc in gkb_x11.c has been improved to work without
  recursion, to use mapKeysymToUnicode and to recognize cursor keys
  in combination with ALT, NUMLOCK and SHIFT.

20130616:
- Documentation comments have been added or improved in bigfile.s7i,
  char.s7i, clib_file.s7i, complex.s7i, external_file.s7i, file.s7i,
  float.s7i, hash.s7i, integer.s7i, shell.s7i, string.s7i, utf16.s7i,
  osfiles.s7i, rational.s7i, arrlib.c, blnlib.c, bstlib.c, arr_rtl.c,
  big_gmp.c, big_rtl.c, bst_rtl.c, chrlib.c, chr_rtl.c, cmdlib.c,
  cmd_rtl.c, fillib.c, fil_rtl.c, fltlib.c, flt_rtl.c, hshlib.c,
  hsh_rtl.c, int_rtl.c, pol_sel.c, pol_unx.c, setlib.c, set_rtl.c,
  strlib.c, str_rtl.c.
- The functions lower and upper in string.s7i and char.s7i have been
  improved to use the default Unicode case mapping. In other words:
  conversions to lower respectively upper case works for all Unicode
  characters, which have a case mapping. Characters without case
  mapping are left unchanged. The mapping is independent from the
  locale. Individual character case mappings cannot be reversed,
  because some characters have multiple characters that map to them.
- In the library deflate.s7i the performance of the deflate
  compression has been improved by a factor between 5 and 10.
- The performance of the functions str_cmp, str_range and str_substr
  in strlib.c has been improved.
- The performance of the functions strCompare, strRangeSlice,
  strRange, strSubstrSlice and strSubstr in str_rtl.c has been
  improved.
- Tests for the string functions compare, lower and upper and for the
  index operations head, tail, range and substring have been added to
  chkstr.sd7.
- The definition of the macro arrayMaxPos in common.h has been
  improved and usages of the macro have been added to arrlib.c and
  arr_rtl.c.
- The compiler has been improved to support the actions HSH_IDX2 and
  HSH_UPDATE.
- The compiler has been improved to inline code for the actions
  STR_HASHCODE, STR_RANGE and STR_SUBSTR.
- The function intStrToBuffer has been added to int_rtl.c. This
  function allows conversions from integer to string, without
  memory allocation.
- The compiler has been improved to take advantage of the function
  intStrToBuffer.
- The functions getGenericValue, getGenericValueToResultExpr,
  getTempVariable, beginCastGeneric, endCastGeneric,
  beginCastGenericToResultExpr and endCastGenericToResultExpr have
  been added to the compiler.
- The functions hsh_idx2 and hsh_update have been added to hshlib.c.
- The functions hshIdxAddr2 and hshUpdate have been added to
  hsh_rtl.c
- The macro hashCode has been defined in str_rtl.h and used in
  str_rtl.c (function strHashCode) and strlib.c (function
  str_hashcode).
- The program chkccomp.c has been improved to write a definition of
  the macro INLINE to version.h
- The deprecated function 'read_dir' has been removed from the
  library "osfiles.s7i". The replacement of 'read_dir' is 'readDir'.
- The functions arrHeadTemp, arrRangeTemp and arrSubarrTemp in
  arr_rtl.c have been improved.

20130602:
- The implementation of the type integer has been changed to use a
  64-bit value.
- Documentation comments have been added to bigint.s7i, integer.s7i,
  string.s7i, arr_rtl.c, big_gmp.c, biglib.c, big_rtl.c, flt_rtl.c,
  intlib.c, int_rtl.c, set_rtl.c and str_rtl.c.
- The new library bin32.s7i, which defines bit operations for 32-bit
  values, has been added.
- The new library crc32.s7i, which supports the CRC-32 cyclic
  redundancy check, has been added.
- The new library deflate.s7i, which supports the deflate compression
  algorithm, has been added.
- The library binary.s7i has been renamed to bytedata.s7i. The
  functions get_asciiz, get_uint16_le, get_uint32_le, get_uint16_be
  and get_uint32_be have been renamed to getAsciiz, getUInt16Le,
  getUInt32Le, getUInt16Be and getUInt32Be respectively. Definitions
  of the functions int16AsTwoBytesLe, int32AsFourBytesLe,
  int16AsTwoBytesBe and int32AsFourBytesBe have been added.
- The functions getBitLe, getBitsLe, getNonCompressedBlock,
  getLiteralOrLength, getDistance, decodeLength, decodeDistance,
  decodeFixedHuffmanCodes, getHuffmanValue, computeConversionTable,
  decodeDynamicHuffmanCodes, processCompressedBlock and inflate have
  been moved from gzip.s7i to the new library inflate.s7i.
- The functions gzip, openGzipFile, close and write have been added
  to the library gzip.s7i.
- The functions 'name' and 'path' have been added to the library
  progs.s7i.
- The function openStrifile has been added to strifile.s7i.
- The library tar.s7i and the example program tar7.sd7 have been
  improved to allow the creation of compressed archives.
- The compiler has been improved to support the actions BIG_CONV,
  BIN_AND, BIN_OR, BIN_XOR, INT_AND, INT_OR, INT_XOR, INT_URSHIFT,
  INT_URSHIFT_ASSIGN, PRG_OWN_NAME and PRG_OWN_PATH.
- Optional checks for integer shift operations have been added to
  the compiler.
- The function bigFromInt64 and bigToInt64 in big_gmp.c have been
  improved.
- Several functions in big_gmp.c have been improved to free temporary
  values with mpz_clear().
- The function big_conv() has been added to biglib.c.
- The functions drw_image and drwRtlImage have been improved.
- The functions drwImage in drw_win.c and drw_x11.c have been
  improved.
- The meaning of the actions PRG_NAME and PRG_PATH has changed. The
  new actions PRG_OWN_NAME and PRG_OWN_PATH are used as replacement.
- The functions strRPos2, strRIPos2 and strRepl2 have been added to
  str_rtl.c. This functions use a modified Boyer–Moore string search
  algorithm.
- Usages of the macro arraySize have been added to drwlib.c,
  drw_rtl.c, libpath.c and prg_comp.c.
- The macro arrayMaxPos has been defined in common.h and used in
  arrlib.c and arr_rtl.c.

20130519:
- The support for K&R C has been removed. Now an ANSI C compiler is
  required to compile Seed7. For many years all officially supported
  C compilers have been ANSI C compilers.
- The manual chapters describing rational, bigRational and the
  functions min and max have been improved.
- The functions min and max have been added to bigint.s7i, bigrat.s7i
  and rational.s7i.
- Addition and subtraction operators in rational.s7i and bigrat.s7i
  have been improved to reduce the result.
- The parse operator in bigrat.s7i has been improved to process
  negative rational literals correctly.
- The function round in bigrat.s7i has been fixed.
- Documentation comments in boolean.s7i, float.s7i and integer.s7i
  have been improved.
- A standard bitmap font, with capital height of 8, has been defined
  in the new library stdfont8.s7i.
- Definitions of min and max have been removed from dnafight.sd7 and
  dna_base.s7i.
- The example program ftp7.sd7 has been improved to allow linewise
  editing with history.
- The code generation for the actions HSH_CPY and HSH_IDX in the
  compiler has been improved.
- In arrlib.c, hshlib.c, arr_rtl.c and hsh_rtl.c several functions,
  which enlarge an array, have been improved to avoid overflows. This
  overflows could happen when the array size or the new maximum index
  are computed.
- Definitions of the macros inLongRange, castToLong, inTimeTRange,
  arrayIndex, bitsetSize, bitsetSize2 and bitsetIndex have been added
  to common.h.
- Functions in setlib.c and set_rtl.c have been improved to use the
  macros bitsetSize, bitsetSize2 and bitsetIndex.
- Functions in drw_x11.c and drw_win.c have been improved to check
  for range violations and to cast parameters.
- The functions to draw an image (drwImage, drw_image, drwRtlImage)
  in drw_dos.c, drw_win.c, drw_x11.c, drw_rtl.c and drwlib.c have
  been improved to use image data with int32type elements.
- The function socInputReady in soc_rtl.c has been improved to take
  the seconds and microsecond parameter into account.
- In tim_rtl.c the functions timFromTimestamp, timFromIntTimestamp,
  timToTimestamp and timSetLocalTZ have been improved.

20130505:
- Functions to compare arrays (compare, <, >, <=, >=) have been added
  to the library array.s7i.
- In seed7_05.s7i the functions hashCode and compare have been
  defined for enum types.
- In the library bigrat.s7i the operator parse has been improved. Now
  the parse operator accepts decimal numbers with repeating decimals.
- The function integer has been added to the library integer.s7i.
  This function converts a numeric string, with a specified radix, to
  an integer.
- The function bigInteger has been added to the library bigint.s7i.
  This function converts a numeric string, with a specified radix, to
  a bigInteger.
- The files encoding.s7i, gethttp.s7i, scanfile.s7i, scanstri.s7i,
  xml_ent.s7i and bas7.sd7 have been changed to use the new function
  integer instead of toInt (toInt was an undocumented internal
  function).
- Checks for the function integer have been added to chkint.sd7.
- Checks for the function bigInteger have been added to chkbig.sd7.
- The operator sci has been added to to the library complex.s7i. This
  operator converts a complex to a string in scientific notation.
- The compiler (s7c) has been improved to support the actions
  BIG_PARSE_BASED, TYP_CMP, ENU_CPY, ENU_CREATE and GEN_DESTR.
- The memory management in the interpreter has been improved. Now it
  is possible that a destructor is called and the object memory is
  not freed. This is used to free the memory of struct objects only,
  when the usage_count reaches zero.
- The UNUSED flag was defined in data.h and used to monitor if the
  object memory can be freed.
- The compiler has been improved to call the destructor for local
  interface objects (In process_local_declaration process_destr_call
  is called for INTERFACEOBJECT objects).
- The compiler has been improved to initialize set constants, that
  are part of a data structure (In walk_const_list SETOBJECT objects
  are added to set_const_table).
- The runtime library has been improved to use the action GEN_DESTR
  instead of PRC_NOOP as destructor for integer and other simple
  data types.

20130421:
- The FAQ explanation concerning garbage collection has been
  improved.
- The manual chapters describing the introduction, EBNF, literals
  (for integer, bigInteger, float, char and string), set operations
  and file I/O have been improved.
- Operations, to get an array slice with a specified length, have
  been added to the libraries array.s7i and idxarray.s7i.
- Array aggregates for arrays with a given start index have been
  added to idxarray.s7i.
- Functions for binomial coefficient and modular exponentiation have
  been added to the library bigint.s7i.
- A definition of an empty set with the name {} has been added to
  bitset.s7i.
- Functions to compute the minimum and maximum have been added to the
  libraries integer.s7i and float.s7i.
- Documentations comments in keybd.s7i have been improved.
- In pixmap_file.s7i the logic of a writeln after a setPosXY has been
  changed. Now the writeln moves one line downward relative to the
  position given with setPosXY.
- A pound symbol has been added to several bitmap fonts.
- A standard bitmap font, with capital height of 9, has been defined
  in the new library stdfont9.s7i.
- Checks for the factorial function and the binomial coefficient have
  been added to chkbig.sd7.
- The comanche webserver has been improved to accept cookies.
- The compiler has been improved to generate better code for the
  allocation of array memory.
- The function arrMalloc in arr_rtl.c has been improved to avoid an
  overflow, when the size of the memory is computed.
- The functions arrSubarr and arrSubarrTemp have been added to
  arr_rtl.c.
- Support for the action ARR_SUBARR has been added to the compiler.
- The macros arraySize and arraySize2 have been defined in common.h
  and used in arrlib.c, arr_rtl.c, arrutl.c, cmdlib.c, cmd_unx.c and
  cmd_win.c.
- Definitions of INT64TYPE_MIN, INTTYPE_MIN and MIN_MEM_INDEX have
  been added to common.h.

20130401:
- The FAQ explanations concerning, 'in' parameters and different
  behavior of val and ref parameters, have been improved.
- The keyboard read function getc(KEYBOARD) has been improved to
  support more function keys and to accept Unicode characters also
  under Windows.
- The program calc.sd7 has been improved to accept and display
  Unicode characters.
- The automatic memory management has been improved to work also
  for the files managed by pollData.
- The function openEditLineLatin1 has been added to editline.s7i.
  Only Latin-1 characters are accepted and written to ''outFile''.
  Unicode characters beyond ISO Latin-1 (ISO-8859-1) are ignored.
- In file.s7i the function writeln(file, string) has been defined as
  DYNAMIC (virtual) function. This allows that the implementation
  function writeln(socket, string) sends string and '\n' together.
- The definition of keys in keybd.s7i have been changed such that
  function keys are outside the range of Unicode characters.
- The new library keydescr.s7i, which defines a hash table with
  descriptive text for function keys, has been added.
- The implementation function writeln(null_file, string) has been
  added to null_file.s7i. This function is used by many derived
  types.
- An implementation function of writeln(socket, string) has been
  added to socket.s7i. This function sends string and '\n' together.
- Definitions of writeln (without string parameter) have been removed
  from external_file.s7i, socket.s7i and utf8.s7i.
- The example programs bas7.sd7, gkbd.sd7 and kbd.sd7 have been
  changed to use the hash keyDescription (defined in keydescr.s7i).
- Tests for string assignment and string append (operator &:= ) have
  been added to chkstr.sd7.
- The function bigStr in big_rtl.c has been improved to realloc the
  string to the correct size.
- The function determineEnvironDefines in chkccomp.c has been
  improved.
- The function itf_destr in itflib.c has been improved to cooperate
  with the function close_stack (defined in name.c).
- The function kbdKeyPressed in kbd_inf.c has been improved to never
  wait for input (calls of tcsetattr() were fixed, see below).
- In pol_unx.c and pol_sel.c the functions addCheck, removeCheck,
  polCpy, polCreate, polDestr and polClear have been improved to use
  the function pointers incrUsageCount and decrUsageCount from
  fileObjectOps.
- The function initPollOperations has been added to pol_unx.c,
  pol_sel.c and pol_dos.c.
- In str_rtl.c the functions strAppend and strCopy have been changed
  to use SLICE_OVERLAPPING instead of GET_SLICE_ORIGIN.
- In str_rtl.c the functions strHeadSlice, strRangeSlice,
  strSubstrSlice and strTailSlice have been improved to avoid
  (mis)using the string capacity. Now the capacity of a slice is set
  to zero. Before the origin of a slice was stored in the capacity.
- The function print_real_value in traceutl.c has been improved to
  print interface values with more detail.
- Support for additional function keys has been added to kbd_inf.c,
  kbd_poll.c, cap_def.h, trm_cap.c and trm_inf.c.
- The files kbd_inf.c and kbd_poll.c have been improved to use read()
  instead of fread().
- The files kbd_inf.c and kbd_poll.c have been improved to take a
  weakness of tcsetattr() into account. The function tcsetattr() may
  return success, although not all changes could be carried out.
  Now the calls of tcsetattr() are done via the new functions
  term_descr_equal, tcset_term_descr and tcset_vmin_vtime.
- The compiler has been improved to create and use cpy_... functions
  for the interface assignment (action ITF_CPY).
- The free list management for strings has been improved to allow
  different maximum list lengths for strings with different capacity.
- Definitions of databasetype and sqlstmttype have been added to
  common.h. This are the first steps towards database support.

20130317:
- The FAQ explanations concerning, what kind of programs can be
  written in Seed7 and the automatic memory management of Seed7, have
  been improved.
- The compiler (s7c) has been improved to use the function
  strConcatN, when three or more strings are concatenated.
- The compiler has been improved to define and use dynamic (virtual)
  destructors for interface types. The function itfCreate is used as
  constructor.
- In the compiler the function init_string_constants_with_slices has
  been improved, to store the characters of string constants with
  more density.
- The compiler functions prepare_typed_result, process_itf_cpy,
  process_itf_to_interface and process_ref_trace have been improved.
- In str_rtl.c the functions strIPos2 and strPos2 have been added.
  This functions use a modified Boyer–Moore string search algorithm.
- The performance of the function replace2 (library string.s7i) has
  been improved.
- The example programs tetg.sd7 and tet.sd7 have been changed to
  abstain from using an outdated language feature. Now this programs
  can be compiled.
- Parameter names have been added to seed7_05.s7i, pixmap_file.s7i,
  bitset.s7i, dialog.s7i, hash.s7i, console.s7i and string.s7i.
- In sctlib.c and itflib.c the functions sct_cpy, sct_create,
  sct_destr, itf_cpy, itf_cpy2, itf_create, itf_create2, itf_destr
  and itf_to_interface have been improved to use reference counting
  (usage_count) for all objects of the category STRUCTOBJECT.
- The support for the actions ITF_TO_HEAP and REF_BUILD has been
  removed from the interpreter.
- Support for the action REF_GETREF has been added to interpreter and
  compiler.
- The functions itf_to_heap (in itflib.c) and ref_build (in reflib.c)
  have been removed.
- The function refItftosct (in ref_data.c) has been renamed to
  refItfToSct. The function ref_itftosct (in reflib.c) and the
  compiler have been changed to use the new function name.
- The types smallpriortype and prior_type have been replaced by
  prioritytype in common.h, data.h, expr.c, expr.h, findid.h,
  syntax.c, token.c and token.h.
- In itf_rtl.c the function itfCreate has been added and the function
  itfDestr has been removed.
- Usages of the function stri_charpos in analyze.c and prclib.c have
  been replaced by calls of strChPos.
- In executl.c the function crea_struct has been introduced and the
  function any_var_initialization has been replaced by the functions
  sct_elem_initialization and arr_elem_initialization.
- The function prot_block has been added to traceutl.c.

20130303:
- The library editline.s7i has been added. This library defines a
  file type for linewise editing with history.
- The manual chapter describing types, especially the type program,
  has been improved.
- The calc.sd7 example has been improved to allow linewise editing.
- The handling of the internal program representation in interpreter
  and compiler has been improved to free most unused memory.
- The handling of the functions prgGlobalObjects, refArrToList,
  refHshDataToList, refHshKeyToList, refLocalVars and refSctToList
  in compiler and run-time library has been improved to free unused
  memory.
- The stack trace has been improved to display infix operators
  better and to write parameter names.
- The compiler has been improved to support the action TYP_FUNC.
- The functions copy_expression and free_expression in listutl.c
  have been optimized.
- The function substitute_params has been added to match.c .
- The functions free_params and free_name_list have been added to
  name.c .
- The function dump_list has been added to objutl.c .
- The function copy_params has been added to entutl.c .
- The functions prot_float and prot_params have been added to
  traceutl.c .
- The functions free_type and close_type have been added to
  typeutl.c .
- The free list management has been improved to be configurable
  in config.h.
- The memory management in heaputl.h has been improved to work with
  and without DO_HEAPSIZE_COMPUTATION.
- The function free_file and remove_prog_files have been added to
  infile.c.
- The functions itf_cpy and itf_cpy2 in itflib.c have been improved
  to support assigning forward declared objects to an interface.
- The function emptylist and the macro to_empty_list have been
  renamed to free_list and free_list2.
- In prg_comp.c the function prgDeclObjects has been renamed to
  prgGlobalObjects.
- In ref_data.c the functions refArrmaxidx, refArrminidx,
  refArrtolist, refScttolist and refHshKeyToList have been renamed
  to refArrMaxIdx, refArrMinIdx, refArrToList, refSctToList and
  refHshKeysToList.
- In ref_data.c the functions refResult, refResini and refSetParams
  have been improved to raise RANGE_ERROR when the argument is NULL
  or when it is not a BLOCKOBJECT.
- In progs.s7i the functions sys_var, error_count, declared_objects,
  params, setParams, func_result, func_res_init, local_consts,
  local_vars, array_to_list, array_min_index, array_max_index,
  struct_to_list, hash_data_to_list, hash_key_to_list,
  interface_to_struct, obj_number, type_number and match_obj have
  been renamed to sysVar errorCount, globalObjects, formalParams,
  setFormalParams, resultVar, resultInitValue, localConsts,
  localVars, arrayToList, arrayMinIdx, arrayMaxIdx, structToList,
  hashDataToList, hashKeysToList, interfaceToStruct, objNumber,
  typeNumber and typeObject.
- In seed7_05.s7i the functions is_func, is_varfunc, result_type and
  is_derived have been renamed to isFunc, isVarfunc, resultType and
  isDerived.

20130217:
- The description of exceptions in the manual has been improved.
- The handling of the internal program representation in interpreter
  and compiler has been improved to free more unused memory.
- The handling of the actions PRG_FIL_PARSE and PRG_STR_PARSE in the
  Seed7 compiler (s7c) has been improved to support releasing unused
  programs.
- The function prgDestr (in prg_comp.c) has been improved to free
  (most of) the data used by a program. Several functions, which need
  to free program data, have been improved to call prgDestr.
- The functions prgCpy (in prg_comp.c) and prg_cpy (in prglib.c) have
  been improve to free a program when the usage_count reaches zero.
- The functions getPixmap in draw.s7i have been improved.
- The functions decl_any (in analyze.c), dcl_const and dcl_var (both
  in dcllib.c) have been improved to free unused expressions.
- The actions ARR_BASELIT, ARR_BASELIT2, ARR_TIMES, ARR_GEN, ARR_PUSH
  and ARR_EXTEND in the interpreter (file arrlit.c) have been
  improved to work correctly for arrays with interface elements.
- In blockutl.c the functions free_locobj, free_body, free_block and
  free_local_consts have been added or improved.
- In entutl.c the function free_entity has been improved to free also
  syobject and name_list.
- The function close_entity has been added to entutl.c. This function
  frees the list of inactive entities.
- In executl.c the function destroy_local_init_value has been added
  and the function destroy_object_list has been removed.
- The parameter dest_type has been added to the function
  any_var_initialization (file executl.c).
- The functions heap_statistic (in flistutl.c) and rtlHeapStatistic
  (in heaputl.c) have been improved to write information about
  pollData elements.
- The functions free_ident and close_idents in identutl.c have been
  improved.
- The function free_expression has been added to listutl.c.
- The function pop_object in name.c has been improved to add inactive
  entities to a list of inactive entities
- The function close_stack in name.c has been improved to reverse the
  list of local objects and to dump and free the local objects.
- The function dump_temp_value, which releases a value without
  releasing the object, has been added to objutl.c.
- The function free_args has been added to prg_comp.c.

20130203:
- Files to generate man pages for Seed7 interpreter and compiler have
  been added to the documentation (files doc/s7.1 and doc/s7c.1).
- The makefiles have been improved to support the targets distclean
  and test.
- The operators radix and RADIX have been added to the libraries
  integer.s7i and bigint.s7i. This operators convert an integer
  respectively bigInteger to a string. The conversion uses the
  numeral system with the given base.
- The variants of the function str, which have a second parameter to
  specify a numeric base, are deprecated now and will be removed in a
  future release. The operators radix and RADIX should be used
  instead.
- Interpreter and compiler have been improved to support the
  operators radix and RADIX.
- In chkint.sd7 checks for the function str with base have been
  replaced with checks for the operators radix and RADIX.
- Usages of the function str with base have been changed to usages
  of the operators radix or RADIX in the files gethttp.s7i, bas7.sd7,
  encoding.s7i and s7c.sd7.
- Errors in bas7.sd7, concerning the function VARPTR and the
  statement OPEN, have been fixed.
- The function getLineWithMacrosApplied in makedata.s7i has been
  improved to ignore space and tab characters after an escaped
  newline.
- Result variables have been renamed in various libraries and example
  programs.
- The currency sign character has been added to stdfont10.s7i,
  stdfont12.s7i, stdfont14.s7i, stdfont16.s7i, stdfont18.s7i,
  stdfont20.s7i, stdfont24.s7i, vecfont10.s7i and vecfont18.s7i.
- The file chkccomp.c has been improved to define a macro that
  describes what happens, when a cast of a float to int overflows.

20130120:
- Interpreter and compiler have been improved to support the option
  -l. This option allows adding a directory to the include library
  search path (e.g.: -l ../lib).
- The compiler (s7c) has been improved to support the option -b.
  With -b the directory of the Seed7 runtime libraries can be
  specified (e.g.: -b ../bin).
- The target s7c in the makefiles has been changed to take advantage
  of the options -l and -b. Now packages can compile the Seed7
  compiler without a post install step.
- Additional function variants of parseFile, parseStri and execute
  have been added to the library progs.s7i. The new functions allow
  a detailed specification of parse and execution options.
- The library gzip.s7c has been improved to decode also blocks with
  fixed Huffman codes. This type of block is almost never used since
  dynamic Huffman codes compress better.
- The parsing of bigInteger literals has been improved to support
  literals with bases other than 10 (e.g.: 16#FEDCBA98765434210_).
- The integer and bigInteger functions str (conversion to string)
  have been changed to use lower case characters for digits larger
  than 9. Now str(48879, 16) returns "beef" instead of "BEEF".
- The program make7.sd7 and the library make.s7i have been improved
  to support multiple targets and the option -C.
- The Seed7 compiler has been improved to generate special inline
  code for the case that the C floating point division by zero does
  not result in Infinity, -Infinity or NaN (not a number).
- The functions chkLiteral and chkBitLength as well as checks for
  shifts with negative shift count have been added to the program
  chkbig.sd7.
- The function check_division as well as checks for the operator
  /:= (in check_nan) have been added to the program chkflt.sd7.
- The function check_str in chkint.sd7 has been improved to check
  the new behaviour of the function str with a give base.
- The makefile mk_clang.mak has been added to support compilation
  with the clang C compiler.
- The explanations of possible compilation errors in src/read_me.txt
  have been improved.
- The functions interpreterPath and callOwnProgram have been removed
  from the libraries environment.s7i respectively shell.s7i. This
  functions were not used in any example program.
- The support for the interpreter option -m (use less memory during
  the analyzing phase) has been removed. On many systems it was a
  noop anyway.
- Result variables have been renamed in various libraries and example
  programs.
- The functions find_include_file, print_lib_path, append_to_lib_path
  and init_lib_path have been moved from infile.c to the new file
  libpath.c.
- The function gen_rtl_array has been defined in the new file
  arrutl.c. The function is used in the files cmdlib.c (functions
  cmd_pipe2, cmd_pty, cmd_start_process) and prglib.c (functions
  prg_exec, prg_fil_parse, prg_str_parse).
- The interpreter/compiler improvements (option -l) and the new
  function variants in progs.s7i have been realized with changes in
  prg_comp.c, analyze.c, data.h, infile.c, infile.h, info.c, option.h
  and s7.c.
- The functions prgExec, prgFilParse and prgStrParse in prg_comp.c
  have been improved to support additional parse and execution
  options.
- The function interpr has been renamed to interpret and moved from
  exec.c to prg_comp.c.
- The function copy_args has been moved from prclib.c to prg_comp.c.
- In traceutl.c the function set_trace has been changed and the
  function set_trace2 has been removed. The functions mapTraceFlags,
  mapTraceFlags2 and set_protfile_name have been added.
- The functions uBigMultiplyAndAdd and bigParseBased have been added
  to big_rtl.c:
- In big_gmp.c the functions bigBitLength, bigLShift, bigRShift,
  bigLShiftAssign, bigRShiftAssign, bigParse, and bigToInt32 have
  been improved and bigParseBased has been added.
- To support bigInteger literals with base the file numlit.c has been
  changed. The function readBigBased has been added and readinteger
  has been removed. Several functions in numlit.c have been renamed.

20130105:
- The Seed7 interpreter was renamed. The new name of the Seed7
  interpreter is s7.
- Manual, FAQ, read_me files and several example programs were
  updated to use the new name of the Seed7 interpreter (s7).
- The build process of a package can compile interpreter and compiler
  with (xx and yy must be replaced with a path):
    make S7_LIB_DIR=xx SEED7_LIBRARY=yy depend s7 s7c
- The function drwOpen in drw_win.c was improved to hide the console
  window, when the program was not started from a console.
- Descriptions of the operators 'sci' and 'exp' were added to the
  manual.
- Documentation comments were added to clib_file.s7i.
- In pixmap_file.s7i the functions for pixmapFontFiles were improved.
- Interpreter and compiler were improved to allow using winmain as
  main function.
- In cmd_win.c the function prepareCommandLine was improved and in
  the function cmdStartProcess the flag wShowWindow was changed to 1.
- The file hi.c was renamed to s7.c.
- In striutl.c the function escape_command was changed to quote
  commands with special characters under Windows.
- In striutl.c the function cp_to_command was improved to do a
  quoting under Windows, even when there are no parameters.
- Parameter names were added to null_file.s7i, osfiles.s7i, time.s7i,
  pixmapfont.s7i, progs.s7i, reference.s7i, seed7_05.s7i, shell.s7i,
  stritext.s7i, text.s7i, rever.sd7 and snake.sd7.

20121221:
- The Seed7 compiler (s7c) was improved to support constant pixmaps
  (constants with the type PRIMITIVE_WINDOW).
- The Seed7 compiler was improved to omit array constant
  declarations and initializations for unused array constants.
- Result variables were renamed in various libraries and example
  programs.
- The function DRAW_GETPIXEL in graph.s7i was renamed to getPixel.
- The function imagePixmap in draw.s7i was changed to have one
  parameter instead of two.
- Pictures of a grating and a vampire were removed from castle.sd7,
  pairs.sd7 and shisen.sd7 and added to pic16.s7i and pic32.s7i.
- The function getValue was overloaded for PRIMITIVE_WINDOW values
  in the library progs.s7i.
- Documentation comments were added to the operators & and <& in the
  library string.s7i.
- Interpreter and compiler were improved to support the action
  DRW_VALUE. The function drw_value was added to drwlib.c and the
  function drwValue was added to ref_data.c.
- The functions drw_cpy and drwCpy in drwlib.c respectively drw_rtl.c
  were improved to manage the usage_count for assignments like A := A
  correctly.
- The new function drwRtlImage was added to drw_rtl.c.
- A check for the window close button (X) was added to the function
  gkbKeyPressed in drw_win.c.
- The dummy function drwImage in drw_win.c was replaced with a real
  implementation of drwImage.
- The function drwImage was changed to have one parameter instead of
  two in drw_drv.h, drw_dos.c, drw_win.c and drw_x11.c.
- The function drwImage in drw_x11.c was improved to call dra_init(),
  when necessary.

20121212:
- The Seed7 compiler was renamed. The new name of the Seed7 compiler
  is s7c.
- Manual, FAQ, read_me files and several example programs were
  updated to use the new name of the Seed7 compiler (s7c).
- A description of ltrim and rtrim and some links were added to the
  manual.
- The library make.s7i and the example program make7.sd7 were
  improved to execute make commands with predefined macros.
- The library makedata.s7i was improved to support dependencies
  which contain a space.
- The library make.s7i was improved to support the command cp -a.
- A variant of the function popen, with the parameters 'command' and
  'parameters', was added to shell.s7i.
- An explanation, why & and <& are defined for string concatenation,
  was added to the FAQ.
- The program tar7.sd7 was improved to accept also DOS paths for all
  file arguments.
- Documentation comments were added to progs.s7i and reference.s7i.
- The files drw_win.c, drw_x11.c and gkb_x11.c were improved to
  exit a program when the close button (X) is pressed.
- The functions refFile, refLine, refParams and refSetParams in
  ref_data.c were improved to raise RANGE_ERROR, when they are
  called with NULL.
- The function ref_params in reflib.c was improved to call refParams.
- The makefiles were improved such that 'make s7c' generates an
  executable of the Seed7 compiler.
- The makefile mk_mingc.mak, which supports the compilation of the
  self extracting version of Seed7, was improved.
- The support for the unused action REF_NAME was removed.

20121125:
- The makefiles and the file setpaths.c were improved to accept the
  macros S7_LIB_DIR (Directory with static Seed7 object libraries)
  and SEED7_LIBRARY (Directory with the Seed7 include libraries).
  Now the build process of a package can call make e.g. with:
  make S7_LIB_DIR=/abc/seed7/bin SEED7_LIBRARY=/abc/seed7/lib depend
  This way the two paths are defined in version.h. This defines them
  as default paths in the interpreter executable and in the compiler.
- An explanation, what a binary Seed7 package should install, was
  added to the FAQ. This can be used as guideline for Seed7 packages.
- The description of the times-operator in the manual and in
  array.s7i was improved.
- A description of the function name(PROGRAM), file(PROGRAM) and
  'environment' was added to the manual.
- The new library environment.s7i was added. Most of the contents of
  this library was extracted from "seed7_05.sd7". The new library is
  included from "seed7_05.s7i", so no change in existing programs is
  necessary.
- A documentation comment for getSearchPath was added to shell.s7i.
- The functions ltrim and rtrim were added to the library string.s7i.
- Test cases for ltrim and rtrim were added to chkstr.sd7.
- The function getProgramName in arr_rtl.c was improved to do the
  comparison with EXECUTABLE_FILE_EXTENSION correctly.
- The program tar7.sd7 was improved to accept also DOS paths for the
  file specified with -f.
- The function homeDir was improved to work with DJGPP (either $HOME
  or C:\ is used).
- The function prc_cpy in prclib.c was improved.
- The files executl.c, hshlib.c, ref_data.c, reflib.c and sctlib.c
  were improved to copy the descriptor union with memcpy and to copy
  the posinfo flag with SET_ANY_FLAG, when necessary.

20121104:
- The new function homeDir was added to the library osfiles.s7i.
  Interpreter and compiler were improved to support homeDir.
- The libraries makedata.s7i and make.s7i were improved to support
  replacement macros.
- A check for division by zero with /:= was added to chkflt.sd7.
- The compiler (comp.sd7) was improved to use definitions of
  NOT_A_NUMBER, POSITIVE_INFINITY and NEGATIVE_INFINITY.
- The program chkccomp.c was improved. Now it manages the macros
  likely, unlikely, UNISTD_H_PRESENT, POPEN_MISSING, os_utime_orig,
  os_utime, USE_ALTERNATE_UTIME, INCLUDE_SYS_UTIME, USE_LOCALTIME_R,
  USE_LOCALTIME_S, FLOAT_ZERO_DIV_ERROR, CHECK_FLOAT_DIV_BY_ZERO,
  ISNAN_WITH_UNDERLINE and HOME_DIR_ENV_VAR. Additionally chkccomp.c
  does not depend on the definitions of long_long_EXISTS,
  long_long_SUFFIX_LL, __int64_EXISTS, __int64_SUFFIX_LL and
  USE_BUILTIN_EXPECT in chkccomp.h.
- The functions flt_div and flt_div_assign in fltlib.c were improved
  to work correctly when CHECK_FLOAT_DIV_BY_ZERO is defined.
- Several #defines were omitted from the makefiles.
- Explanations of several version.h #defines were added to
  read_me.txt.

20121021:
- The library vecfont10.s7i, which defines the standard vector font
  with capital height 10, was added. Now mahjong.sd7 and shisen.sd7
  use vecfont10.s7i.
- The programs mahjong.sd7, pairs.sd7, shisen.sd7 and sokoban.sd7
  were improved to fit into a screen with a resolution of 1024 x 768.
- The library make.s7i was improved: The parsing of command
  parameters (used by the Unix version of the echo command), was
  improved. The processing of pattern rules was improved (The rule
  with the shortest stem value is used, when several rules match).
- Functions to read a makefile were moved from make.s7i to the new
  library makedata.s7i.
- The reading of makefiles was improved: The processing of the gmake
  directives 'ifeq' and 'ifneq' was improved to allow else clauses.
  The processing of the nmake directive 'if' was added. Merging of
  dependencies for rules with the same target was improved.
- The parse function for time values (library time.s7i) was improved
  to allow fractions of a second.
- The functions getSubNodes and getContent and a for-loop for xmlNode
  values were defined in the library xmldom.s7i.
- The compiler was improved to initialize bstring literals correctly,
  when pointers are 64-bit and integers are 32-bit.
- The font libraries cronos16.s7i, cronos27.s7i, modern27.s7i and
  vecfont18.s7i were improved to include vectorfont.s7i.
- The font libraries stdfont10.s7i, stdfont12.s7i, stdfont14.s7i,
  stdfont16.s7i, stdfont18.s7i, stdfont20.s7i and stdfont24.s7i were
  improved to include bitmapfont.s7i.
- The program dnafight.sd7 was improved to limit the speed of the
  animation.
- The program make7.sd7 was improved to recognize the options
  correctly. Additionally make7 inherits also all improvements of
  makedata.s7i and make.s7i.
- The program ftp7.sd7 was improved to accept the option -?.
- The graphic libraries drw_x11.c and drw_win.c were improved to draw
  the background of maximized windows with the color of the last
  clear command.

20121007:
- An error message, that could occur when the Seed7 interpreter is
  compiled, is now explained in the FAQ and in 'src/read_me.txt'.
- A description of the for-step-statement was added to the manual.
- The library make.s7i was improved. Now makefile dependencies can
  contain colons (:) and equal signs (=). The parameters of the echo
  command are parsed better now. Calls of the function callOwnProgram
  are also avoided now. This way the library works correctly, when it
  is used by programs other than make7.sd7.
- The library tar.s7i was improved to set the file mode, when an
  archive is extracted.
- Test cases for a variant of the @:= operator, which copies a string
  to another, were added to the program chkstr.sd7.
- Interpreter and compiler were improved to support the situation,
  when source and destination of the @:= operator (action STR_POSCPY)
  are identical.
- The compiler was improved to support the action ITF_DESTR.
- The compiler was improved, to call C compiler and linker with
  specific options, such that unneeded functions are omitted (when
  the linker and executable file format support this feature).
- The compiler was improved to remove debug symbols, unless called
  with -g (some makefiles now define LINKER_OPT_NO_DEBUG_INFO).
- The function name(PROGRAM) was improved, to return the program name
  without following symbolic links.
- The function path(PROGRAM) was improved, to follow symbolic links
  (see function followLink in cmd_rtl.c). Consequently dir(PROGRAM)
  also follows symbolic links.
- The function CommandLineToArgvW in cmd_win.c was improved.
- The files itf_rtl.c and itf_rtl.h, which contain interface
  functions, were added.
- The makefile mk_mingc.mak was added to support compilation of the
  self extracting version of Seed7.

20120923:
- Experimental support for automatic memory management with reference
  counting was added to the interpreter.
- The libraries external_file.s7i, field.s7i, stritext.s7i, gzip.s7i,
  listener.s7i, pixmap_file.s7i, shell.s7i, socket.s7i, strifile.s7i,
  dir.s7i, utf16.s7i, utf8.s7i and xmldom.s7i were improved to use
  the function toInterface.
- The function name(PROGRAM) was improved, to return the name of the
  program without extension and without path.
- The interpreter was improved to support the action ITF_DESTR.

20120909:
- The chapters about predefined statements and the foreign function
  interface in the manual, were improved.
- An explanation, why the div operator is used for integer divisions,
  was added to the FAQ.
- The FAQ about garbage collection was improved.
- Links to EBNF syntax descriptions and exceptions were added to the
  HTML version of the manual.
- EBNF syntax descriptions in the manual were improved.
- Interpreter and compiler were improved to support the actions
  CMD_ENVIRONMENT and CMD_GET_SEARCH_PATH.
- The library shell.s7i was improved to define the functions
  getSearchPath and environment.
- The function path(PROGRAM) was improved to return the accurate
  value under all circumstances.
- Several preprocessor defines were moved from "common.h to the new
  include file "config.h".
- In cmdlib.c the function toArraytype() was introduced and used in
  cmd_environment() and cmd_getSearchPath().
- In cmd_rtl.c the functions add_stri_to_array() and
  complete_stri_array() were introduced and used in read_dir(),
  getSearchPath() and cmdEnvironment().
- Parameter names in drw_win.c, drw_x11.c and drw_dos.c were changed
  to fit to the names used in graph.s7i.
- Parameter names in clib_file.s7i, keybd.s7i, sockbase.s7i,
  socket.s7i, utf8.s7i, fil_rtl.c, gkb_rtl.c, kbd_rtl.c, soc_dos.c,
  soc_rtl.c and ut8_rtl.c were changed to fit to each other.
- The function conv_from_os_stri() was added to striutl.c .
- The function concat_path in str_rtl.c was improved to work
  correctly, when the relative path contains "..".
- In several makefiles defines for SEARCH_PATH_DELIMITER and
  os_environ were added and defines for
  MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS were replaced with
  defines for OS_PATH_HAS_DRIVE_LETTERS.
- A description of several C preprocessor macros used in "version.h"
  and "config.h" was added to the file "src/read_me.txt".
- Parameter names were added to function definitions in various
  libraries.
- Documentation comments were added or improved in the files
  "clib_file.s7i", "external_file.s7i", "socket.s7i", "fil_rtl.c" and
  "striutl.c".
- The function determineEnvironDefines was added to "chkccomp.c".

20120826:
- A chapter, which explains the foreign function interface, was added
  to the manual.
- Syntax descriptions, code examples and tables in the HTML version
  of the manual were improved.
- Documentation comments were added to the file "striutl.c".
- A description of several C preprocessor macros used in "version.h"
  was added to the file "src/read_me.txt".

20120806:
- The new library image.s7i was added. The contents of this library
  was extracted from the program "carddemo.sd7".
- The new library make.s7i was added. The contents of this library
  was extracted from the program "make7.sd7".
- The function 'str' and the 'parse' operator were added to the
  library bstring.s7i.
- The function readDir was added to the library tar.s7i.
- A documentation comment was improved in the library bigint.s7i.
- The generation of bstring constants in the compiler (comp.sd7) was
  improved.
- The function intStrHex was renamed to intStrPow2Base in the files
  "int_rtl.c", "int_rtl.h" and in the compiler. The new function is
  used to convert an integer to a string, when the number base is a
  power of two.
- The function stri_export was renamed to stri_export_utf8 in the C
  source files.
- The function cp_to_cstri was renamed to cp_to_cstri8 in the C
  source files.
- Documentation comments were added and improved in the file
  "striutl.c".
- The makefile mk_msvc.mak was changed to write a definition of
  LIMITED_CSTRI_LITERAL_LEN to "version.h".

20120721:
- Documentation comments were improved in the libraries idxarray.s7i,
  array.s7i, dir.s7i, external_file.s7i, osfiles.s7i, duration.s7i
  and time.s7i.
- Parameter names were added to function definitions in the
  libraries array.s7i, bigfile.s7i, hash.s7i and idxarray.s7i.
- The compiler was improved to generate better inline code for set
  membership (operator: in).
- The functions 'cmdFileType' and 'cmdFileTypeSL' in "cmd_rtl.c" were
  improved to return FILE_ABSENT, when the file name is too long
  (stat() respectively lstat() return an error and errno has the
  value ENAMETOOLONG) or when the file name is an empty string.
- The new libraries subrange.s7i, ref_list.s7i and reference.s7i were
  added. The contents of this libraries were extracted from the
  seed7_05.s7i library.

20120703:
- The manual was improved to contain more links and to use more
  coloring.
- Parameter names were added to function definitions in the
  libraries array.s7i, integer.s7i, bigint.s7i, float.s7i, keybd.s7i,
  bitsetof.s7i, idxarray.s7i, boolean.s7i, hashsetof.s7i, socket.s7i,
  char.s7i, file.s7i, bitset.s7i, poll.s7i, sockbase.s7i and
  string.s7i .
- Documentation comments were improved in the libraries string.s7i,
  poll.s7i and progs.s7i .
- The new libraries "bstring.s7i" and "category.s7i" were added. The
  contents of this libraries were extracted from the "progs.s7i"
  library.
- Interpreter and compiler were improved to explain the option -?.

20120617:
- FAQ and manual were improved to contain more links. The additional
  links improve also the Seed7 homepage.
- The FAQ answer, which explains abstract data types, was improved.
- The type 'PRIMITIVE_FILE' was renamed to 'clib_file'.
- Documentation comments were improved in the libraries array.s7i,
  bigrat.s7i, bitset.s7i, boolean.s7i, integer.s7i, charsets.s7i,
  bigint.s7i, complex.s7i, dir.s7i, echo.s7i, char.s7i, keybd.s7i,
  line.s7i, listener.s7i, null_file.s7i, scanfile.s7i, shell.s7i,
  socket.s7i, stdio.s7i, strifile.s7i, string.s7i, stritext.s7i,
  bigfile.s7i, text.s7i, utf16.s7i, utf8.s7i and wrinum.s7i.
- The new libraries "enable_input.s7i" and "enable_output.s7i" were
  added. The contents of this libraries were extracted from the
  "enable_io.s7i" library.
- The new library "clib_file.s7i" was added. The contents of this
  library was extracted from the "external_file.s7i" library.
- The compiler (comp.sd7) was improved to accept a Windows path.
- The example program "make7.sd7" was improved to support the
  commands 'ifneq', '-include' and '+='.
- The program "toutf8.sd7" and the library "charsets.s7i" were
  improved to support the code pages 277, 280 and 297.
- The control characters of the code pages 037, 273, 285, 500 and
  1047 in "charsets.s7i" were improved.

20120603:
- An alternate version of the function 'filInputReady' was added to
  the file "fil_unx.c" (thanks to Rainer Weikusat and Geoff Clare
  for their help). The new function is used when "version.h" does
  not define the macro 'read_buffer_empty'.
- A check and a definition of the macro 'read_buffer_empty' for
  HPUX was added to "chkccomp.c" (thanks to Richard Kettlewell and
  Marc for their suggestions).
- The example program "make7.sd7" was improved. Now it supports the
  commands 'ifeq', 'wildcard' and 'include'. The commands of a rule
  can now contain empty lines. Pattern rules can now be combined with
  dependency rules (rules without commands).
- The "ftp7.sd7" example program was improved to support the commands
  'delete' and 'rename'.
- The FAQ and the manual were improved to contain more links. The
  additional links improve also the Seed7 homepage.
- The new libraries "array.s7i", "hash.s7i", "bitset.s7i," "set.s7i",
  "bitsetof.s7i", "hashsetof.s7i", "idxarray.s7i" and "struct.s7i"
  were added. The contents of this libraries were extracted from the
  "seed7_05.s7i" library. They are included from "seed7_05.s7i", so
  no change in existing programs is necessary.
- Documentation comments were added to "array.s7i", "idxarray.s7i",
  "pixmapfont.s7i", "bitset.s7i", "bitsetof.s7i", "hashsetof.s7i",
  "set.s7i", "hash.s7i" and "bigint.s7i".
- The function 'moveFile' was added to the "ftp.s7i" library.
- Comment blocks with deactivated code were removed from the
  "seed7_05.s7i" library.
- The program "chkccomp.c" was improved, to produce no error, when
  the macro 'filInputReady' cannot be defined.

20120520:
- The FAQ and the manual were improved to contain more links. The
  additional links improve also the Seed7 homepage.
- Documentation comments were added to "boolean.s7i", "charsets.s7i"
  and "vectorfont.s7i"
- Documentation comments were improved in "integer.s7i", "font.s7i",
  "duration.s7i", "enable_io.s7i", "listener.s7i", "scanfile.s7i",
  "poll.s7i", "shell.s7i" and "socket.s7i".
- The function 'bigParse' in "big_rtl.c" was improved, to work up to
  9 times faster. The bigInteger operator 'parse' is implemented with
  'bigParse'.
- The factorial operator (!) was added to "bigint.s7i".
- A for-until-loop for 'bitset' was added to "seed7_05.s7i".
- Tests for the 'parse' operator, when it parses integer literals
  with a + sign, were added to "chkbig.sd7".
- Tests of the function 'compare' were added to "chkbool.sd7".
- Tests of the bigInteger operator 'parse' were added to
  "chkexc.sd7".
- The compiler was improved to generate better inline code for set
  membership (operator: in).
- The example program "make7.sd7" was improved. Now it accepts :=
  to assign a value to a macro.
- The libraries "bigint.s7i", "float.s7i" and "math.s7i" were
  improved, to use 'in' parameters instead of 'ref' parameters.
- Spaces at the end of the line were removed in "file.s7i",
  "ftp.s7i", "osfiles.s7i", "stdio.s7i", "pol_sel.c", "read_me.txt",
  "pol_unx.c" and "soc_rtl.c".

20120506:
- A typo in the manual, concerning the 'integer' operator 'rpad',
  was fixed (thanks to Robert A Duff for pointing it out).
- The compiler (comp.sd7) was improved to generate optimized code
  for the integer 'mod' operator (thanks to Andrew Haley,
  Stefan Ram, Scott Fluhrer and Gene for their help).
- The compiler was improved to generate optimized code for the
  integer operators 'mdiv' and 'mod', when the divisor is a negated
  power of two.
- The FAQ answers, which explain possible compilation errors and the
  templates of Seed7, were improved.
- The chapter explaining primitive actions in the manual was
  improved.
- The compiler was improved to use inline code for set membership
  (operator: in) and set exclusion. The inlining is done instead of
  calling 'setElem' respectively 'setExcl'.
- The compiler was improved to use 'setIsEmpty' (which is defined in
  "set_rtl.c"), when a set is compared with the empty set (action
  "SET_EQ" and "SET_NE").
- Interpreter, compiler and runtime library were improved to support
  the actions "PRG_INTERPRETER" (returns the path of the hi
  interpreter), "SET_NEXT" (used in for-loops over sets) and
  "SET_RANGELIT" (used to create sets like {1 .. 5} ).
- In "chkset.sd7" the tests for set union and set membership were
  improved.
- The checks of relation operators in "chkset.s7i" were split into
  several functions.
- The example program "printpi2.sd7" was improved.
- The function 'bigEqSignedDigit' was added to "big_rtl.c" and
  "big_gmp.c". This function is used in the compiler to optimize
  bigInteger comparisons (= and <>) with small signed numbers.
- The functions 'reduce' and / in "bigrat.s7i" were improved.
- The performance of the function setCard in "set_rtl.c" was
  improved.
- The functions 'setSymdiff' and 'setUnion' were improved to raise
  MEMORY_ERROR, when the computation of the data size would
  overflow.
- The performance of the function 'prot_set' in "traceutl.c" was
  improved.
- The example program "make7.sd7" was improved. Now it processes
  make commands in makefiles correctly and accepts tabs before the
  dependencies of a rule. Additionally make7 now allows repeated
  target names when there no commands.
- Checks for 'mod' and 'mdiv' were added to "chkint.sd7".
- A documentation comment was added to the function 'cp_to_cstri'
  in the file "striutl.c".
- The macros 'likely' and 'unlikely' were added to if-statements
  checking for exception conditions in the file "set_rtl.c".
- A description of possible compilation errors was added to the file
  "src/read_me.txt".
- In "shell.s7i" the function 'shell' was overloaded and the
  function 'callOwnProgram' was added.

20120415:
- Documentation comments were added to "shell.s7i".
- A description of several C preprocessor macros used in "version.h"
  was added to the file "src/read_me.txt".
- In "chkset.sd7" tests for set difference and symmetric difference
  were added and tests for set intersection and set membership were
  improved.
- The compiler (comp.sd7) was improved to support the functions
  'pipe2' and 'pty' (actions: CMD_PIPE2 and CMD_PTY).
- The compiler was improved to provide better optimization for set
  difference, intersection, union and membership.
- The tracing support for sets in the compiler was improved.
- The program "chkccomp.c" was improved to use the C compiler to
  determine elements from the FILE structure.
- The new experimental function 'cmdPty' was added to "cmd_unx.c"
  and "cmd_win.c".
- The function 'filInputReady' in "fil_unx.c" and "fil_win.c" was
  improved to use the macro 'read_buffer_empty' (which is defined in
  "version.h" by the program "chkccomp.c").
- The makefiles were changed to write several macro definitions to
  "version.h", before the program "chkccomp.c" is compiled. This way
  "chkccomp.c" gets information about the C compiler from
  "version.h".
- The functions 'setDiff' and 'setSymdiff' in "set_rtl.c" were
  improved to work correctly for big sets.
- The function 'setNotElem' was removed from "set_rtl.c" and the
  compiler was changed to use !setElem() instead of setNotElem().
- The function 'prot_set' in "traceutl.c" was improved to work
  correctly, when 64-bit bitset elements are used.

20120401:
- The program "chkccomp.c" was changed to define the macros
  'likely' and 'unlikely' only when __GNUC__ >= 3 holds (thanks
  to "Rugxulo" for pointing out, that GCC 2.95.3 does not
  support __builtin_expect() ).
- The library "modern27.s7i", which defines the vector font
  modern27, was added.
- The compiler (comp.sd7) was improved to initialize global
  interface variables correctly.
- The function cmdPipe2() in "cmd_win.c" was improved to work
  correctly.
- In "drw_win.c" the functions drawRectangle(), drwPArc(),
  drwPFArcPieSlice(), drwPCircle(), drwClear(), drwPFCircle(),
  drwPFEllipse(), drwPLine(), drwPolyLine(), drwFPolyLine() and
  drwPRect() were improved to raise MEMORY_ERROR when CreatePen()
  or CreateSolidBrush() fails.
- In various makefiles the definition of likely() and unlikely()
  was removed and a definition of USE_BUILTIN_EXPECT was added.
- The descriptions of paths in "seed7/src/read_me.txt", were
  improved.

20120318:
- The example program "testfont.sd7" was improved to display more
  fonts and more characters.
- The library "vectorfont.s7i", which supports vector fonts, was
  added.
- The libraries "cronos16.s7i", "cronos27.s7i" and
  "vecfont18.s7i", which define the vector fonts cronos16,
  cronos27 and vecFont18 respectively, were added.
- A standard bitmap font with size 20 was defined in the new
  library "stdfont20.s7i".
- The pilcrow character was added to the standard bitmap fonts.
- Some characters in the standard bitmap fonts were improved.
- The function 'filInputReady' in "fil_unx.c" was improved to
  use poll() instead of select().

20120304:
- The "ftpserv.sd7" example program was improved to support the
  commands RNFR and RNTO and to work correctly, when the listener
  cannot open a passive data port.
- The font support was improved, such that caching of character
  pixmaps works.
- Some characters in the standard bitmap fonts were added or
  improved.
- The functions 'socSend' and 'socSendto' in "soc_rtl.c" were
  improved to work correctly under 64-bit systems.
- The function 'fltSci' in "flt_rtl.c", was improved to avoid
  a C compiler warning about the change of a constant value.
- The function 'redraw' in "drw_x11.c" was changed, such that it
  does not use a parameter of type 'XExposeEvent'.
- The functions 'drwHeight', 'drwWidth', 'drwXPos' and 'drwYPos'
  in "drw_x11.c" were improved to raise RANGE_ERROR when the
  window does not exist.
- The function 'handleExpose' was introduced in "gkb_x11.c", to
  handle the job of calling 'redraw'.
- The type 'unsigned int' was replaced by 'sysizetype' in
  'findid.c', 'findid.h', 'identutl.c', 'identutl.h', 'literal.c',
  'numlit.c', 'scanner.c' and 'symbol.h'.
- Some improvements were done in 'prg_comp.c', 'reflib.c',
  'analyze.c', 'exec.c', 'infile.c', 'info.c' and 'typlib.c' to
  reduce the number of warnings.
- Support for the unused action "ENU_SIZE" was removed.

20120219:
- A call of clearerr(stdin) was added to the function
  kbdKeyPressed() in the file "kbd_inf.c". This fixes a bug, which
  happen under FreeBSD (thanks to Pietro Cerutti for pointing out
  the error and for suggesting this fix).
- The FAQ answer, which explains the portability of Seed7, was
  improved.
- The function 'copyFile' was added to the library "file.s7i" and
  the files "ftp.s7i" and "ftpserv.sd7" were changed to use it.
- The function 'removeFile' was added to the library "ftp.s7i".
- The function 'signOn' was added to the libraries "listener.s7i"
  and "socket.s7i".
- The function 'signOff' was improved in "listener.s7i" and
  "socket.s7i", to use a 'socket' instead of a 'PRIMITIVE_SOCKET'
  parameter.
- The "gkbd.sd7" example program was improved.
- The "panic.sd7" example program was improved to use DRAW_FLUSH
  less often.
- The function 'readDir' was added to "osfiles.s7i" as replacement
  for 'read_dir'. The function 'read_dir' is deprecated and
  should not be used.
- The functions 'open_dir' and 'open_dir_path' were renamed to
  'openDir' and 'openDirPath' respectively.
- The functions 'find_window', 'enter_window', 'remove_window' and
  'gkbWindow' were moved from "drw_x11.c" to "gkb_x11.c".
- Trace statements were added to "drw_x11.c" and "gkb_x11.c".
- A description of several C preprocessor macros used in "version.h"
  was added to the file "src/read_me.txt".
- The makefiles "mk_bcc32.mak", "mk_bccv5.mak", "mk_cygw.mak",
  "mk_mingw.mak", "mk_msvc.mak", "mk_msys.mak" and "mk_nmake.mak"
  were changed to write a definition of QUOTE_WHOLE_SHELL_COMMAND to
  "version.h".

20120205:
- FAQ answers, explaining call-by-name and how it is implemented in
  Seed7, were added.
- The "ftpserv.sd7" example program was improved to work with
  various ftp client programs.
- The speed of the function 'socLineRead' in "soc_rtl.c" was
  improved (this function implements getln() for sockets).
- The Unicode support of the "ftp.s7i" library and the "ftp7.sd7"
  example program was improved.
- Documentation comments were improved in "poll.s7i" and
  "osfiles.s7i".
- The files "pol_sel.c" and "pol_unx.c" were improved to use the
  const qualifier.
- The compiler (comp.sd7) was improved to generate optimized code
  for the actions "STR_ELEMCPY" and "STR_POSCPY" (which were used
  by the @:= operator).
- Test cases for the @:= operator were added to "chkstr.sd7".
- The program "chkccomp.c" was changed to include "version.h" and
  to define OS_OFF_T_SIZE. This way "chkccomp.c" can use the macro
  definitions for os_off_t, TURN_OFF_FP_EXCEPTIONS and
  DEFINE_MATHERR_FUNCTION from "version.h" instead of "chkccomp.h".
- The files "cmd_rtl.c" and "fil_rtl.c" were changed to use the
  macro OS_OFF_T_SIZE.
- In "osfiles.s7i" the type 'fileType' was introduced as result type
  for 'fileType' and 'fileTypeSL'.
- The function 'str' for the type 'fileMode' was improved in
  "osfiles.s7i".
- The number of calls of fileno() was reduced in "con_cap.c",
  "con_tcp.c", "kbd_inf.c" and "kbd_poll.c".
- Result variables were renamed in "external_file.s7i", "ftp.s7i",
  "osfiles.s7i", "shell.s7i", "socket.s7i", "string.s7i", "tar.s7i",
  "utf16.s7i", "utf8.s7i" and "ftpserv.sd7".

20120115:
- The functions shellEscape and toShellPath were added to the
  "shell.s7i" library.
- The compiler (comp.sd7) was improved to use 'toShellPath'. Now the
  compiler works for source files, which contain spaces in their
  name.
- Compiler and interpreter were improved to support the action
  "CMD_SHELL_ESCAPE" (this action implements the function
  'shellEscape').
- The "ftp7.sd7" example program was improved to support the 'dir'
  command.
- The "ftpserv.sd7" example program was improved to support the
  commands FEAT, MLST, MLSD, DELE, MODE and STRU.
- The functions listDir and bigFileSize were added to the "ftp.s7i"
  library.
- The configuration program "setpaths.c" was improved to support
  the compilation of Seed7 in a directory with an Unicode name,
  which contains characters outside of the Basic Multilingual Plane.

20120101:
- The type 'pollData' was moved from "socket.s7i" to "poll.s7i".
  The functions supported by 'pollData' are 'clear', 'addCheck',
  'removeCheck', 'getCheck', 'poll', 'getFinding', 'hasNext',
  'iterChecks', 'iterFindings', 'nextFile' and 'for'.
- The type 'inetListener' was moved from "socket.s7i" to
  "listener.s7i". The functions supported by 'inetListener' are
  'openInetListener', 'close', 'signOff', 'listen', 'accept' and
  'waitForRequest'.
- The type 'socketAddress' was moved from "socket.s7i" to
  "sockbase.s7i". The functions supported by 'socketAddress' are
  'numericAddress', 'inetSocketAddress', 'inetListenerAddress' and
  'getHostname'.
- The file "pol_dos.c" was added (thanks to "Rugxulo" for pointing
  out, that it was missing).
- Support for the actions POL_ADD_READ_CHECK POL_ADD_WRITE_CHECK,
  POL_FILES, POL_HAS_NEXT_READ_FILE, POL_HAS_NEXT_WRITE_FILE,
  POL_NEXT_READ_FILE, POL_NEXT_WRITE_FILE, POL_READY_FOR_READ,
  POL_READY_FOR_WRITE, POL_REMOVE_READ_CHECK,
  POL_REMOVE_WRITE_CHECK and SOC_SELECT_INPUT was removed from
  interpreter and compiler.
- Support for the actions POL_ADD_CHECK, POL_GET_CHECK,
  POL_GET_FINDING, POL_HAS_NEXT, POL_ITER_CHECKS, POL_ITER_FINDINGS,
  POL_NEXT_FILE, POL_REMOVE_CHECK and SOC_GET_ADDR was added to
  interpreter and compiler.
- The files "pollib.c", "pollib.h", "pol_dos.c", "pol_sel.c",
  "pol_unx.c", "pol_drv.h", "soclib.c", "soclib.h", "soc_rtl.c" and
  "soc_dos.c" were added or improved.
- The "ftpserv.sd7" example was improved to take the IP address for
  the "PASV" response from the control socket.
- The console driver "con_win.c" was improved, such that keypressed
  recognizes control-C as normal keyboard input.
- The function 'socGets' was improved to avoid realloc(), when
  the string read is shorter than requested.

20111218:
- The type 'pollData' and the functions 'clear', 'addReadCheck',
  'addWriteCheck', 'removeReadCheck', 'removeWriteCheck', 'poll',
  'readyForRead', 'readyForWrite', 'files', 'hasNextReadFile',
  'hasNextWriteFile', 'nextReadFile' and 'nextWriteFile' were added
  to the "socket.s7i" library.
- The makefile "mk_djgpp.mak" was improved to use 'djecho' (thanks
  to "Rugxulo" for his help).
- The library "duration.s7i" was improved to support the operators
  +:= and -:= for the type 'duration'.
- The function 'startProcess' in the library "shell.s7i" was
  overloaded to work with a single string parameter.
- The function 'socWrite' in "soc_rtl.c" was improved.
- Interpreter, compiler and runtime library were improved to support
  'pollData' (polltype) and the actions "POL_ADD_READ_CHECK",
  "POL_ADD_WRITE_CHECK", "POL_CLEAR", "POL_CPY", "POL_FILES",
  "POL_HAS_NEXT_READ_FILE", "POL_HAS_NEXT_WRITE_FILE",
  "POL_NEXT_READ_FILE", "POL_NEXT_WRITE_FILE", "POL_POLL",
  "POL_READY_FOR_READ", "POL_READY_FOR_WRITE",
  "POL_REMOVE_READ_CHECK", "POL_REMOVE_WRITE_CHECK" and "POL_VALUE".
- The files "pollib.c", "pollib.h", "pol_sel.c", "pol_unx.c" and
  "pol_drv.h" were added to support the type 'pollData'.
- The "ftpserv.sd7" example program was improved to work silently.
- In "hsh_rtl.c" the function 'hshIdxWithDefault' was renamed to
  'hshIdxEnterDefault' and a new function 'hshIdxWithDefault' was
  introduced.
- In "ref_data.c" the functions 'refCmpGeneric' and 'genericCreate'
  were replaced with 'uintCmpGeneric' and 'intCreateGeneric'
  respectively.
- The program "chkccomp.c" was improved to define _matherr(), which
  handles floating point errors, when necessary.

20111204:
- The makefile "mk_djgpp.mak" was improved to work for DJGPP under
  DOS (thanks to "Rugxulo" for his help to improve "mk_djgpp.mak").
- The old makefile "mk_djgpp.mak" was renamed to "mk_djgp2.mak".
- The option -?, which writes helping information, was added to the
  hi interpreter and to the compiler (comp.sd7).
- The "ftp7.sd7" example program was improved to support the command
  "help".
- The "sydir7.sd7" example program was improved to accept Unix and
  DOS paths.
- The directions N, S, W, E were renamed to NORTH, SOUTH, WEST and
  EAST in "dna_base.s7i", "blue.dna", "green.dna", "indigo.dna",
  "red.dna", "tan.dna", "violet.dna" and "white.dna".
- Result variables were renamed in "bigrat.s7i", "complex.s7i",
  "rational.s7i" and "time.s7i".
- Interpreter, compiler and runtime library (files "cmd_unx.c",
  "cmd_win.c", "cmd_drv.h", "cmdlib.c", "cmdlib.h" and "primitiv.c")
  were improved to support the new action "CMD_START_PROCESS".
- A definition of the function 'startProcess' was added to the
  "shell.s7i" library.
- The function get_primact in "actutl.c" was improved to suppress
  writing the list of actions, which are implemented by the same
  function.
- The function timNow() in "tim_dos.c", "tim_unx.c" and "tim_win.c"
  and the functions timFromTimestamp() and timSetLocalTZ() in
  "tim_rtl.c" were improved to use localtime_s(), when the
  prepocessor macro USE_LOCALTIME_S is defined.
- An include command for "math.s7i" was added to "bas7.sd7",
  "lander.sd7" and "planets.sd7".

20111111:
- Documentation comments were improved in "dir.s7i", "stdio.s7i"
  and "enable_io.s7i".
- Test cases for the operators 'sci' and 'exp' in "chkflt.sd7" were
  changed to succeed on all supported platforms.
- The compiler (comp.sd7) was improved, to create better debugging
  information for compiler generated (DYNAMIC) dispatcher functions.
- The compiler was improved to define and use the macro 'do_setjmp'
  and to work correctly for empty programs.
- The program "chkccomp.c" was improved to write one of the
  preprocessor macros ROUND_HALF_TO_EVEN, ROUND_HALF_UP or
  ROUND_HALF_AWAY_FROM_ZERO to "version.h". This macros describe
  the rounding behaviour, when float values are converted to
  strings with 'printf'.
- Result variables were renamed in "echo.s7i", "gzip.s7i",
  "line.s7i",, "external_file.s7i" "null_file.s7i", "osfiles.s7i",
  "stdio.s7i", "strifile.s7i", "stritext.s7i" and "utf16.s7i".
- The files "drw_win.c", "fil_win.c" and "striutl.c" were improved
  to reduce the number of compiler warnings.

20111101:
- Documentation comments were improved in "scanfile.s7i",
  "scanstri.s7i" and "float.s7i".
- The operators 'sci' and 'exp' were added to "float.s7i". This
  operators write floating point values in scientific notation.
- Test cases for the operators 'sci' and 'exp' were added to
  "chkflt.sd7".
- The function 'getInteger' was added to "scanfile.s7i" and
  "scanstri.s7i".
- The "comanche.sd7" webserver was improved to write information
  about the option -? respectively -h, when an error was found.
- The compiler (comp.sd7) was improved, to create better debugging
  information for compiler generated create, destroy, copy and
  times functions (actions: ARR_CREATE, HSH_CREATE, SCT_CREATE,
  ARR_DESTR, HSH_DESTR, SCT_DESTR ARR_CPY, HSH_CPY, SCT_CPY and
  ARR_TIMES).
- The creation of code for for-loops in the compiler was improved.
- Test cases for the for-loop were added to "chkprc.sd7".
- Interpreter, compiler and runtime library (function 'fltSci' in
  "flt_rtl.c") were improved to support the new action "FLT_SCI".
- The debugging options in "mk_msvc.mak" were improved.
- Parameters were renamed in the files "color.s7i", "complex.s7i",
  "time.s7i", "duration.s7i" and "shell.s7i".

20111014:
- The FAQ answer, explaining the -v option of the interpreter, was
  improved.
- The function 'skipSpaceOrTab' was added to "scanstri.s7i".
- Documentation comments were added to "utf8.s7i".
- The compiler (comp.sd7) was improved to generate better code for
  the actions "INT_POW" and "STR_APPEND".
- The support for macros, in the "make7.sd7" utility, was improved.
- The files "drw_x11.c", "findid.h" and "scanner.c" were changed to
  reduce the number of warnings issured by clang.
- Functions were moved from "kbd_rtl.c" to the new file "gkb_rtl.c"
  and prototypes were moved from "kbd_rtl.h" to the new file
  "gkb_rtl.h". This was done together with changes in the makefiles,
  to avoid linker errors, when programs are compiled with -O2.
- The function 'processOptions' in "hi.c" was improved to support
  the new logic of the option -v.

20111003:
- A check for MEMORY_ERROR was removed from "chkexc.sd7" (thanks to
  Pietro Cerutti for pointing out problems under 64-bit FreeBSD).
- Documentation comments in "complex.s7i", "draw.s7i", "float.s7i",
  "external_file.s7i", "forloop.s7i", "html_ent.s7i", "keybd.s7i",
  "null_file.s7i", "socket.s7i", "stdio.s7i" and "xml_ent.s7i" were
  improved.
- The compiler (comp.sd7) and the makefiles were improved, such that
  executables only link console libraries (ncurses, etc.), when
  necessary.
- The function 'encodeHtmlContent' was added to "html_ent.s7i".
- The function 'fromPercentEncoded' was moved from "cgi.s7i" to
  "encoding.s7i".
- The functions 'toPercentEncoded', 'toUrlEncoded' and
  'fromUrlEncoded' were added to the library "encoding.s7i".
- Compiler, runtime libraries and makefiles were improved to support
  the configuration macros CONSOLE_LIB (name of the Seed7 console
  library) and SYSTEM_CONSOLE_LIBS (link option for the console
  library of the OS).
- The makefiles were improved to write all dependencies in the file
  "depend", instead of "depend", "a_depend", "b_depend", "c_depend"
  and "d_depend".

20110918:
- Support for 'drwGetPixel' was added to the compiler (thanks to
  DJ Redick, for reporting compilation problems with wator.sd7").
- FAQ answers, explaining how interpreter and compiler search for
  include libraries, were improved.
- The function 'str', which converts a bigInteger number to a string
  representation with a given base, was added to "bigint.s7i".
- Documentation comments in "float.s7i" and "socket.s7i" were
  improved.
- In "float.s7i" the function 'isnan' was renamed to 'isNaN' and the
  function 'isNegativeZero' was added.
- Runtime library and compiler (comp.sd7) were improved, such that
  float operations work according to IEEE 754.
- The test program "chkflt.sd7" was improved to check IEEE 754
  floating point conformance.
- The program "chk_all.sd7" was improved to call "chkflt.sd7".
- The "bas7" example program was improved (functions 'ERL' and 'LIST'
  added, division by zero handled correctly).
- BigInteger multiplication in the compiler was improved to use
  'bigSquare', when a number is multiplied with itself.
- The compiler was improved to take into account that the actions
  "SCR_" were renamed to "CON_".
- The performance of 'bigCmp' and 'bigFromInt32' in "big_rtl.c", was
  improved.
- The program "chkccomp.c" was improved to check the IEEE 754
  support. It checks comparisons with NaN, the creation of negative
  Zero and the 'pow' function with a zero base.
- To reach IEEE 754 floating point conformance the functions flt_cmp,
  flt_eq, flt_ge, flt_gt, flt_isnegativezero, flt_le, flt_lt, flt_ne,
  flt_pow in "fltlib.c" and the functions setupFloat, fltCmp, fltEq,
  fltGe, fltGt, fltIsNegativeZero, fltLe, fltLt, fltPow, fltStr in
  "flt_rtl.c" were added or improved.
- The makefiles were improved to link "chkccomp.c" with the math
  library (e.g.: -lm).

20110904:
- Declarations were moved from "seed7_05.s7i" to the new library
  "forloop.s7i".
- For-loops, with traverse array elements and keys, were introduced
  in "seed7_05.s7i".
- Test cases for bigInteger exponentiation, when it raises an
  exception, were added to "chkexc.sd7".
- The recognition of constant expressions and their use to optimize
  the program in the compiler ("comp.sd7"), was improved.
- Compiler options, to control the optimization of constant
  expressions, were introduced. Allowed options are -oc0 (no
  optimization), -oc1 (default), -oc2 and -oc3 (best optimization).
- The functions 'bigSquare' and 'bigLog2BaseLShift' were added to
  "big_rtl.c" and "big_gmp.c" and used by the compiler.
- The functions 'uBigDigitSquare', 'uBigKaratsubaSquare' and
  'uBigSquareK' were added to "big_rtl.c".
- The functions 'uBigDecr', 'uBigMultNegativeWithDigit',
  'uBigMultPositiveWithNegatedDigit', 'bigAbs', 'bigGrow',
  'bigMultSignedDigit', 'bigRShiftAssign' and 'bigShrink' in
  "big_rtl.c" were improved.
- A free list memory management for 'biginttype' (bigInteger) values
  was introduced in "big_gmp.c".
- All occurrences of the macro UTF32_STRINGS in *.c and *.h files
  were removed. Strings will always use UTF-32 encoded characters.
  Strings restricted to byte elements must use a different type.
- The functions 'conWrite' (in "con_rtl.c") and 'conText' (in
  "con_win.c") were improved to allow writing Unicode characters to
  the console.
- The random number generator (functions 'uint_rand' and 'intRand'
  in "int_rtl.c") was improved.
- The functions 'stri_to_wstri' and 'stri_to_bstriw' were added to
  "striutl.c".
- The experimental function 'inputReady' was added to "file.s7i",
  "external_file.s7i", "comp.sd7", "fil_unx.c", "fil_win.c" and
  "fil_drv.h". Because of buffering issues, 'inputReady' does
  currently not work correctly for pipes.
- Support for 'SOC_INPUT_READY' was added to the compiler (comp.sd7).
- The experimental function pipe2 was added to "shell.s7i".
- Test cases for bigInteger multiplication and squaring were added
  to "chkbig.sd7".
- The type 'flisttype' was introduced in "common.h" and used in
  "heaputl.h", "big_rtl.c" and "big_gmp.c".

20110816:
- An explanation how the syntax of Seed7 is defined, was added to
  the FAQ.
- Documentation comments were added to "math.s7i", "shell.s7i"
- A declaration of Euler's number was added to "math.s7i".
- The function 'getCommandLineWord' was added to "scanstri.s7i".
- The functions 'shell', 'cmd_sh', 'popen' and 'popen8' in
  "shell.s7i" were improved to work correctly under the supported
  operating systems, even when command and parameters contain
  spaces.
- The library "screen.s7i" was renamed to "console.s7i" and the
  function 'open(SCREEN)' was renamed to 'open(CONSOLE)'.
- The makefile "mk_bcc32.mak" was improved to work correctly for
  version 6.71 of bcc32 (thank you to the anonymous google account
  user, for posting his findings to the Seed7 forum).

20110801:
- The left and right shift operators for bigInteger were improved
  to work with negative shift counts. Left shifting with a negative
  shift count results in a right shift. Right shifting with a
  negative shift count results in a left shift.
- The interpreter was improved to default to non-verbose program
  parsing (verbose parsing is done with -v or -v2).
- The chapter explaining 'float' in the manual was improved.
- The "draw.s7i" library was improved to contain the functions
  'getPixelColor' (obtain the color of a specified pixel from a
  window or pixmap) and 'pixelToColor' (convert a pixel value to a
  color).
- The function 'newPixmap' in "draw.sd7" and the files "drw_x11.c"
  and "drw_win.c" were improved to allow creating pixmaps, when no
  window was opened.
- Documentation comments were added to "integer.s7i", "string.s7i"
  and "wrinum.s7i".
- The function 'inputReady' was added to the "socket.s7i" library.
- The "string.s7i" library, interpreter and compiler were improved
  to support an overloaded version of the @:= operator. With
  stri @:= [5] "abc"; the characters 5 to 7 in stri are overwritten
  with "abc" (the primitive action is "STR_POSCPY").
- The function 'daysInMonth' was added to the "time.s7i" library.
- Declarations were moved from "seed7_05.s7i" to the new library
  "char.s7i".
- Checks were added to "chkbig.sd7", "chkexc.sd7", "chkstr.sd7"
- The performance of 'uBigIncr', 'uBigDecr', 'bigDecr', 'bigIncr',
  'bigPred', 'bigPredTemp', 'bigSucc' and 'bigSuccTemp' in
  "big_rtl.c", was further improved.
- The performance of 'bigImport' and 'bigCLit' in "big_rtl.c", was
  improved.
- The handling of the action "ARR_IDX" in the compiler (comp.sd7)
  was improved.
- The functions 'bigLShift', 'bigLShiftAssign', 'bigRShift' and
  'bigRShiftAssign' in "big_rtl.c" were adjusted to the new shift
  behaviour for bigInteger values.
- The prototypes of 'wgetenv' and 'wsetenv' in "cmd_win.c" were
  improved to use the const qualifier.
- The macros HEAP_REALLOC_BIG and REALLOC_BIG_CHECK_SIZE in
  "big_rtl.c" and the macros HEAP_REALLOC_STRI, GROW_STRI and
  REALLOC_STRI_CHECK_SIZE in "heaputl.h" were improved to avoid
  unused expression results (which get a warning with clang).
- The operator lpad0 (function strLpad0 in "str_rtl.c") was improved
  to add zero characters ('0') after an optional leading sign
  ('+' or '-').

20110717:
- FAQ answers, explaining how interpreter and compiler look for
  include libraries, were improved.
- The 'str' function for 'duration' values was improved to provide
  micro seconds, when they are not zero.
- Two 'getHttp' functions in "gethttp.s7i" were improved to allow
  redirections which refer to other redirections.
- A documentation comment was written for 'getHostname' in
  "socket.s7i".
- Checks for left shift in "chkint.sd7" were improved to check only
  cases were no overflow occurs.
- Checks for the 'pos' function were added to "chkstr.sd7".
- The performance of 'uBigIncr', 'uBigDecr', 'bigDecr', 'bigIncr',
  'bigPred', 'bigPredTemp', 'bigSucc' and 'bigSuccTemp' in
  "big_rtl.c", was improved.
- The functions 'processBackslash' and 'CommandLineToArgvW' were
  added to "cmd_win.c".
- The function 'wgetenv_wstri' was renamed to 'wgetenv' in
  "cmd_win.c".
- The functions gkbGetc, processEvents, gkbKeyPressed,
  mouseButtonPressed, keyboardButtonPressed, gkbButtonPressed,
  gkbRawGetc, gkbButtonXpos, gkbButtonYpos and drwFlush were moved
  from "drw_x11.c" to the new file "gkb_x11.c".
- The performance of 'strPos' in "str_rtl.c", was improved.
- The compiler was improved to generate the function
  'int_raise_error' and to use the function 'raiseError' to create
  calls of 'int_raise_error'.
- The compiler (comp.sd7) was improved to generate better code for
  the action "REF_TRACE", when the object category is REFOBJECT.
- The generation of the string constant table, in the compiler, was
  improved.
- The configuration macro OS_PATH_WCHAR was renamed to OS_STRI_WCHAR
  in several files.
- The macro os_getenv_string_free was defined in "os_decls.h".
- The functions seekFileLength, offsetTell and offsetSeek in
  "fil_rtl.c" were improved to provide their functionality optionally
  with os_fgetpos and os_fsetpos.
- The function offsetSeek in "fil_rtl.c" was improved to return -1,
  when the offset does not fit into the offset type used by the seek
  function of the operating system.
- Makefiles and C source files were changed to use 'os_fopen' instead
  of 'wide_fopen' and 'fopen'.

20110703:
- A new example program (ftpserv.sd7), a FTP (file transfer protocol) server,
  was added.
- The type listener (defined in "socket.s7i") was improved. Now a listener
  manages its accepted sockets.
- The new function 'waitForRequest' was added to "socket.s7i". It allows to
  wait until a request can be read or an incoming connection is accepted.
  With 'waitForRequest' a server is able to handle interleaved requests from
  multiple clients.
- The functions 'eof' and 'hasNext' in "socket.s7i" were improved to work
  like the corresponding functions of other files.
- The type socketAddress (defined in "socket.s7i") was improved to support
  comparisons with '=' and '<>'.
- The compiler (comp.sd7) and the makefiles were improved, such that
  executables only link graphic libraries (X11 or gdi), when necessary.
- The makefile mk_djgpp.mak was introduced. It allows compilation under DOS
  with DJGPP.
- Support for Cygwin was improved to allow graphics with Cygwin/X.
- The functions 'compare' and 'hashCode' were added to the "file.s7i"
  library. This allows files as keys of hash tables.
- Documentation comments were added or improved in the files "complex.s7i",
  "file.s7i", "font.s7i" and "socket.s7i".
- The "ftp.s7i" library was improved to accept multiple line responses.
- The function 'quoteHtmlAttrValue' was added to "html_ent.s7i".
- The functions 'clear' in "screen.s7i" and "windows.s7i" were improved to
  position the cursor in the top left edge.
- The "comanche.sd7" webserver was improved to allow the specification of a
  port and to write help information, when it is called with -h or -? .
- The "make7.sd7" utility was improved to support the option -i .
- The meaning of the configuration macros SEED7_LIB, COMP_DATA_LIB and
  COMPILER_LIB was changed to contain library names without path.
- Compiler, runtime libraries and makefiles were improved to support the
  configuration macros DRAW_LIB (name of the Seed7 graphic library),
  SYSTEM_DRAW_LIBS (link option for the graphic library of the OS) and
  S7_LIB_DIR (absolute path of the Seed7 runtime libraries).
- The new file "os_decls.h", which defines macros for OS calls and structs,
  was added. The definitions in "os_decls.h" were moved from "common.h".
- The file "setpaths.c" was improved to work under DOS and to be able to
  handle the codepages 437 and 850.
- Functions in "striutl.h" were improved to decode operating system strings
  with UTF-16 surrogate pairs to the UTF-32 strings of Seed7. Decoding and
  encoding between codepages (437 and 850 are supported) and the UTF-32
  strings of Seed7 was also added.
- The function 'socSelectInput' (defined as 'selectInput' with the action
  "SOC_SELECT_INPUT" in "socket.s7i") was added to "soc_rtl.c".
- The function 'socInetAddr' in "soc_rtl.c" (defined as 'inetSocketAddress'
  with the action "SOC_INET_ADDR" in "socket.s7i") was improved to return
  an empty socket address when the host could not be found.
- The function 'openInetSocket' in "socket.s7i" was improved to return
  STD_NULL when the socked could not be opened.
- The compiler was improved to support the actions "SOC_HAS_NEXT" and
  "SOC_SELECT_INPUT".
- The functions 'readVolumeName' and 'closeVolumeList' were moved from
  "cmd_win.c" to "dir_rtl.c".
- The function 'openVolumeList' was added to "cmd_unx.c".
- The functions 'drwOpen' and 'drwOpenSubWindow' were changed to raise
  FILE_ERROR when it is not possible to open a window.
- Calls of 'getenv' in 'examineSearchPath' ("arr_rtl.c") and
  'init_lib_path' ("infile.c") were replaced with 'os_getenv'.
- Several explanations were added to the file "src/read_me.txt".
- The file "soc_dos.c" was added and the files "scr_dos.c" and "scr_wat.c"
  were improved.
- The function 'prot_os_stri' was added to "traceutl.c".
- The handling of the element 'tm_isdst' from 'struct tm' (filled when
  localtime() is called) was changed. Now the flag 'is_dst' is only
  set when tm_isdst > 0 holds.

20110619:
- A new example program (ftp7.sd7), an FTP internet file transfer program,
  was added.
- The "ftp.s7i" library, which supports the FTP protocol, was added.
- The functions 'numericAddress', 'service' and 'getHostname' were added to
  the "socket.s7i" library.
- Support for the actions SOC_ADDR_NUMERIC, SOC_ADDR_SERVICE and
  SOC_GET_HOSTNAME were added to the compiler (comp.sd7).
- The compiler was improved to recognize unsupported options and superfluous
  parameters.
- The functions 'socAddrNumeric', 'socAddrService', 'socGetAddr', 'socSelect',
  'socSelectOne', 'socGetHostname' and 'socInputReady' were added to
  "soc_rtl.c" (some were commented out).
- The functions 'select_addrinfo' and 'dump_addrinfo' in "soc_rtl.c" were
  improved.
- The functions 'soc_addr_numeric', 'soc_addr_service', 'soc_get_addr',
  'soc_get_hostname', 'soc_input_ready' and 'soc_select' were added to
  "soclib.c" (some were commented out).
- The file "soc_rtl.c" was improved to reduce the number of compiler warnings.
- Documentation comments were improved in the file "socket.s7i".
- Compiler, runtime libraries and makefiles were improved to support the
  configuration macro CPLUSPLUS_COMPILER.

20110605:
- The new libraries "boolean.s7i", "integer.s7i" and "string.s7i" were
  added. The contents of this libraries were extracted from the "seed7_05.s7i"
  library. They are included from "seed7_05.s7i", so no change in existing
  programs is necessary.
- Declarations of color constants were moved from "draw.s7i" to "color.s7i".
- The declaration of 'graph_file' was moved from "draw.s7i" to the new
  library "graph_file.s7i".
- The declaration of 'duration' was moved from "time.s7i" to the new
  library "duration.s7i".
. The declaration of 'pixmapFontFile' was moved from "pixmapfont.s7i" to
  the new library ""pixmap_file.s7i".
- The functions 'getATime', 'getCTime', 'getMTime', 'setATime' and 'setMTime'
  were moved from "time.s7i" to "osfiles.s7i"
- The function 'bigFileSize' was moved from "bigfile.s7i" to "osfiles.s7i".
- Documentation comments were added or improved in the files
  "bigint.s7i", "bigrat.s7i", "bitmapfont.s7i", "complex.s7i", "dir.s7i",
  "duration.s7i", "echo.s7i", "enable_io.s7i", "external_file.s7i",
  "file.s7i", "float.s7i", "font.s7i", "graph_file.s7i", "integer.s7i",
  "keybd.s7i", "line.s7i", "math.s7i", "null_file.s7i", "osfiles.s7i",
  "pixmap_file.s7i", "rational.s7i", "screen.s7i", "socket.s7i", "stdio.s7i",
  "strifile.s7i", "string.s7i", "utf16.s7i", "text.s7i", "time.s7i" and
  "window.s7i".
- The function 'read_zip_dir' was added to the "zip.s7i" library.
- Checks for length, tell and seek with STD_NULL were added to "chkexc.sd7".
- Interpreter, compiler and runtime library were improved to support the
  action STR_RIPOS. This allows searching for a string from a given position
  to the left.
- Checks for the function 'rpos' were added to "chkstr.sd7".
- Documentation comments were added or improved in the files "big_rtl.c",
  "str_rtl.c" and "int_rtl.c".
- The experimental actions REF_CAST, ITF_TO_HEAP and ITF_TO_INTERFACE were
  added.
- The functions 'disconnect_entity' and 'disconnect_param_entities' were
  added to "name.c".
- The function 'act_create' in "actlib.c" was improved to remove the names
  from the formal parameters. This is done with 'disconnect_param_entities'.

20110522:
- FAQ answers, explaining that Seed7 is not a descendant of Pascal and
  how Seed7 uses abstract data types, were added.
- Documentation comments were added or improved in the files "bigfile.s7i",
  "bigint.s7i", "bigrat.s7i", "binary.s7i", "cgi.s7i", "charsets.s7i",
  "complex.s7i", "encoding.s7i", "float.s7i", "getf.s7i", "gzip.s7i",
  "inifile.s7i", "keybd.s7i", "rational.s7i", "shell.s7i", "socket.s7i",
  "strifile.s7i", "stritext.s7i", "time.s7i", "utf16.s7i", "utf8.s7i",
  "fil_rtl.c" and "ut8_rtl.c".
- The new libraries "color.s7i", "enable_io.s7i", "external_file.s7i",
  "file.s7i", "null_file.s7i", "osfiles.s7i", "stdio.s7i", and "text.s7i"
  were added. The contents of this libraries were extracted from the
  "seed7_05.s7i" library. Programs, which need functionality from
  "text.s7i", "osfiles.s7i" or "color.s7i", must now include them.
- To keep basic compatibility, the "stdio.s7i" library is included from
  "seed7_05.s7i", but in a future version this may change. To cope with
  this change programs, which use standard I/O, should include "stdio.s7i".
- The interpreter and the runtime library were improved to support forward
  declarations of variables (the action DCL_FWDVAR is used for this purpose).
- All usages of the function 'fileExists' and its definition in the
  "seed7_05.s7i" library, were removed. The functions 'fileType' and
  'fileOpenSucceeds' can be used as replacement.
- Checks for 'sqrt' were added to the "chkbig.sd7" program.
- The bigInteger 'sqrt' function was improved, to return 0_ for sqrt(0_)
  instead of raising an exception.
- The logic of 'null_file' and 'socket' was changed, such that the functions
  'length', 'seek' and 'tell' raise FILE_ERROR (This files are not seekable).
- The function 'replaceHexChars' in "cgi.s7i" was renamed to
  'fromPercentEncoded'.
- The function 'removeUtf16SurrogatePairs' in "charsets.s7i" was renamed
  to 'replaceUtf16SurrogatePairs'.
- The new function 'openSocket' was introduced in "socket.s7i".
- Unnecessary definitions were removed from "graph.s7i".

20110508:
- FAQ answers about Seed7s application area, Unicode support, Seed7s
  closures and how the compiler implements them, were added.
- A new example program (sydir7.sd7), an utility to synchronize directory
  trees, was added.
- The comanche.sd7 webserver was improved to use the Seed7 interpreter (hi)
  to execute CGI scripts with the extension ".sd7".
- Interpreter, compiler and runtime library were improved to support the
  action CMD_TO_OS_PATH.
- The compiler (comp.sd7) was improved to create #line directives with the
  path notation of the operating system.
- The file "setpaths.c" was added. It is used during the make process to
  write the configuration macros SEED7_LIB, COMPILER_LIB, COMP_DATA_LIB
  and SEED7_LIBRARY to the file "version.h".
- The makefiles mk_mingw.mak, mk_nmake.mak, mk_msvc.mak, mk_bcc32.mak and
  mk_bccv5.mak were improved to use the new file "setpaths.c", instead of
  creating their own versions of "setpaths.c".
- The configuration macros SEED7_LIB, COMPILER_LIB, COMP_DATA_LIB and
  SEED7_LIBRARY were changed to use the standard path representation and
  UTF-8 encoding.
- The function relativeToProgramPath was added to the file "striutl.c".

20110424:
- Information about the lines of code in Seed7 was added to the FAQ.
- The FAQ answers about supported operating systems and the analyze
  phase of the interpreter, were improved.
- Several spelling errors in the FAQ and in the manual were fixed.
- The appearance of tables in the FAQ and in the manual was improved.
- Variants of the function 'timAwait', which work with poll() and ppoll(),
  were added to the file "tim_unx.c".
- The makefiles "makefile", "mk_linux.mak", "mk_cygw.mak" and "mk_osx.mak"
  were improved to select one version of the function 'timAwait'.
- Descriptions of the configuration macros AWAIT_WITH_POLL,
  AWAIT_WITH_PPOLL, AWAIT_WITH_SIGACTION and AWAIT_WITH_SIGNAL were added
  to the file "src/read_me.txt".

20110403:
- The compiler (comp.sd7) was improved to generate less code to initialize
  arrays. Repeated elements in array initializations are recognized and
  the initialization is done with loops instead of individual assignments.
  When compiling panic.sd7 this optimization reduces the size of the
  generated C program by 77% and the size of the executable by 69%.
- The compiler (comp.sd7) was improved to generate string literals with
  reduced space requirements.
- The function 'getArgv' in "arr_rtl.c" was changed to assume that the
  parameters 'arg_0' and 'exePath' are not NULL.
- The code, to recognize constant expressions in the compiler, was improved.
- The superfluous functions 'gkbXpos' and 'gkbYpos' were removed from
  "drw_dos.c".

20110320:
- An explanation where the interpreter looks for include files, was added to
  the FAQ.
- An explanation how the directory of the predefined include libraries
  is determined, was added to the FAQ.
- An explanation how the Seed7 compiler gets information about C compiler and
  runtime, was added to the FAQ.
- A description of several C preprocessor macros used in "version.h" was
  added to the file "src/read_me.txt".
- Missing functions were added to the file "drw_dos.c".
- The function 'bstTail' was added to the file "bst_rtl.c".

20110306:
- The support for CGI programs in the comanche.sd7 webserver was improved.
- The first steps towards evaluating pure functions in the compiler (when they
  are called with constant parameters), were done.
- The compiler (comp.sd7) was improved to generate code with fewer temporary
  variables for the actions SET_ELEM and SET_NOT_ELEM.
- The function 'evaluate' (defined in "progs.s7i" and implemented in "exec.c",
  "prglib.c" and "prg_comp.c") was improved to work correctly when the
  evaluation raises an exception.
- Parameter names were added to the prototypes in the files "exec.h",
  "executl.h", "expr.h", "identutl.h", "match.h", "objutl.h", "name.h",
  "object.h", "parser.h", "runerr.h", "symbol.h" and "token.h".
- The files "memory.c" and "memory.h" were renamed to "objutl.c" and
  "objutl.h" respectively.
- The function 'uintCmpGeneric' was introduced in the file "int_rtl.c" and
  used in compiled programs.
- The example programs "chk_all.sd7" and "chkprc.sd7" were improved.
- The file "drw_x11.c" was changed to reduce the number of warnings generated
  by the C compiler.
- Missing functions were added to the file "drw_dos.c".

20110220:
- The handling of closure parameters in the compiler (comp.sd7) was improved.
- A free string memory management for small strings was introduced in
  "heaputl.h". This improves the performance of some programs with string
  processing by up to 20 percent.
- The "socket.s7i" library was improved to provide protocol independent
  network access.
- The function 'addrFamily' was added to the "socket.s7i" library.
- Several changes were done to support compiling with a C++ compiler.
- The compiler (comp.sd7) was improved to generate runtime library prototypes
  with const qualifier.
- The macros 'likely' and 'unlikely' were added to if-statements checking for
  exception conditions in the files "cmd_rtl.c" and "soc_rtl.c".
- The const qualifier was added to function prototypes in "hsh_rtl.c" and
  "hsh_rtl.h".
- The functions 'socInetAddr', 'socInetLocalAddr' and 'socInetServAddr' in
  "soc_rtl.c" were improved to optionally use the function 'getaddrinfo'.
  With 'getaddrinfo' it is possible to access computers with IPv4 and IPv6
  addresses. For Linux this feature is activated.
- Interpreter, compiler and runtime library were improved to support the
  action SOC_ADDR_FAMILY.
- The compiler (comp.sd7) was improved to generate better code when accessing
  the element of an array that was the result of another computation.
- The compiler (comp.sd7) was improved to generate code with fewer temporary
  variables for the actions ARR_IDX, ARR_LNG, STR_EQ and STR_NE.
- The initialization of string constants in the compiler was improved.

20110203:
- Many thanks to Bogdan Lisovich for his help to investigate and fix a
  compilation problem under Mac OS.
- The fannkuch-redux benchmark "fannkuch.sd7" from "Bart C" was added
  (Many thanks to "Bart C" for releasing "fannkuch.sd7" under the GPL).
- The comanche.sd7 webserver was improved to support CGI programs.
- The chapter explaining 'operating system access' in the manual was improved.
- The function 'getCgiParameters(file)' was added to "cgi.s7i".
- The functions 'setenv' and 'file(PROGRAM)' were added to "seed7_05.s7i"
- The interpreter and the compiler were improved to support the function
  'getenv'.
- Several changes were done to support compiling with a C++ compiler.
- The keyword INLINE was removed from the functions bigCmp, bigCreate,
  bstCmp, bstCreate, fltCmp, intCmp, rflCreate, setCmp, setCreate, strCompare
  and strCreate (C++ does not generate an externally visible function for
  inline functions).
- The compiler (comp.sd7) was improved to generate runtime library prototypes
  with constant types.
- The function timFromIntTimestamp was introduced in "tim_rtl.c" and used
  in "timlib.c" and in compiled code.
- The example programs dirtst.sd7, eliza.sd7, fib.sd7, gkbd.sd7, hamu.sd7,
  kbd.sd7, rand.sd7, rever.sd7, sl.sd7, snake.sd7 and tak.sd7 were improved
  to use the operator <& instead of multiple calls of write.
- The const qualifier was added to function prototypes in "arr_rtl.c",
  "arr_rtl.h", "big_rtl.c", "big_gmp.c", "big_drv.h", "blockutl.c",
  "blockutl.h", "drw_x11.c", "drw_win.c", "drw_drv.h", "fil_rtl.c",
  "fil_rtl.h", "ref_data.c", "ref_data.h", "soc_rtl.c", "soc_rtl.h",
  "tim_rtl.c", "traceutl.c" and "traceutl.h".
- The macro 'os_fstat_struct' was introduced in the files "mk_bccv5.mak",
  "common.h"" "infile.c", "fil_rtl.c", "cmd_rtl.c".
- Parameter names were added to the prototypes in the files "blockutl.h",
  "dir_win.h", "doany.h" and "traceutl.h".

20110116:
- The chapter explaining 'operating system access' in the manual was improved.
- The standard path representation was changed to forbid drive letters
  (instead of "C:" the standard path "/c" must be used).
- The programs comanche.sd7, comp.sd7 and make7.sd7 were improved to work
  with the new standard path representation.
- The spacing between characters in the standard bitmap fonts was improved.
- The example programs startrek.sd7, wiz.sd7, mind.sd7, wumpus.sd7 and
  addup.sd7 were improved to use the operator <& instead of multiple calls
  of write.
- In the "seed7_05.s7i" library the functions toStdPath and convDosPath were
  added and improved respectively.
- The interpreter and the compiler were improved to support for-until loops
  for the type 'ref_list'.
- The recognition of constant expressions in the compiler was improved.
- The initialization of hash constants in the compiler was improved to
  use the function hshEmpty when possible.
- The initialization of string constants in the compiler was improved to
  use string slices which point to an array of characters.
- The 'const' specifier and the macros 'likely' and 'unlikely' were added to
  several *.c and *.h files.
- The implementation of the function path(PROGRAM) in the interpreter was
  improved.
- The drawing functions for filled areas were improved in "drw_x11.c".
- The function 'create_hash' in "hsh_rtl.c" was improved.

20110102:
- The function convDosPath was added to the "seed7_05.s7i" library. It
  converts a path with backslashes and drive letters to the standard path
  representation. E.g.: "C:\seed7" is converted to "/c/seed7". When a path
  is already in the standard path representation it is left unchanged.
- Functions with path parameters or path result were improved to accept
  and return file paths with the standard path representation. The standard
  path representation uses a slash as path separator. Under Windows a
  standard path like "/c" is mapped to the drive letter "C:". Reading the
  directory "/" under Windows returns a list of available drives.
- The function path(PROGRAM), which returns the absolute path of the program,
  was added to the "seed7_05.s7i" library.
- The function dir(PROGRAM), which returns the directory containing the
  program, was added to the "seed7_05.s7i" library. The dir(PROGRAM) function
  allows placing configuration data in the directory of the program.
- The function getenv was improved to work with Unicode environment
  variables.
- The "bas7.sd7" Basic interpreter was improved to interpret RND() as RND
  and MID statements as equivalent to MID$ statements.

20101219:
- The handling of closures in the compiler ("comp.sd7") was improved. When
  possible closures are implemented with code inlining. When this is not
  possible closures are implemented with C functions and a corresponding
  data structure to hold the environment data.
- A new example program (make7.sd7), a make utility which can be used to
  manage the compilation process, was added. Make7 is capable to compile
  the Seed7 release with every mk_*.mak makefile released with Seed7.
- Code was moved from the "tar7.sd7" example program to the new library
  "tar.s7i". The "tar.s7i" library allows programs to deal with tar files
  without the need to call external programs.
- The directory seed7/bin was introduced as place for executables and
  runtime libraries. This should allow installing Seed7 by adding the
  seed7/bin directory to the PATH. Additionally the environment variable
  SEED7_LIBRARY can be defined to contain the path of the seed7/lib directory.
- The performance of the str function (conversion to string), for integer and
  bigInteger values, was improved.
- The standard bitmap fonts were improved to reduce the spacing between
  characters.
- The FAQ answers explaining portability and debugging were improved.
- The chapters explaining string functions and stack traces in the manual
  were improved.
- Tests for the 'lpad0' operator were added to the "chkint.sd7" program.
- Compiler and interpreter were improved to support the action BST_STR, which
  converts a byte string to an UTF-32 string.

20101205:
- The chapter explaining the file open function in the manual was improved.
- The file open function was improved to return STD_NULL on an attempt to
  open a directory.
- Interpreter and compiler were improved to support Unicode program arguments
  under Windows.
- The file "chkccomp.c" was added. It is used during the make process to
  determine properties of the C compiler and the C runtime library.
- The makefiles were improved to use the new generic file "chkccomp.c",
  instead of creating their own versions of "chkccomp.c".
- The time/duration field 'mycro_second' and the functions 'getMycroSeconds',
  'toMycroSeconds' and 'MYCRO_SECONDS' were renamed to 'micro_second',
  'getMicroSeconds', 'toMicroSeconds' and 'MICRO_SECONDS' respectively. This
  changes were done in the example programs and in the "time.s7i" library.
- The functions 'setATime' and 'setMTime' in 'time.s7i' were improved to raise
  RANGE_ERROR when the specified time is illegal or outside the allowed range.
- The carddemo.sd7 example program was improved to allow moving, raising and
  lowering cards with the mouse and mouse buttons.
- The function 'getHttp' in the "gethttp.s7i" library was improved to handle
  the status codes 301, 302, 303 and 307.
- The functions 'hashCode', 'compare', 'setContent', 'toBottom' and 'toTop'
  were added to the "graph.s7i" library and the compiler was improved to
  support them.
- Bitmap fonts were improved to allow scaling.
- The function 'skipSpaceOrTab' was added to the "scanfile.s7i" library.
- The "chkhsh.sd7" example program was improved.
- The compiler was improved to generate code, which defines functions for
  'hsh_create' and 'hsh_destr' before they are used.
- The compiler was improved to generate code with parenthesis around C comma
  operator expressions. This is necessary to allow using such an expression as
  argument of a C macro.
- The handling of the action 'bst_idx' in the compiler was fixed to use
  'bstritype' instead of 'stritype'.
- The compiler was improved to use the function 'generic_sct_cpy'. This
  function was introduced to allow changing an element of a hash, when the
  hash has struct elements.
- The "tar7.sd7" example program was improved to check if a file already
  exists.
- The function 'bst_cpy' in "bstlib.c" was fixed to use 'take_bstri' instead
  of 'take_stri'.
- The function 'cmdFileType' in "cmd_rtl.c" was improved to return FILE_ABSENT
  when one element in the path is not a directory.
- The "drw_x11.c" driver was improved: Expose events now draw only the exposed
  area. The exposed area is not cleared before the expose event is delivered.
  Expose events for the whole window are avoided, when a window is resized.
- The function 'drwFlush' in "drw_x11.c" now proceeds until no expose events
  are present.
- The function 'find_window' in "drw_x11.c" now manages the windows with a
  hash table instead of a linked list.
- The new function 'processEvents' in "drw_x11.c" looks for expose events and
  processes them.
- Documentation comments were added to the function 'filOpen' in the file
  "fil_rtl.c".
- The files "kbd_inf.c" and "kbd_poll.c" were improved to use utf8_mode also
  when the LANG environment variable contains the substring "utf8".

20101121:
- The chapters explaining integer and bigInteger in the manual were improved.
- Several improvements and a bugfix were done in the "gzip.s7i" library.
- The function openGunzipFile and other functions to support a gunzipFile
  were added to the "gzip.s7i" library.
- The "tar7.sd7" (tar archiving utility) example program was improved.
- The function getCStringLiteralText was added to the "scanstri.s7i" library.
- The function timeInTimeZone was added to the "time.s7i" library.
- Several tests of the integer power operator (**) were added to the
  "chkexc.sd7" program.
- The function check_power in the "chkint.sd7" program was improved.
- The compiler (comp.sd7) was improved to generate better code for the
  actions INT_POW and BIG_IPOW.
- The compiler was improved to use string slices for the actions STR_HEAD,
  STR_RANGE, STR_SUBSTR and STR_TAIL.
- The compiler and the files "seed7_05.s7i", "arrlib.c" and "arr_rtl.c" were
  improved to allow appending an element to an array with the &:= operator.
- String and array indexing functions in the compiler were improved.
- The file "seed7/read_me" was renamed to "seed7/read_me.txt".
- The function cmdConfigValue in "cmd_rtl.c" was improved to support the config
  values ALLOW_STRITYPE_SLICES and CC_SOURCE_UTF8.
- Several makefiles were changed such that #undef commands are not written
  to the file "version.h".
- Alternate versions of strAppend and strCopy, which support string slices,
  were added to the file "str_rtl.c".
- The functions strHeadSlice, strRangeSlice, strSubstrSlice and strTailSlice
  were added to the file "str_rtl.c".
- The memory management of strings in the files "heaputl.c" and "heaputl.h" was
  improved to support string slices.
- The files "ref_data.c", "reflib.c", "infile.c", "infile.h", "error.h",
  "info.c", "info.h", "match.c" and "runerr.c" were changed to improve the
  action REF_FILE.
- Parameter names were added to the prototypes in the *lib.h files.
- The function strLpadTemp was added to the file "str_rtl.c" and used in the
  compiler.

20101107:
- The chapter explaining exception handling in the manual was improved.
- The support for bitmap fonts was improved to use fontProperties as base type.
- The '-' function, which computes the difference of two 'time' values (with a
  'duration' result) in "time.s7i", was improved.
- The function cmdConfigValue in "cmd_rtl.c" was improved to support the config
  values C_COMPILER_VERSION and GET_CC_VERSION_INFO.
- In the file "fil_rtl.c" the functions myLseek, myFseek and myFtell were
  renamed to os_lseek, os_fseek and os_ftell respectively.
- The makefiles were changed to define os_fseek, os_ftell, C_COMPILER_VERSION
  and GET_CC_VERSION_INFO.
- Documentation comments were added to the function alternate_utime in the file
  "tim_win.c".

20101024:
- The FAQ answers explaining extensible programming and object orientation,
  were improved.
- The chapters explaining UTF-16 files and exception handling in the manual,
  were improved.
- The standard bitmap font was improved to define more characters.
- Documentation comments were added to the library "utf16.s7i".
- The "bas7.sd7" (Basic interpreter) example program was improved to avoid an
  endless loop when the label or line number of a goto does not exist.
- Several changes were done to improve the configuration of the Seed7
  interpreter.

20101010:
- The first steps towards support of bitmap fonts were done.
- The standard bitmap font was defined for the sizes 10, 12, 14, 16, 18 and 24.
- A new example program (testfont.sd7), which writes with the standard font
  in various sizes, was added.
- The initialization of the random number generator in the function
  uint_rand in "int_rtl.c" was improved.
- The function timMycroSec was defined in "tim_unx.c" and "tim_win.c".

20100919:
- The chapter explaining string indexing in the manual was improved.
- The compiler (comp.sd7) and the hi interpreter were improved to support the
  actions "ITF_CMP" and "ITF_HASHCODE".
- The parameter names of the functions arc, chord and pieslice in the
  "draw.s7i" library were changed to startAngle and sweepAngle.
- The compiler was improved such that compiled programs which use SIGALARM
  (the functions 'wait' and 'await' from the "time.s7i" library may use
  SIGALARM) can be terminated with ctrl-c followed by * and enter.
- Parameter names were added to the prototypes in the file "drw_drv.h".
- The function drwPFArcPieSlice in "drw_win.c" was implemented.
- The functions drwFCircle and drwPFCircle in "drw_x11.c were improved.

20100905:
- The chapter explaining the type 'time' in the manual was improved.
- The support for source level debugging in the compiler (comp.sd7) was
  improved. Now the option -g generates better #line directives and the 'main'
  function is arranged such that the current line shown by a debugger is
  correct when the program is started.
- In the "seed7_05.s7i" library the function "rpos" was overloaded to do a
  reverse search for a character in a string starting from a given position.
- The files "str_rtl.c", "strlib.c", "primitiv.c" and the compiler were
  improved to support the primitive action STR_RCHIPOS (which implements the
  new overloaded 'rpos' function).

20100822:
- A new example program (dragon.sd7), which draws a dragon curve, was added.
- A new example program (fractree.sd7), which draws a fractal tree, was added.
- The chapters explaining the types 'time' and 'duration' in the manual were
  improved.
- The '-' function, which computes the difference of two 'time' values (with a
  'duration' result) in "time.s7i", was improved.
- The functions 'daysInYear', 'getYears', 'getMonths', 'getDays', 'getHours',
  'getMinutes', 'getSeconds' and 'getMycroSeconds' were added to the "time.s7i"
  library.
- The "time.s7i" functions 'years', 'months', 'days', 'hours', 'minutes',
  'seconds' and 'mycro_seconds' were renamed to 'toYears', 'toMonths', 'toDays',
  'toHours', 'toMinutes', 'toSeconds' and 'toMycroSeconds' respectively.
- The "bas7.sd7" example program was improved to use the new "time.s7i"
  functions.
- The makefiles were improved to determine the size and the signedness
  (regarding the function 'localtime') of time_t values.
- The functions 'timToTimestamp' and 'timSetLocalTZ' in "tim_rtl.c" were
  improved to take the size and signedness of time_t into account.

20100801:
- The FAQ was improved to contain three main sections.
- Instructions to verify the correctness of the interpreter were added to the
  FAQ and to the file "src/read_me.txt".
- Instructions how to use the Seed7 interpreter were added to the FAQ.
- An explanation how static type checking works, when types are first-class
  objects, was added to the FAQ.
- The FAQ answers explaining the compilation of the Seed7 interpreter and how
  to compile Seed7 programs, were improved.
- References to the manual were added to several FAQ answers.
- The chapters explaining string literals, character literals, exceptions and
  stack traces in the manual were improved.
- Tests for the 'str' function, where the base of the number system is provided
  as parameter, were added to "chkint.sd7".
- The compiler (comp.sd7) was improved to generate better code for interface
  (dynamic) functions. Now a runtime exception is raised when no adequate
  implementation function is found.
- A definition of 'ACTION_ERROR' was added to "common.h" and "comp.sd7".
- The interpreters stack traces with function call notation, were improved.

20100718:
- The first steps towards support of variable functions and closures in the
  compiler ("comp.sd7") were done.
- The generation of code for 'for' loops and the 'div' operator in the compiler
  was improved.
- The compiler function 'getTemporaryToResultExpr' was improved to generate
  code without casts from 'floattype' to 'generictype'.
- The function 'rand_32' in "int_rtl.c" was renamed to 'uint_rand' and improved
  to work better for 64-bit integers.
- A bug that could occur when loading a saved game was fixed in the example
  program "castle.sd7".
- Tests for conversions from integer to float were added to the "chkflt.sd7"
  example program.

20100704:
- The Seed7 interpreter (hi) was improved to support stack traces with
  function call notation.
- The "progs.s7i" library was improved to support indexing and 'for' loops
  for 'bstring' values.
- Indexing tests for constant arrays were added to the "chkexc.sd7" program.
- The compiler was improved to generate code for array and string indexing with
  temporary values of type 'uinttype' instead of 'memsizetype'.
- The compiler was improved to generate code with the type 'rtlValueunion'
  instead of 'valueunion' (this is the same type as in the file "data_rtl.h").
- The compiler was improved to create dynamic dispatcher functions which copy
  a struct value when necessary (in function 'process_dynamic_action_call').
- The compiler ("comp.sd7") was improved to initialize constant 'bstring'
  values correctly.
- The compiler option -e was improved to create an executable which sends a
  signal when an uncaught exception occurs (A caught exception does not send
  a signal).
- The files "bstlib.c", "primitiv.c" and the compiler ("comp.sd7") were
  improved to support the primitive action BST_IDX (which allows indexing of
  'bstring' values).
- A definition of the type 'rtlStructtype' was added to "data_rtl.h".
- The files "traceutl.c" and "runerr.c" were improved to define and use the
  functions 'printformparam' and 'prot_name'.
- Variables were renamed in the files "strlib.c", "bstlib.c" and "ref_data.c".
- Checks for negative line and column values and casts to 'size_t' were
  added to the files "scr_inf.c", "scr_cap.c" and "scr_tcp.c".

20100620:
- Documentation comments were added to the libraries "graph.s7i", "keybd.s7i"
  and "time.s7i".
- The compiler (comp.sd7) was improved to support the option -te which enables
  tracing of exceptions in the generated executable.
- Some types generated by the compiler were renamed to make them unique (This
  helps a debugger to distinguish types when values are displayed).
- The declaration of 'flush' in "seed7_05.s7i" was improved (This way the
  compiled example program "sl.sd7" works with the correct cursor position).
- The functions 'prc_for_to' and 'prc_for_downto' in "prclib.c" were changed
  to terminate the loop when an exception was raised (This way the loop
  variable has the correct value when an exception occurs).
- The performance of the functions 'strAppend', 'strAppendTemp',
  'strConcatTemp', 'strHeadTemp' and 'strPush' in "str_rtl.c" was improved.
- Several functions in "big_rtl.c" were improved to avoid a MEMORY_ERROR in
  the strange case when a 'realloc' which shrinks memory fails.
- The function alloc_positive_copy_of_negative_big and its calls in "big_rtl.c"
  were improved to avoid memory leaks in out of memory situations.
- The functions 'bigIncr' and 'bigDecr' in "big_rtl.c" were improved to work
  as transactions in out of memory situations.
- The functions 'bigSuccTemp' and 'bigPredTemp' were improved to work without
  calling 'bigIncr' and 'bigDecr' respectively.
- The handling of constant expressions for values with the categories
  ARRAYOBJECT, STRUCTOBJECT, HASHOBJECT and INTERFACEOBJECT in the compiler
  was improved.
- The support for the actions "CMD_SHELL" and "REF_TRACE" in the compiler was
  improved.
- Code in the compiler was moved from the function 'generate_main' to
  'init_array_constants', 'init_struct_constants', 'init_hash_constants' and
  'init_interface_constants'.
- The creation of array constants in the compiler was improved to use a 'for'
  loop over a 'ref_list' instead of an 'integer' 'for' loop and an index
  access to an element of the (possible long) 'ref_list' (This speeds up
  compilation of programs with huge array constants).
- The function 'addTypeCategoryForLocalVars' was added to the compiler.
- The macro 'unlikely' was added to if statements which check for error
  conditions in the files "str_rtl.c", "big_rtl.c" and "heaputl.c".
- The macros 'likely' and 'unlikely' were defined in the file "common.h" and
  in several makefiles.
- Several functions in "flistutl.c" and "heaputl.c" were improved to produce
  a correct heap statistic.
- The const qualifier was added to function prototypes in "prg_comp.c" and
  "prg_comp.h".
- The functions 'prg_decl_objects', 'prg_error_count', 'prg_match',
  'prg_match_expr', 'prg_syobject' and 'prg_sysvar' in "prglib.c" were changed
  to call the corresponding functions from "prg_comp.c".
- The functions 'scr_setpos' and 'scr_write' in "scrlib.c" were changed to
  call the corresponding functions from "scr_rtl.c".
- The function 'printparam' was added to "traceutl.c".

20100606:
- An explanation of the difference between overloading and object orientation,
  was added to the FAQ.
- The function 'popen8', which opens an UTF-8 pipe, was added to the
  "shell.s7i" library.
- Checks for 'log2' were added to the "chkbig.sd7" program.
- Checks for file exceptions were added to the "chkexc.sd7" program.
- A check for the 'keys' function for hash tables was added to "chkhsh.sd7".
- A definition of voidHtmlElements, a set containing HTML element names which
  possibly have no closing tags, was added to the "html.s7i" library.
- The experimental function 'readHtml' was added to the "xmldom.s7i" library.
- Calls of 'rflNe' in the compiler "comp.sd7" were replaced with '!rflEq'.
- Checks with MAX_UTF8_EXPANSION_FACTOR were added to functions in "actutl.c",
  "cmd_rtl.c", "flt_rtl.c", "striutl.c", "str_rtl.c" and "syvarutl.c".
- The function "parseFile" was improved to work with Unicode file names and to
  raise FILE_ERROR when the file is not found or RANGE_ERROR when a backslash
  is used as path delimiter.
- The files arrutl.c and arrutl.h were removed and the function "qsort_array"
  was moved to "arrlib.c".
- Macros with name endings _SIZE_OK and _CHECK_SIZE were introduced in
  "heaputl.h" and used in various files.
- Comparisons with MAX_STRI_LEN and MAX_BSTRI_LEN were added in various files
  to make sure that there are no overflows when the size of a string or
  bstring is computed.
- Macros with name endings _SIZE_OK and _CHECK_SIZE were introduced and used
  in "big_rtl.c".
- The type 'offsettype' was renamed to 'os_off_t' in "fil_rtl.c" and the
  makefiles were improved to write a definition of 'os_off_t' to "version.h".
- When FTELL_WRONG_FOR_PIPE is defined it is assumed that fseek does also
  not work correctly for pipes.
- File read and write functions in "fil_rtl.c" and "ut8_rtl.c" are checked
  for error conditions and FILE_ERROR is raised when an error happens.
- The functions 'find_include_file' and 'init_lib_path' were improved and the
  function 'free_lib_path' was introduced in the file "infile.h".
- A comment was added to 'genPointList' in "graph.s7i" and the implementation
  of 'drwGenPointList' in "drw_x11.c" and "drw_win.c" was fixed.
- In several makefiles functionality was moved from the help program
  'chkftell.c' to 'chkccomp.c'.
- Parameter names were added to the prototypes in several header files.
- Declarations of a variable named 'cmp' were changed from 'int' to 'inttype'
  in the files "arrlib.c", "arr_rtl.c", "hshlib.c" and "hsh_rtl.c".
- The function 'rflNe' was removed from the file "rfl_data.c".

20100516:
- Seed7 now supports the 64-bit versions of Linux and Mac OS X. Many thanks
  to "Mensanator" for his help to reach this goal.
- The compiler (comp.sd7) was improved to generate C programs with fewer
  casts and with no parentheses around the right hand side of assignments.
- The compiler was improved to use the hash 'typeCategory' and 'category'
  values instead of various hashes like 'bigint_types'.
- The functions 'compare' and 'hashCode' were added to the "complex.s7i"
  library to allow complex numbers as keys for hash tables.
- The "progs.s7i" library was improved to allow 'case' statements for
  'category' values.
- The FAQ, explaining function and operator overloading, was improved.
- The "chk_all.sd7" example program was improved to remove an old executable
  before calling the compiler.
- The 'gets' function for UTF-8 files was improved to work correctly when
  reading from a pipe (see functions 'ut8Gets', 'read_and_alloc_utf8_stri'
  and 'read_utf8_string' in "ut8_rtl.c").
- The functions 'remainingBytesInFile', 'read_string', 'read_and_alloc_stri'
  and 'filGets' in "fil_rtl.c" were added or improved.
- The macros 'ALLOC_STRI' and 'REALLOC_STRI' and the functions 'growStri',
  'strMult', 'filGets', 'ut8Gets' and 'socGets' were improved to avoid
  overflows when the size of a memory request is computed.

20100502:
- The "chk_all.sd7" example program was improved to write detailed information
  when tests fail.
- The "shell.s7i" library was improved such that 'popen' behaves correctly
  when the created pipe is closed with 'close'.
- The compiler and the runtime library were improved to use the correct
  exception handling function in compiled and interpreted code (When the
  compiled compiler analyzes a source program the interpreter will execute
  some expressions).
- The macro processing of the compiler was improved to work better for
  function macros.
- The functions seekFileLength, offsetTell, offsetSeek, remainingBytesInFile,
  getFileLengthUsingSeek, getBigFileLengthUsingSeek, filBigLng, filBigSeek,
  filBigTell, filClose, filGets, filPclose, filSeek and filTell in
  "fil_rtl.c" were added or improved. This way the types integer and
  offsettype both can have a size of 32- or 64-bit in any combination.
- The function ut8Gets in "ut8_rtl.c" was improved to use remainingBytesInFile.
- The makefiles "mk_osx.mak", "mk_linux.mak", "mk_cygw.mak" and "makefile"
  were improved to define USE_FSEEKO. This causes the use of 'fseeko' and
  'ftello' as seek and tell functions in "fil_rtl.c".
- Support for the actions BST_CMP, BST_HASHCODE and FIL_PCLOSE was added to
  the interpreter and the compiler.
- The handling of types in the compiler was improved such that subtypes of
  'boolean', 'enum', 'integer', 'bigInteger', 'float', 'char', 'string' and
  'bstring' are supported better.
- A definition of the type 'bstring' was added to the "progs.s7i" library.
- The compiler and the interpreter were improved to support 'bstring' as key
  and value for hash tables and 'ref_list' as value for hash tables.
- A definition of an assignment statement for exceptions was added to the
  "seed7_05.s7i" library.
- Tests for the integer parse function were added to "chkint.sd7".
- The config value LITTLE_ENDIAN was renamed to LITTLE_ENDIAN_INTTYPE in
  several files.
- The compiler was improved to use the functions bstriLiteral and typeLiteral
  to write occurrences of 'bstring' and 'type' literals to the generated C
  program.
- The compiler was improved to create prototypes for the functions bstCmp,
  bstCmpGeneric, bstCreateGeneric, bstHashCode, bstValue, drwGenPointList,
  filClose, filPclose, rflCreateGeneric and typStr.
- The function rflCmp was added to "rfl_data.c".
- The handling of the flag FTELL_WRONG_FOR_PIPE was moved from "cmd_rtl.c"
  to "fil_rtl.c".
- Usages of the constant ULONG_MAX were replaced by UINTTYPE_MAX in the
  files "flt_rtl.c", "int_rtl.c" and "int_rtl.h".
- The function drwGenPointList was changed to use an array parameter in
  "drwlib.c", "drw_drv.h", "drw_win.c", "drw_x11.c" and "comp.sd7".
- The processing of bstParse, bstValue, drwPFArcPieSlice, setSConv, typStr
  and array cpy_* in the compiler was improved.
- The const qualifier was added to function prototypes in "rfl_data.c" and
  "rfl_data.h".

20100418:
- Many thanks to "Mensanator" for his help to debug some 64-bit / Mac OS X
  problems.
- The chapters explaining operating system files, primitive actions and the
  types 'float' and 'type' in the manual were improved.
- A free list memory management for small 'biginttype' (bigInteger) values
  was introduced in "big_rtl.c". This improves the performance of some
  programs by up to 40 percent.
- The macro definition of REALLOC_BIG in "big_rtl.c" was changed to cooperate
  with the free list memory management.
- The file common.h was improved to add a capacity to the struct bigintstruct.
- The graph.s7i library was improved.
- The chk_all.sd7 example program was improved to close the pipe files.
- The compiler (comp.sd7) was improved to handle empty structs correctly.
- The compiler was improved to produce better code when local functions use
  variables from surrounding functions.
- Some changes in the compiler were done to make sure that always the same
  C program is generated.
- The compiler was changed to create a typedef before a type is used.
- The compiler was improved to create data structure definitions which are
  helpful for a debugger.
- The compiler was improved to produce better code for the copy actions arr_cpy,
  big_cpy, bst_cpy, drw_cpy, prg_cpy, rfl_cpy, sct_cpy, set_cpy and str_cpy.
- The compiler was improved to produce better code for the actions prc_for_to,
  prc_for_downto, hsh_for, hsh_for_data_key, hsh_for_key.
- Casts were added to compiler generated function calls of bstCreate,
  bstDestr, bstCpy, arrBaselit, arrBaselit2, arrExtend, arrGen, drwFPolyLine,
  drwPolyLine, prgExec, rflHead, setSConv, prgDestr and to various other
  places.
- The compiler was improved to create prototypes for the functions bigGcd,
  bigOdd, bigPredTemp, bigSuccTemp, cmdChdir, cmdConfigValue, cmdMkdir,
  drwBackground, drwGenPointList, drwNewPixmap, drwPolyLine, drwFPolyLine,
  drwSetTransparentColor, prgDestr, prgExec, refType, rflHead, setIConv,
  setSConv, strGetenv, strToUtf8, strUtf8ToStri and setupFloat.
- The function ref_type in "reflib.c" was improved to reliably raise an
  exception when the type is NULL.
- Unused variables were removed in the files cards.s7i, draw.s7i, gzip.s7i,
  seed7_05.s7i, addup.sd7, bas7.sd7, carddemo.sd7, chk_all.sd7, comanche.sd7,
  comp.sd7, lander.sd7, mahjong.sd7, mandelbr.sd7, panic.sd7, sl.sd7,
  snake.sd7, sokoban.sd7, sudoku7.sd7 and tar7.sd7 .
- Return statements were changed to omit parentheses in the files actutl.c,
  analyze.c, bst_rtl.c, dir_dos.c, dir_rtl.c, dir_win.c, drw_rtl.c, fil_rtl.c,
  flt_rtl.c, hsh_rtl.c, kbd_inf.c, kbd_poll.c, kbd_rtl.c, reflib.c, rfl_data.c,
  soc_rtl.c, tim_rtl.c and ut8_rtl.c .

20100404:
- Many thanks to "Mensanator" for his help to investigate 64-bit and Mac OS X
  problems.
- The chk_all.sd7 check program was improved to check that the interpreted
  compiler and the compiled compiler generate the same C programs.
- Checks for 'set of char' were added to the "chkset.sd7" program.
- The compiler (comp.sd7) and the interpreter (hi) were improved to support the
  actions BST_EQ, BST_NE and BST_PARSE.
- The compiler (comp.sd7) was improved to support the actions BST_APPEND and
  CHR_CMP.
- The compiler (comp.sd7) was improved to make sure that the same types are used
  in generated C programs and in the runtime library.
- The generation of string constants in the compiler was improved to work
  correctly when the string size is stored as 64-bit unsigned value.
- The generation of set constants in the compiler was improved to work correctly
  when bitsettype elements have a size of 64-bit.
- The compiler was improved to use the union type 'valueunion' instead of
  'float2int'.
- The functions arrBaselit, arrBaselit2, arrExtend and arrGen in "arr_rtl.c"
  were changed to use parameters of type rtlGenerictype instead of rtlObjecttype.
- The functions bigCmpGeneric, chrCmpGeneric, fltCmpGeneric, intCmpGeneric,
  refCmpGeneric, setCmpGeneric, strCmpGeneric and typCmpGeneric were introduced
  as compare functions with parameters of type rtlGenerictype.
- The functions bst_append, bst_cpy, bstAppend and bstCpy (defined in "bstlib.c"
  and "bst_rtl.c") were improved to work correctly when source and destination
  are identical.
- The function cmdConfigValue in "cmd_rtl.c" was improved to support the config
  values INTTYPE_SIZE, FLOATTYPE_SIZE and LITTLE_ENDIAN.
- Several makefiles were changed to define FLOAT_SIZE, DOUBLE_SIZE and
  LITTLE_ENDIAN.
- The functions bigCreateGeneric, intCreateGeneric, drwCreateGeneric,
  setCreateGeneric and strCreateGeneric were introduced as create functions with
  a parameter and a result of type rtlGenerictype.
- The function intDestrGeneric was introduced as destroy function with a
  parameter of type rtlGenerictype.

20100321:
- Many thanks to "Mensanator" for his help to investigate the problems Seed7
  had on his 64-bit Mac OS computer. Many of the improvements towards support
  of 64-bit systems and Mac OS X result from his help (see below). Note that this
  release does not support 64-bit systems out of the box, but it certainly is a
  milestone to reach this goal.
- The FAQ, how to compile the interpreter, was improved.
- The file "read_me" was improved to explain compilation under Linux and to
  refer to "src/read_me.txt" for other operating systems.
- An explanation how to compile under Mac OS X was added to "src/read_me.txt".
- An explanation how to correct a make error and a linker error was added to
  "src/read_me.txt".
- The compiler (comp.sd7) was improved to use the function "integerLiteral" and to
  produce C code with more casts and an improved helemlist type.
- The prototype definitions for gkbKeyPressed, kbdKeyPressed, prgSysvar,
  refItftosct and typValue generated by "comp.sd7" were improved.
- All usages of '8 * sizeof(bigdigittype)' as shift count in "big_rtl.c" were
  replaced by 'BIGDIGIT_SIZE'.
- The makefiles and common.h were changed to make sure that int32type, uint32type,
  int64type and uint64type have the size implied by their name.
- The files big_gmp.c, big_rtl.c, drw_x11.c, error.c, fatal.c, match.c, stat.c,
  str_rtl.c and traceutl.c were improved to use better formats in printf() calls.
- Errors in bigToInt32 and bigToInt64 (file "big_rtl.c"), triggered by negative
  numbers when BIGDIGIT_SIZE is less than 32 and 64 respectively, were fixed.
- The function cmdConfigValue in "cmd_rtl.c" was improved to make sure
  that the same types are used in the interpreter and in the compiler (by
  providing an interface to INT32TYPE, UINT32TYPE, INT64TYPE, UINT64TYPE,
  INT32TYPE_LITERAL_SUFFIX, INT64TYPE_LITERAL_SUFFIX and POINTER_SIZE).
- The chkbig.sd7 program was improved with checks for the functions 'ord' and
  'bigInteger conv'.
- The chkint.sd7 program was improved with checks for powers of 2 and with more
  checks for the functions 'str' and 'integer conv'.
- The file "common.h" was improved to define several types and constants for
  integers of different sizes.
- The system to define the (text) screen and keyboard driver was improved to
  work without the file "inf_conf.h".
- The keyboard driver "kbd_inf.c" was improved to define the functions
  return_char_if_present(), consume_chars_present() (which both encapsulate calls
  of "tcsetattr") and key_table_init().
- A new keyboard driver "kbd_poll.c", which can be used when "tcsetattr" does not
  work correctly (e.g. under Mac OS X and Cygwin), was added.
- The makefiles "mk_osx.mak" and "mk_cygw.mak" were improved to use "kbd_poll.c".
- The interpreter option -v was improved to write the line numbers of all lines
  processed (changes in "option.h").
- Changes in "arrlib.c" were done to reduce the number of warnings generated by the
  C compiler.

20100307:
- The functions in the gethttp.s7i library were improved to allow the specification
  of a port number as part of the location (e.g.: localhost:1080/index.htm).
- The tarx.sd7 (tar archiving utility) example program was renamed to tar7.sd7 .
- The codepage 8859_11 was added to the charsets.s7i library.
- The bas7.sd7 (basic interpreter) example program was improved.
- The toutf8.sd7 example program was improved to write an explanation and to
  support several IANA/MIME charset names.
- An explanation what to do, when the path of the bcc32 C compiler contains a space,
  was added to 'src/read_me.txt'.
- Documentation comments were added to the charsets.s7i library.

20100221:
- The generation of '#line' directives in the compiler (comp.sd7) was improved.
  This allows better references to Seed7 source lines during debugging sessions.
- The makefile mk_bccv5.mak was added to support compilation with version 5.5 of
  the bcc32 C compiler.
- Several makefiles were changed to define LINKER_OPT_OUTPUT_FILE (the linker
  option which is used to specify the output file).
- A description of the C source files in the Seed7 package was added to the file
  'src/read_me.txt'.
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.

20100207:
- The compiler (comp.sd7) was improved to support source level debugging with the
  option '-g' (comp.sd7 generates C programs with '#line' directives and the C
  compiler is called with a corresponding debugging option).
- An explanation what happens when an exception is not caught, was added to the
  FAQ.
- The chapter in the manual, which explains a stack trace, was improved.
- The flag 'mayRaiseRangeError' was added to the "bigint.s7i" library to describe
  that 'ord(bigInteger)' may raise RANGE_ERROR.
- The 'set of' type in "seed7_05.s7i" was improved to use 'HASHSET_OF' instead of
  'BITSET_OF' when 'mayRaiseRangeError' is defined for 'ord'.
- The function 'getBits' was renamed to 'getBitsLe' in "gzip.s7i" ('Le' describes
  that the bits are read in little endian order).
- A '=' operator was defined for 'HASHSET_OF' in "seed7_05.s7i".
- The 'strifile' functions 'getwd' and 'getln' were added to "strifile.s7i".
- The bas7.sd7 (basic interpreter) example program was improved.
- The compiler was improved to create executables where the message about an
  uncaught exception uses the file and line of the raise statement.
- Several improvements in the compiler were done to call special case functions
  for bigInteger operations.
- The experimental compiler option -e was introduced to send a signal when an
  exception occurs.
- The compiler was improved to write a message when it cannot remove the old
  executable.
- Several makefiles and the function 'cmdConfigValue' in "cmd_rtl.c" were improved
  to define CC_OPT_DEBUG_INFO and LINKER_OPT_DEBUG_INFO and to rename
  INHIBIT_C_WARNINGS to CC_OPT_NO_WARNINGS.
- The function 'bigZero', which initializes bigInteger variables with zero, was
  added to "big_rtl.c" and "big_gmp.c".
- The function 'bigNe' was removed from "big_rtl.c" and "big_gmp.c" (compiler
  and interpreter were changed to use a negation of "bigEq" instead).
- The function 'bigMultSignedDigit' was added to "big_rtl.c" and "big_gmp.c".
- A call of 'mpz_init' was added to the function 'bigImport' in "big_gmp.c".
- The 'normalize' function in "big_rtl.c" was improved to avoid resizing
  bigInteger values.
- The interpreter was improved such that the appearance of a stack trace is more
  like the one produced by a debugger.

20100117:
- The seed7_05.s7i library was improved to support union (|), intersection (&),
  difference (-) and symmetric difference (><) for sets implemented with hashes
  like 'set of string'.
- The "tarx.sd7" example program was improved to create archives correctly, even
  when the file names are longer than 100 chars.
- The bas7.sd7 (basic interpreter) example program was improved.

20100103:
- The chapter explaining operating system access in the manual was improved.
- The "tarx.sd7" example program was improved to uncompress files when the z option
  is used and to read file names with more than 100 chars correctly.
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.

20091220:
- The chapter explaining parameters in the tutorial of the manual was improved.
- The chapter explaining priority and associativity in the manual was improved.
- The function copy_file in "cmd_rtl.c" was improved to use mmap() only up to a
  maximum size and to use munmap() to delete the mapped area.
- The function cmdRemove in "cmd_rtl.c" was improved to work correctly when
  remove() is not able to remove empty directories.
- The function write_object in "error.c" was improved to write literals correctly.
- The function cp_to_os_path in "striutl.c" was improved to forbid paths
  ending with slash except for the root path ("/") and a device root ("C:/").

20091206:
- The chapters explaining operating system access, primitive actions and exceptions
  in the manual were improved.
- The codepages 708, 862, 864 and 874 were added to the charsets.s7i library.
- The functions 'remove' and 'rename' were renamed to 'removeFile' and 'moveFile'
  in various files.
- The functionality of 'removeFile' was changed such that removing a nonexisting file
  raises an exception.
- The functionality of 'moveFile' was changed such that moving to an existing file
  raises an exception.
- The compiler was improved to use the function floatLiteral to write occurrences
  of float literals to the generated C program.
- The functions actStr, act_str, filLit, fltDgts, refCatStr, refStr, typStr and
  typ_str were changed to use cstri_to_stri() instead of cstri_expand().
- The compiler (comp.sd7) and the interpreter (hi) were improved to support the
  actions BST_LNG and BST_VALUE.
- The toutf8.sd7 example program was improved to support more codepages.

20091115:
- The Unicode support for the functions shell, cmd_sh and popen was improved to
  use wide char (UTF-16) functions under Windows and normal (UTF-8) functions under
  Unix/Linux/BSD.
- The compiler (comp.sd7) was improved to support the actions CMD_FILEMODE,
  CMD_SET_FILEMODE, DRW_OPEN_SUB_WINDOW, DRW_SETPOS, DRW_XPOS and DRW_YPOS.
- The compiler was improved to make sure that generated C programs always define
  the create_... and destr_... functions.
- The handling of the HSH_IDX action in the compiler was improved.
- An error in the compiler concerning forward declarations of function pointers was
  fixed.
- The function bigCpy in "big_rtl.c" was improved to work correctly when source and
  destination are identical.
- Comments were added to the functions bigGrow and bigShrink in "big_rtl.c" to explain
  that this functions work when source and destination are identical.
- Checks for the bigInteger assignment and the functions +:= and -:= were added to
  the file "chkbig.sd7".
- The types os_path_stri and os_path_char were renamed to os_stritype and os_chartype
  respectively in various files.
- The os_path_... macros were renamed to corresponding os_stri_... macros in various
  files.
- The bas7.sd7 (basic interpreter) example program was improved.
- The functions gkbButtonPressed, drwOpen, drwOpenSubWindow, drwSetPos, drwHeight and
  drwWidth in "drw_win.c" were improved to work correctly for subwindows.
- The function drwSetPos in "drw_x11.c" was improved to work correctly for subwindows.
- The functions prc_args, prc_repeat and prc_while in "prclib.c" were improved.
- The functions copyArgv and getArgv were added to "str_rtl.c".

20091101:
- The interpreter (hi) and the compiler (comp.sd7) were improved such that the actions
  STR_CPY, STR_APPEND, ARR_CPY, ARR_APPEND and SET_CPY work correctly when source and
  destination are identical.
- The compiler was improved to use the functions stringLiteral, bigIntegerLiteral and
  bitsetLiteral to write occurrences of string, bigInteger and bitset literals to
  the generated C program.
- The functions arrHead, arrHeadTemp, arrRange, arrRangeTemp, arrTail and arrTailTemp
  in the file "arr_rtl.c" were added or improved to avoid unnecessary copies of arrays
  in compiled programs.
- The functions free_helem, free_hash, create_helem, create_hash and copy_hash in the
  files "hshlib.c" and "hsh_rtl.c" were improved to increase the speed of the actions
  HSH_CPY and HSH_CREATE in interpreted and compiled programs.
- The function chrCLit was added to the file "chr_rtl.c" to support the action CHR_CLIT
  in the interpreter and in the compiler.
- The function chkPower in the file "chkbig.sd7" was improved.
- The function check_assign was added to the file "chkset.sd7".
- The functions check_string_append and check_string_assign in the file "chkstr.sd7"
  were added or improved.
- Several improvements were done to avoid that old memory areas were accessed after
  realloc() was called.
- The function bigLShiftOne was added to "big_rtl.c" and "big_gmp.c" to allow faster
  computation of powers of two in compiled and interpreted programs.
- The functions bigIPowN, bigIPow1 and bigIPow in "big_rtl.c" were added or improved.
- The function drwOpenSubWindow in "drw_x11.c" was changed to omit the creation of a
  graphic context.
- The function filWrite in "fil_rtl.c" was improved.
- The functions strAppend, strAppendTemp, strHead and strHeadTemp in "str_rtl.c" were
  added or improved.
- A possible memory leak in 'while' and 'repeat' loops of compiled programs, which
  can occur when the conditional expression produces temporary values in the heap,
  was closed.
- The handling of the action STR_APPEND in the compiler was improved to use strPush
  when possible.
- The handling of bigInteger expressions with constants in the compiler was improved.
- The compiler was improved to support the actions CHR_CLIT, CMD_FILETYPE_SL and
  CMD_SYMLINK.

20091018:
- The compiler (comp.sd7) was improved to support the primitive actions CMD_GET_CTIME
  and TIM_FROM_TIMESTAMP.
- The handling of the action ARR_ARRLIT in the compiler was improved to work without
  calling the function arrArrlit.
- The handling of the action ARR_IDX in the compiler was improved to use the function
  arrIdxTemp when the array is a temporary value.
- The handling of the action DRW_OPEN in the compiler was improved.
- The interpreter (hi) and the compiler were improved to support the primitive actions
  STR_PUSH, TIM_SET_LOCAL_TZ, DRW_OPEN_SUB_WINDOW, DRW_SETPOS, DRW_XPOS and DRW_YPOS.
- The bas7.sd7 (basic interpreter) example program was improved.
- The functions drwPointerXpos, drwPointerYpos, drwHeight and drwWidth in the file
  drw_win.c were improved.
- The function arrArrlit was removed and the function arrIdxTemp was added in the file
  arr_rtl.c .
- Parameter names were added to the function prototypes of the header file str_rtl.h .
- The functions closedir and wclosedir in dir_win.c were improved to call FindClose.

20091004:
- The function isDigitString in the seed7_05.s7i library was improved.
- The bas7.sd7 (basic interpreter) example program was improved.
- The functions fltIPow and fltRand in the file flt_rtl.c were improved.

20090920:
- A FAQ about extensible programming languages and the portability of Seed7 programs,
  was added.
- The bas7.sd7 (basic interpreter) example program was improved.
- The function gkbButtonPressed in the file drw_win.c was improved.

20090906:
- Various syntax descriptions in the manual were improved.
- The functions get_uint16_le, get_uint32_le, get_uint16_be and get_uint32_be in the
  binary.s7i library were added or improved.
- The functions pointerXPos and pointerYPos were added to the graph.s7i library.
- The function buttonPressed was added to the keybd.s7i library.
- A default 'value' was added to the 'set of' types in the seed7_05.s7i library.
- The types filePermission and fileMode and the functions fileMode and setFileMode
  were added to the seed7_05.s7i library.
- The carddemo.sd7 example program was improved to demonstrate taking and moving
  a card with the mouse.
- Set membership tests were added to the chkset.sd7 program.
- The comanche.sd7 webserver was improved to use a "Content-Type" of "text/html" for
  all files with extension ".htm" or ".html".
- The comanche.sd7 webserver was changed to catch the exception FILE_ERROR (which
  is raised when a browser aborts a connection).
- The compiler (comp.sd7) was improved to do some optimizations for set membership
  tests.
- Some spelling corrections were done in the startrek.sd7 example program.
- The tarx.sd7 example program was improved to read and write file modes.
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.
- The functions arrAppend, arrCat and arrExtend in "arr_rtl.c" were improved to contain
  checks for MEMORY_ERROR when the maximum index is not representable as integer.
- The function copy_any_file in "cmd_rtl.c" was improved to change the
  ownership of a file after the timestamps and the file mode have been changed.
- The functions cmdFileMode and cmdSetFileMode were added to "cmd_rtl.c".
- The functions gkbButtonPressed, drwPointerXpos and drwPointerYpos were added to the
  files "drw_x11.c" and "drw_win.c".
- The interpreter (hi) and the compiler (comp.sd7) were improved to support the primitive
  actions CMD_FILEMODE, CMD_SET_FILEMODE, DRW_POINTER_XPOS, DRW_POINTER_YPOS and
  GKB_BUTTON_PRESSED.
- The function alternate_utime was improved to correct buggy behaviour of bcc32
  (Bcc32 sets the modification time of a file on a FAT filesystem wrong).

20090816:
- The chapters explaining external files, the KEYBOARD file, files with line structure
  and sockets in the manual were added or improved.
- The function timestamp1970ToTime was added to the 'time.s7i' library.
- The tarx.sd7 example program was improved.
- Documentation comments in the libraries rational.s7i, bigrat.s7i, keybd.s7i,
  socket.s7i and time.s7i were improved.
- The function alternate_utime was introduced to allow changing the access and
  modification times of directories under Windows.
- The makefiles mk_bcc32.mak, mk_mingw.mak, mk_msvc.mak, mk_msys.mak and mk_nmake.mak
  were improved to support alternate_utime.
- The type 'screen_keybd_file' was renamed to 'console_keybd_file' and the keyboard file
  'SCREEN_KEYBOARD' was renamed to 'CONSOLE_KEYBOARD' in the file 'keybd.s7i'.

20090802:
- The FAQ about static type checking was improved.
- The chapters explaining the for-each statement and the types integer, hash and set in
  the manual were improved.
- The chapters explaining the file types external_file, utf8_file, keyboard_file and
  socket in the manual were added or improved.
- The chapters explaining file scanning and the function argv(PROGRAM) were improved.
- Documentation comments were added to the functions flush, writeln, eof, hasNext,
  length, listen and accept in socket.s7i .
- The functions gets(utf16le_file, integer) and gets(utf16be_file, integer) in the
  utf16.s7i library were improved.

20090719:
- The charsets.s7i library was improved to support the character sets armscii_8, geostd8,
  ns_4551_1, utf-16be, utf-16le and utf-7.
- The functions utf16beToStri, utf16leToStri, removeUtf16SurrogatePairs and utf7ToStri
  were added to the charsets.s7i library.
- The functions getWord, getNonDigits and getQuotedText were added to the scanfile.s7i
  library.
- The functions skipLine and getLine were added to the scanstri.s7i library.
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.
- The file src/read_me.txt was improved to explain C compiler warnings because of unused
  parameter 'arguments'.

20090705:
- The chapter explaining the function 'getenv' in the manual was improved.
- The dom.s7i library was renamed to xmldom.s7i and its functionality was improved.
- A new library named inifile.s7i, which allows reading key value pairs from an INI file,
  was added.
- The functions getLineComment, getLine, skipXmlComment, getXmlTagHeadOrContent
  skipXmlTag, getNextXmlAttribute and getNextHtmlAttribute in scanfile.s7i were added
  or improved.
- The functions getSymbol, skipXmlComment, getXmlTagHeadOrContent skipXmlTag,
  getNextXmlAttribute and getNextHtmlAttribute in scanstri.s7i were added or improved.
- The function isDigitString was added to the seed7_05.s7i library.
- The functions open_utf16le and open_utf16be in the utf16.s7i library were improved.
- A new library named xml_ent.s7i, which supports XML entity handling, was added.
- The compiler comp.sd7 was improved to create more prototype definitions of extern
  library functions.
- The interpreter (hi) and the compiler (comp.sd7) were improved to accept an UTF-8
  byte order mark at the beginning of a source or include/library file.
- The types gmpBiginttype and rtlBiginttype in the files big_gmp.c and big_rtl.c were
  replaced with biginttype (defined in common.h).
- The function bigLowestSetBit in big_rtl.c was improved to raise RANGE_ERROR when
  the result does not fit in an integer.
- The function move_any_file in cmd_rtl.c was improved to raise FILE_ERROR when the
  file cannot be renamed.
- The function hsh_idx in hshlib.c was improved to work correctly when the hash is
  destroyed after indexing.
- The const qualifier was added in many *.c and *.h files.
- Several makefiles were changed to use BIGINT_LIB_DEFINE and BIGINT_LIB to decide about
  the big integer library (big_rtl.c or big_gmp.c).

20090621:
- The chapters explaining set types and primitive actions in the manual were improved.
- The codepages 720, 1125, 1255, 1256, 1258, 8859_6 and 8859_8 were added to the
  charsets.s7i library.
- A new library named dom.s7i, which contains a simple dom parser, was added.
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.
- The makefile mk_cygw.mak was improved to better support compilation with Cygwin.
- The file src/read_me.txt was improved to explain compiling under Windows with Cygwin.
- The function 'exit' was introduced to terminate a program with a return code.
- The functions setIsSubset and setIsProperSubset were introduced in set_rtl.c and used
  in setlib.c and comp.sd7 to replace the functions setGe, setLe, setGt and setLt.
- The functions setCmp, setEq, setIsSubset and setIsProperSubset in set_rtl.c were
  improved to avoid accessing memory beyond the set data structure.
- The function setDiff in set_rtl.c was improved.
- The chkset.sd7 program was improved with additional checks for the 'compare' function
  and the set relations.
- The chk_all.sd7 check program was improved to take the changes in chkset.sd7 into
  account.
- The compiler comp.sd7 was improved to support the compilation of the primitive action
  SET_CMP.
- The compiler comp.sd7 was improved to compile programs with sets as parameters in
  user defined functions also correctly with the bcc32 C compiler.

20090607:
- The chkint.sd7 program was improved with additional checks for the binomial coefficient
  (for values of k greater than n and for negative values of n) and 'bitLength'.
- The chkstr.sd7 program was improved with additional checks for string subranges
  ([ A .. B ] and [ A len B ]).
- An error concerning array subranges was fixed in the function arr_range (arrlib.c).
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.
- Occurrences of 'float' in the compiler (comp.sd7) were replaced with 'floattype'.
- Functions to compute the most and least significant bit of unsigned integers with
  a width of 8, 16, 32 and 64 bits were added to the file int_rtl.c.
- The new functions ***MostSignificantBit and ***LeastSignificantBit were used in the
  following functions: intBitLength, intLog2, bigBitLength, bigDiv, bigLog2,
  bigLowestSetBit, bigMDiv, bigMod, bigRand, bigRem, setCmp, setMax, setMin and setRand.

20090524:
- Prevention against a Mac OS X malloc() error was added to the function filGets
  (in fil_rtl.c). When malloc() is not able to allocate memory it should return NULL.
  The Mac OS X malloc() function additionally writes a message to stderr. This
  behaviour is not according to K&R C, ANSI C, POSIX or SUS. Thanks to
  John B. Matthews and Frank Goenninger for their help.
- The FAQ and the file src/read_me.txt were improved to explain what happens when
  someone forgot to run 'make depend' before running 'make'.
- The compiler (comp.sd7) was improved to generate better C code to copy arrays and
  hashes. Now the C code is accepted by gcc again and therefore panic.sd7 can again
  be compiled under Linux.
- Several changes in the interpreter and the runtime library were done to reduce the
  number of warnings generated by the C compiler.
- A new library named binary.s7i, which contains functions to read binary data from
  a string or file, was added.
- A new library named zip.s7i, which contains a zip uncompression function, was added.
- The type 'SIZE_TYPE' was replaced by 'size_t' in various *.c and *.h files.

20090510:
- A new example program, the Comanche webserver (comanche.sd7), was added.
- The function getNonDigits was added to the scanstri.s7i library.
- Experimental support for new attribute parameters was added.
- Memory leaks in the functions hsh_excl (hshlib.c) and hshExcl (hsh_rtl.c) were fixed.

20090426:
- The function 'inflate' was added to the gzip.s7i library.
- The function getNextHtmlAttribute was added to the scanfile.s7i library.
- The functions getNextXmlAttribute and getNextHtmlAttribute were added to the
  scanstri.s7i library.
- A sokoban puzzle game example program (sokoban.sd7) was added.
- A new library sokoban1.s7i, which contains the 90 classic sokoban levels, was added.
- Parameter names were added to the function prototypes of the header files actutl.h,
  analyze.h, error.h and findid.h .
- The function cp_to_wpath was changed to raise RANGE_ERROR when a path contains a
  backslash.

20090413:
- A description of data struct elements was added to the chapters rational, bigRational,
  complex, color and time in the manual.
- A description of the functions fileTypeSL, getATime, getCTime, getMTime, setATime,
  setMTime and removeAnyFile was added to the chapter 'OS access' in the manual.
- The compiler (comp.sd7) was improved to correctly handle hashtables as elements of
  structs.
- The compiler (comp.sd7) was improved to generate dispatcher functions which copy a
  reference to a value when the interface needs the value itself (the value is used and
  possibly freed afterwards by the caller).
- The functions getXmlTagHeadOrContent in the scanfile.s7i and scanstri.s7i libraries were
  improved to correctly read the head of empty element tags when they have no attributes
  (E.g: The tag head of "<aTag/>" is "<aTag" ).
- The functions getXmlCharacterReference and skipXmlTag were added to the scanfile.s7i
  library.
- The ENABLE_SORT template function, which allows the generation of a sort function, was
  added to the seed7_05.s7i library.
- The functions fileTypeSL, cloneFile and copyFile were added to the seed7_05.s7i library.
- The functions str_dd_mm_yyyy, str_hh_mm, timestamp1970, time and getCTime were added to
  the time.s7i library.
- The function alternate_localtime_r in the file tim_win.c was improved to correctly
  handle daylight saving time.
- The tarx.sd7 example program was improved to use the function timestamp1970.

20090329:
- The chapters explaining exponentiation and operating system functions in the manual
  were improved.
- The function getSymbolInXmlTag in scanfile.s7i was fixed to really return "" when EOF
  was reached.
- A documentation comment was added to the function getNextXmlAttribute in scanfile.s7i
  and the function was improved to correctly handle tags ending with > and /> .
- The functions cmd_sh and popen were moved from progs.s7i and seed7_05.s7i to the new
  library shell.s7i .
- The function 'shell' was introduced execute shell commands and to return the exit
  code of the shell.
- The chkbig.sd7 program was improved to contain checks for the exponentiation of -1.
- The chkexc.sd7 program was improved to contain more checks for exceptions raised by
  integer exponentiation.
- The compiler (comp.sd7) was improved to generate better code for some bigInteger
  operations and to support the actions cmd_readlink and cmd_remove_any_file.
- Parameter names were added to the function prototypes of the header file big_drv.h .
- The functions bigSuccTemp and bigPredTemp were added to the files big_rtl.c and
  big_gmp.c .
- A documentation comment was added to the function cp_to_command in the file striutl.c .

20090309:
- The chapters about boolean, complex, char, string and time in the manual were improved.
- A new library named utf16.s7i, which contains support to read and write UTF-16 files,
  was added.
- The functions removeAnyFile, readlink and symlink were added to the seed7_05.s7i
  library.
- The seed7_05.s7i function fileType was improved to return the values FILE_ABSENT,
  FILE_UNKNOWN, FILE_REGULAR, FILE_DIR, FILE_CHAR, FILE_BLOCK, FILE_FIFO, FILE_SYMLINK
  and FILE_SOCKET.
- The functions strTimeZone, getATime, setATime, getMTime and setMTime were added to the
  time.s7i library.
- The time.s7i functions str_date, str_time and toGMT were renamed to strDate, strTime
  and getUTC respectively.
- The time.s7i function 'str' for the type 'time' was improved to include also a time
  zone description.
- The K&R function headers in several files were corrected.
- The files tim_rtl.c and tim_rtl.h were introduced to support conversion between 'time'
  and Unix timestamps with the functions mkutc, timFromTimestamp and timToTimestamp.
- The driver functions timAwait and timNow were improved in the files tim_dos.c,
  tim_unx.c and tim_win.c .
- The functions remove_dir, remove_any_file, copy_dir, copy_any_file, cmdBigFileSize,
  cmdFileType, cmdGetcwd and cmdSymlink in the file cmd_rtl.c were improved.
- The functions cmdGetATime, cmdGetMTime, cmdReadlink, cmdRemoveAnyFile, cmdSetATime
  and cmdSetMTime were added to the file cmd_rtl.c .
- The feature test macro WCHAR_OS_PATH was renamed to OS_PATH_WCHAR in several files.
- Several makefiles were improved to create defines for HAS_SYMLINKS, USE_LOCALTIME_R,
  INT64TYPE_SUFFIX_LL, OS_PATH_UTF8, OS_PATH_WCHAR, os_getcwd, os_opendir, os_readdir,
  os_closedir, os_DIR, os_dirent_struct and os_lstat in the file version.h .
- The interpreter and the compiler (comp.sd7) were improved to support the new
  primitive actions CMD_GET_ATIME, CMD_GET_MTIME, CMD_READLINK, CMD_REMOVE_ANY_FILE,
  CMD_SET_ATIME and CMD_SET_MTIME.
- An explanation of the defines OS_PATH_WCHAR, OS_PATH_UTF8, os_getcwd, os_opendir,
  os_readdir, os_closedir, os_DIR, os_dirent_struct and os_lstat was added to the file
  'src/read_me.txt'.
- The function alternate_localtime_r was introduced to be used with bcc32 (which has
  strange ideas about when daylight saving time begins).
- The files bas7.sd7 and planets.sd7 were adjusted to use the improved time functions.
- Spelling errors in the FAQ and in src/read_me.txt were fixed.

20090222:
- A new example program (chkhsh.sd7), which checks hash table operations, was added.
- The logic to link to libraries in the compiler (comp.sd7) was improved.
- A compare function was added for the type 'boolean'.
- The file big_rtl.c was improved to avoid unnecessary shifts wider than the size of
  the type (the result of this shifts was not used anyway).
- The functions remove_dir, remove_any_file, copy_file, copy_dir, copy_any_file and
  move_any_file in the file cmd_rtl.c were improved to use 'os_path_stri' instead of
  'char *'.
- The driver functions cmdCopy, cmdMove and cmdRemove were improved to use wide char
  (UTF-16) functions under Windows and normal (UTF-8) functions under Unix/Linux/BSD.
- The file common.h was improved to contain default defines for os_rmdir, os_chown,
  os_chmod, os_utime, os_utimbuf_struct, os_remove and os_rename.
- The functions dirOpen, dirRead and dirClose in the file dir_rtl.c were improved
  to use os_opendir, os_readdir and os_closedir (defined in dir_rtl.h).
- Commands to create defines for MKDIR_WITH_ONE_PARAMETER, CHOWN_MISSING and
  CHMOD_MISSING in the file version.h were removed from the makefiles.
- The K&R function headers in several files were corrected.
- An explanation of the defines WCHAR_OS_PATH, os_chdir, os_mkdir, os_rmdir, os_fstat,
  os_stat, os_stat_struct, os_chown, os_chmod, os_utime, os_utimbuf_struct, os_remove
  and os_rename was added to the file 'src/read_me.txt'.

20090201:
- A new saving phase was added to the savehd7.sd7 example program. Savehd7 can be used
  to save a potentially damaged harddisk partition to an image file.
- A new chapter about class methods was added to the manual.
- The chapter about the type 'type' in the manual, was improved.
- A check for NULL pointers was added to the function raise_with_arguments.

20090118:
- The savehd7.sd7 example program, which can be used to save a potentially damaged
  harddisk partition to an image file, was improved.
- A FAQ about compiling the Seed7 interpreter was added.
- The function bigFileSize was added to the bigfile.s7i library.
- The functions file_size and file_type were renamed to fileSize and fileType in the
  seed7_05.s7i library.
- The driver functions cmdBigFileSize, cmdChdir, cmdFileType cmdFileSize, cmdMkdir were
  improved to use wide char (UTF-16) functions under Windows and normal (UTF-8) functions
  under Unix/Linux/BSD.
- In the files big_rtl.c and big_gmp.c the function bigFromInt32 was added and the
  functions bigIConv and bigOrd were removed.
- In the file big_drv.h the macros bigIConv and bigOrd were added.
- In the file big_rtl.c the functions bigFromUInt32 and bigFromUInt64 were fixed.
- The feature test macro WIDE_CHAR_STRINGS was renamed to UTF32_STRINGS in various files.
- The primitive action CMD_LNG was renamed to CMD_FILESIZE.
- Several makefiles were improved to create defines for os_chdir, os_mkdir, os_fstat,
  os_stat and os_stat_struct in the file version.h .

20090104:
- A new example program (savehd7.sd7), which can be used to save a partially damaged
  harddisk partition to an image file, was added.
- Several spelling errors in the FAQ and in the manual were fixed.
- The library line.s7i was improved to be useable as file which flushes every line.
- The bas7.sd7 (basic interpreter) example program was improved.
- The preprocessor macros HAS_INT64TYPE and INT64TYPE_IS_INT64 were replaced
  by INT64TYPE in various files.
- The makefiles were improved to create defines for INT64TYPE and UINT64TYPE in the
  file version.h .
- A makefile mk_osx.mak was added to support compilation under Mac OS X with Xcode.
- The type PRIMITIVE_FILE was improved to support the 'setbuf' function.
- Errors in the functions setIConv, prot_set and bigToInt64 were fixed.

20081221:
- The chapter about the Seed7 structured syntax definition in the manual was improved
  (thanks to James Harris for the suggestions and the proofreading).
- A new library named gethttp.s7i, which contains support to get data with the
  HTTP protocol, was added.
- A new library named html.s7i, which contains support functions for HTML, was added.
- The bas7.sd7 (basic interpreter) example program was improved.
- The compiler (comp.sd7) was improved to support the addresses of ITF_CPY and
  ITF_CREATE. That way hash tables with interface values are supported.

20081208:
- A new chapter about the Seed7 structured syntax definition was added to the manual.
- The chapter about declarations in the manual was improved.
- The function getValueOfHeaderAttribute was added to the scanstri.s7i library.
- The seed7_05.s7i library was improved to support case statements for the type boolean.
- The wiz.sd7 example program was improved.

20081116:
- The support for compilation with the bcc32 C compiler from BDS was improved such that
  the chk_all.sd7 check program succeeds.
- The FAQ about the operating systems supported by Seed7, was improved.
- A chapter describing how to replace pointers with interface types was added to the
  manual.
- The obsolete use of the operator >> and << for file input and output was removed
  from the seed7_05.s7i library.
- The general check program chk_all.sd7 was improved to check also for the successful
  compilation of the compiler.
- The compiler (comp.sd7) was improved to generate C programs which are acceptable for
  the bcc32 C compiler.
- The compiler was improved to check that a temporary tmp_*.c file is marked with a
  temp_marker.
- The documentation file src/read_me.txt was improved to explain the #define value
  CHECK_INT_DIV_BY_ZERO.

20081102:
- A new gzip.s7i library, which contains a gzip uncompression function, was added.
- The functions getXmlTagHeadOrContent, getSymbolInXmlTag, getHtmlAttributeValue and
  getNextXmlAttribute were added to the scanfile.s7i library.
- In the library scanstri.s7i the function getXmlTagHeadOrContent was added and the
  function getSymbolInHtmlTag was renamed to getSymbolInXmlTag.
- The call stack written by the (hi) interpreter, when an uncaught exception occurs, was
  improved.
- The compiler (comp.sd7) was improved to write a file name and a line when an uncaught
  exception occurs.
- The handling of sockets in the compiler was improved to support them also for the
  cl C compiler from msvc.
- The makefiles were improved to define 'make clean' additionally to 'make clear' to
  remove the object files and libraries which were created during the compilation process.
- The documentation file src/read_me.txt was improved to explain more #define values used
  in the file version.h .

20081019:
- The support for compilation with the cl C compiler from msvc was improved such that
  the chk_all.sd7 check program succeeds.
- The chkexc.sd7 and chkflt.sd7 example programs were improved to check for more cases
  of division by zero.
- The compiler (comp.sd7) was improved to take the config values ISNAN_WITH_UNDERLINE,
  CHECK_INT_DIV_BY_ZERO and LINKER_FLAGS into account.
- The compiler was improved to avoid boolean expressions with too much parenthesis levels.
- The functions opendir and readdir in the files dir_dos.c and dir_win.c were improved to
  make buffer overflows impossible.
- The files dir_rtl.c and dir_rtl.h were introduced to support reading directories based
  on opendir(), readdir() and closedir() and optionally on the wide char functions
  wopendir(), wreaddir() and wclosedir().
- An implementation of the functions wopendir(), wreaddir() and wclosedir() based on
  the functions FindFirstFile() and FindNextFile() was added to dir_win.c .
- The documentation file src/read_me.txt was improved to explain compilation with bcc32.
- The makefiles mk_mingw.mak, mk_msys.mak, mk_nmake.mak, mk_msvc.mak and mk_bcc32.mak
  were improved to support the new wide character directory read functions.
- The demo mode of the mahjong.sd7 example program was improved.
- The file scr_win.c was improved to support the keypad cursor keys better.
- The functions wstri_expand and wstri_to_stri were added to the file striutl.c .

20081005:
- The chapter about primitive actions in the manual was improved.
- The definition of STD_NULL in the seed7_05.s7i library was improved to support
  read and write operations with STD_NULL.
- The bas7.sd7 (basic interpreter) example program was improved to support file numbers
  outside the range of 1 to 256 and to convert arrays to images when necessary.
- The compiler (comp.sd7) was improved to support local interface declarations and
  dynamic functions which refer to constant values.
- Several improvements were done in the compiler to support generating C programs
  acceptable for the cl compiler from msvc and for the bcc32 compiler.
- A check for double function pointers was added to the function get_primact() in the
  file actutl.c .
- A boss mode was added to the lander.sd7 and sudoku7.sd7 example programs.
- The file common.h was improved to introduce the types int64type, uint64type,
  int32type, uint32type, int16type, uint16type, int8type and uint8type.
- The functions bigULConv and bigLOrd were renamed to bigFromUInt64 and bigToInt64
  respectively.
- The function bigCLit() was improved to avoid C code that the cl C compiler from msvc
  miscompiles to the wrong machine code.
- The functions setupFloat and _matherr and the makefile mk_bcc32.mak were added
  to support compilation with bcc32.
- The feature test macro HAS_LONGTYPE_64 was renamed to HAS_INT64TYPE in various files.
- The feature macros INHIBIT_C_WARNINGS and NO_EMPTY_STRUCTS were added or improved.
- The makefiles mk_mingw.mak, mk_msvc.mak and mk_nmake.mak were changed to create and
  use the file setpaths.c instead of several other files.

20080921:
- The chapters about object orientation and primitive actions in the manual,
  were improved.
- The primitive actions BIG_MCPY, FLT_HSIN, FLT_HCOS and FLT_HTAN were renamed to
  BIG_MULT_ASSIGN, FLT_SINH, FLT_COSH and FLT_TANH respectively.
- The bas7.sd7 (basic interpreter) example program was improved.
- The compiler (comp.sd7) was improved to support the primitive actions CHR_CONV,
  FLT_PLUS, PRG_MATCH_EXPR, REF_CAT_PARSE, REF_CONV and REF_SETVAR.
- The compiler (comp.sd7) was improved to support HASHOBJECT constants.
- A binary gcd function (binaryGcd) was added to the gcd.sd7 example program.
- The X11 keyboard driver was improved to support the num-lock functionality.
- The functions hash_data_to_list and hash_key_to_list were added to the file listutl.c
- The is_var function defined in progs.s7i library was renamed to isVar.
- The functions matchExpr, setVar, hash_data_to_list and hash_key_to_list were added
  to the progs.s7i library.

20080902:
- The FAQ about development speed and type checking was improved.
- The chapters about boolean, bigInteger, rational, bigRational, float, char, complex,
  string, reference, ref_list and program in the manual, were improved.
- The functions rflTail and rflRange were improved to raise MEMORY_ERROR instead of
  RANGE_ERROR in out of memory situations.
- The 'conv' operator was improved to convert an integer to a float, rational, complex
  or bigRational, to convert a float to a complex and to convert a bigInteger to
  bigRational.
- The function getSymbolWithHtmlEntities was added to the scanfile.s7i library.
- The getc function for the type null_file was improved.
- The 'conj' operator was added for the type complex.
- The compiler (comp.sd7) was improved to support the primitive action FLT_ICONV.
- Several changes were done to support compilation when DO_HEAP_STATISTIC is defined.
- The documentation file src/read_me.txt was improved.
- The 'reference' functions category, getType, is_var, local_vars, local_consts, body,
  array_to_list, array_min_index, array_min_index, struct_to_list, interface_to_struct,
  getValue, setCategory, setType were improved to raise the exception RANGE_ERROR
  when a reference is NIL or does not have the required category.

20080817:
- The FAQ about static type checking was improved and an FAQ about development speed
  and type checking was added.
- A chapter about the type 'category' was added to the manual.
- The chapters about boolean, string, set and reference in the manual, were improved.
- The functions toUuencoded and fromUuencoded were added to the encoding.s7i library.
- The html entity 'ang' and several comments were added to the html_ent.s7i library.
- The error management of the chkint.sd7 program was improved.
- The 'configValue' function was improved to support values for TWOS_COMPLEMENT_INTTYPE,
  INTTYPE_64BIT and INTTYPE_LITERAL_SUFFIX.
- The function growStri was improved to work correctly in out of memory situations.
- The makefiles makefile, mk_cygw.mak, mk_linux.mak, mk_mingw.mak, mk_msvc.mak,
  mk_msys.mak and mk_nmake.mak were improved to define TWOS_COMPLEMENT_INTTYPE when
  appropriate.
- The file setlib.c was improved to work correctly with bitsettype's of different sizes.

20080803:
- The charsets.s7i library was renamed to chartype.s7i .
- A new charsets.s7i library, which contains 44 codepages and the functions conv2unicode
  and conv2unicodeByName, was added.
- The encoding.s7i library, which contains encoding and decoding functions for Base64
  and Quoted-printable, was added.
- The functions 'ord' and 'conv' and a 'for' loop were added to the type 'category'
  defined in the progs.s7i library.
- The functions getWord, getQuotedText and getHttpSymbol were added to the scanstri.s7i
  library.
- The functions getSymbolOrComment, getSymbol and getSymbolInHtmlTag of the scanstri.s7i
  library were improved to return symbols without leading whitespace.
- The function getHtmlTagOrContent was renamed to getXmlTagOrContent in the scanfile.s7i
  library.
- A 'for key' loop for arrays, a 'for' loop for HASHSETs, a 'str' function to convert
  integers to strings with base, a 'lpad0' operator for strings and the functions
  striToUtf8, utf8ToStri and toInt were added to the seed7_05.s7i library.
- The files cgi.s7i and bas7.sd7 were improved to use the new toInt function.
- The interpreter and the compiler (comp.sd7) were improved to support the new
  primitive actions INT_STR_BASED, STR_LPAD0, STR_TOUTF8 and STR_UTF8TOSTRI.
- The compiler (comp.sd7) was improved to generate better code for the primitive actions
  ARR_IDX, STR_ELEMCPY and STR_IDX.
- The toutf8.sd7 example program was modified to use the new charsets.s7i library.
- The files heaputl.c, heaputl.h, str_rtl.c and strlib.c were improved to use strings
  with capacity for the primitive actions STR_APPEND, STR_CAT and STR_HEAD.
- The makefiles were changed to use the $(CFLAGS) always when $(CC) is invoked.
- The socClose function in the file soc_rtl.c was improved to call close() or
  closesocket() depending on the operation system.
- The functions socGetc, socLineRead and socWordRead of the file soc_rtl.c were improved
  to interpret characters >= '\128\' as unsigned.

20080720:
- The FAQs about reserved words and templates were improved.
- The chapters about boolean, integer, bigInteger, rational, float, complex, char
  and array in the manual, were improved.
- A subrange type was added for the types integer, char and the enumeration types.
- The makefiles were improved to set the USE_SIGSETJMP macro in the version.h file.
- The flag USE_SIGSETJMP is now taken into account in the floating point exception
  handling generated by the compiler.
- Support for the action ENU_CONV was added to the (hi) interpreter and the compiler.
- A subrange type is used now in the dnafight.sd7 example program.
- The function update_owner in the file match.c was improved to copy values instead
  of just referring to them.
- The function getSymbolInHtmlTag was added to the scanstri.s7i library.
- The interpreter and the compiler (comp.sd7) were improved to support the function
  /:= for the types float and complex.
- The file seed7/prg/files was replaced with seed7/prg/files.txt which contains
  also a list of include files.
- The function strUtf8ToStri was added to the file str_rtl.c .

20080707:
- Various FAQs about reserved words, user defined statements, static type checking,
  garbage collection, container classes, primitive types and the difference between
  object and primitive types were added or improved.
- The chapters about boolean, integer, bigInteger, rational, bigRational, float,
  complex, char, string and program in the manual, were added or improved.
- A contour was added to a building in the lander.sd7 example program.
- Some debugging output was removed from the mahjong.sd7 example program.
- The function analyze and analyze_stri were renamed to parseFile and parseStri
  respectively in the files progs.s7i, calc.sd7, comp.sd7 .
- The primitive actions PRG_ANALYZE and PRG_STR_ANALYZE were renamed to PRG_FIL_PARSE
  and PRG_STR_PARSE respectively.
- The functions prgAnalyze and prgStrAnalyze were renamed to prgFilParse and prgStrParse
  respectively.

20080622:
- A new example program (cellauto.sd7), which simulates cellular automata, was added.
- Test cases for the @:= statement were added to the chkstr.sd7 program.
- The compiler (comp.sd7) was improved such that the generated code raises MEMORY_ERROR
  when the 'malloc' function fails.
- Support for the actions SET_ICONV and SET_SCONV was added to the (hi) interpreter
  and the compiler.
- The compiler was improved to optionally generate code without range checks for the
  STR_ELEMCPY action.
- The handling of functions returning references to existing objects in the compiler
  was improved.
- Parameter names were added to the function prototypes of the header files bln_rtl.h,
  chr_rtl.h, cmd_rtl.h, flt_rtl.h and ut8_rtl.h.
- The compile time flag RSHIFT_DOES_SIGN_EXTEND is now taken into account for the
  right shift in the macro 'bitset_pos' defined in the file set_rtl.h.

20080608:
- The chapter about symbol scanning from a file in the manual, was improved.
- A new include file (cgi.s7i) to support the Common Gateway Interface, was added.
- A bug in the getLine function of the scanfile.s7i library was fixed.
- The functions fileExists was added to the seed7_05.s7i library.
- The handling of closures in the compiler (comp.sd7) was improved.
- A new example program (lander.sd7), which simulates a lunar landing, was added.

20080525:
- A new chapter about complex numbers was added to the manual.
- A new chapter about symbol scanning from a file, was added to the manual.
- The makefile for Linux/BSD/Unix and the file mk_linux.mak were improved to be usable
  for shells where a \n in the echo command leads to errors in the make process (thanks to
  Wolfgang Raith, Jens Thoms Toerring and Arnold Hendriks for helping with this issue).
- The function cp_to_wstri was protected with 'ifdef USE_WFOPEN' in the files striutl.c and
  striutl.h (thanks to Wolfgang Raith for pointing out compilation problems).
- The functions = and <> were added to the complex.s7i library.
- The documentation comments of the libraries scanfile.s7i and scanstri.s7i were improved.
- The functions skipLine and getLine were added to the scanfile.s7i library.
- The strifile.s7i library, which supports string based files, was added.
- The documentation comment of the get_symbol function in the file bas7.sd7 was improved.
- The function processFile which checks the functions getWhiteSpace and getSymbolOrComment
  was added to the program chkscan.sd7 .
- The functions filWrite and ut8Write were improved to raise FILE_ERROR when the
  call of fwrite() was not able to write the whole string.
- Support for the primitive action flt_cast was added to the interpreter and compiler.
- The function setToInt which can convert parts of a set to an integer was added to
  set_rtl.c .

20080508:
- The FAQ "Why a new programming language?" was improved.
- The descriptions of the functions 'rem', 'mod', '[ A .. B ] times C', minIdx, maxIdx,
  rand(array), insert(array), category, local_vars, local_consts, setCategory, setParams,
  'in'(ref_list), 'not in'(ref_list), make_list, pos(ref_list), '&:='(ref_list),
  '@:='(ref_list) and the bufferChar variable in the manual were added or improved.
- The functions float cast, float varCast, boolean varConv, char varConv
  TRACE_REF, pos(ref_list), [minIdx .. maxIdx], minIdx, maxIdx (+ usage of them),
  minIntIdx, maxIntIdx, card(hashSet), xalloc, ord(enum), getwd(null_file) and
  getln(null_file) in the seed7_05.s7i library were added or improved.
- The compiler (comp.sd7) support for the primitive actions arr_maxidx, arr_minidx,
  flt_icast, int_pow, rfl_ipos and sct_alloc was added or improved.
- The compiler handling of INTERFACEOBJECTs and the generation of prototypes was improved.
- The compiler was improved to generate static dispatcher functions.
- The functions arr_maxidx and arr_minidx were added to the file arrlib.c.
- The function bigUIConv was added to the file big_gmp.c.
- The function rflIpos was added to the file rfl_data.c.
- The function flt_icast was added to the file fltlib.c.
- The functions refArrmaxpos, refArrminpos, ref_arrmaxpos and ref_arrminpos were renamed to
  refArrmaxidx, refArrminidx, ref_arrmaxidx ref_arrminidx.

20080420:
- An explanation how to uncompress the Seed7 package was added to the FAQ.
- The descriptions of the functions log2, gcd, lowestSetBit, 'rem', 'mdiv' and
  'mod' in the manual were added or improved.
- The functions gcd and modInverse were added to the bigint.s7i library.
- The bigrat.s7i library was changed to use the gcd function from the bigint.s7i library.
- The chkbig.sd7 program was improved with additional checks for the monadic plus, 'div',
  'rem', 'mdiv', 'mod' and bigInteger constants.
- The chkexc.sd7 program was improved with additional checks for bigInteger functions.
- The chk_all.sd7 program was improved to take the new checks into account.
- The compiler (comp.sd7) was improved to work also with GMP's bigInteger's.
- The compiler was improved to support big_plus and big_gcd.
- The handling of +:=, -:=, *:=, <<:= and >>:= in the compiler was improved to
  avoid memory leaks.
- The handling of the bigInteger 'mdiv' and * in the compiler was improved to do some
  optimizations like using shift operations instead.
- Three example programs printpi1.sd7, printpi2.sd7 and printpi3.sd7 were added.
- The big_gmp.c interface library was added to allow bigInteger computations based
  on the mpz_ functions of the GMP library.
- The file big_rtl.h was renamed to big_drv.h.
- The file biglib.c was change to allow working with big_rtl.c or big_gmp.c .
- The file big_rtl.c was improved to work with a BIGDIGIT_SIZE of 32.
- The functions bigHexCStri, uBigMultSub, uBigSqare, bigClit, bigCmpSignedDigit, bigDiv,
  bigGcd, bigGrow, bigImport, bigLShift, bigLShiftAssign, bigMDiv, bigMod, bigOdd, bigRem,
  bigRShift, bigShrink and bigToBStri of the file big_rtl.c were added or improved.
- An error message about "match value failed" was suppressed in dcllib.c .
- The int_mdiv action (defined in intlib.c) was improved for speed.
- The function prot_bigint (defined in traceutl.c) was changed to use bigHexCStri.
- The function printtype (defined in traceutl.c) was changed to avoid writing a pointer value.
- A bug in the function typHashCode (defined in typ_data.c) was fixed.
- The file read_me.txt was improved to contain a chapter about warnings and a chapter
  which explains how use the GMP library.

20080406:
- The interpreter and the compiler (comp.sd7) were improved to support the functions
  bitLength, lowestSetBit, <<, <<:=, >> and >>:= for the types integer and bigInteger
  (inspired by Mensanator for a program which explores the Collatz Conjecture).
- The priority of the << and >> operators was changed from 19 to 9 in the file syntax.s7i.
- Uses of the obsolete file output operator << where replaced with write statements in
  bas7.sd7, comp.sd7, ms.sd7, pac.sd7, sl.sd7, snake.sd7, tarx.sd7, tetg.sd7 and tet.sd7.
- Descriptions about the new integer/bigInteger functions <<, <<:=, >>, >>:=, bitLength and
  lowestSetBit were added to the manual.
- The chkint.sd7 program was improved with additional checks in chkint for 'div', 'rem',
  'mdiv', 'mod', <<, <<:=, >> and >>:= .
- The chkbig.sd7 program was improved with additional checks for **, compare, lowestSetBit,
  <<, <<:=, >> and >>:= .
- The compiler (comp.sd7) was improved to create optimized/improved versions for the bigInteger
  functions odd, compare, <, <=, >, >=, ** and for the integer functions 'mdiv' and 'mod'.
- A description about the type bigRational was added to the manual.
- An explanation about type inference was added to the FAQ.
- A new constructor for complex numbers from a float was added to the complex.s7i library.
- A boss mode was added to the panic.sd7 and mahjong.sd7 example programs.
- The bas7.sd7 (basic interpreter) example program was improved.
- The makefiles were improved to set the RSHIFT_DOES_SIGN_EXTEND macro in the version.h file.
- A bug in the primitive action flt_mcpy was fixed.
- The primitive action flt_str was improved to support denormal float numbers better.

20080319:
- The functions getEscapeSequence, getCharLiteral, getStringLiteral, getSymbolOrComment and
  getSymbol were added to the scanstri.s7i library.
- The file read_me.txt, which explains the compilation of the interpreter, was added to
  the src directory.
- The actions act_value, big_value, chr_value, fil_value, flt_value, int_value, prg_value,
  rfl_value, set_value, str_value and typ_value were improved to raise an exception for
  references which are NIL or refer to an object with the wrong category.
- The support for the primitive actions itf_eq and itf_ne in the compiler (comp.sd7) was
  improved.
- The handling of bitsets with negative elements in the compiler (comp.sd7) was improved.
- The bas7.sd7 (basic interpreter) example program was improved to support the -p
  option which asks for a prompt at the end of the program.
- Support for the actions bst_append and bst_cat was added to the interpreter.

20080302:
- A new chapter about compile errors was added to faq and to the read_me.
- The functions skipComment, getComment, skipLineComment, getLineComment and getNumber were
  added to the scanstri.s7i library.
- A new example program (chk_all.sd7), which runs interpreted and compiled checks, was added.
- Support for the primitive action CMD_CHDIR was added to the compiler (comp.sd7).
- Several memory leaks, which happen in the handling of MEMORY_ERROR exceptions, were removed.
- All primitive actions which start with CLS_ were renamed such that the name starts with ITF_ .
- The files clslib.c and clslib.h were replaced by itflib.c and itflib.h .
- The objectcategory CLASSOBJECT was replaced with the objectcategory INTERFACEOBJECT.
- The functions popen and cmd_sh were improved to be consistent on all platforms. Now they
  use always '/' as path delimiter and '\\ ' to describe spaces in the command path.
- The gets function for external_files was improved to work correctly when pipe files are
  read as a whole.
- A workaround was added for a wrong behaviour of the ftell() function under MinGW for pipes.
- The -q option of the 'hi' interpreter was improved to suppress all interpreter messages.
- Several changes to remove C compiler warnings were done.

20080217:
- A new chapter about object orientation was added to the manual
  (Many thanks for the feedback to Leonardo Cecchi, Malcolm McLean and Reinder Verlinde).
- The manual was changed to mention that the 'in' parameter of arrays and structs
  is a reference ('ref') parameter.
- The faq was improved to contain a paragraph about static type checking.
- The implementation type NULL_FILE was renamed to null_file.
- The struct copy of the compiler (comp.sd7) was changed to leave the dynamic type unchanged.
- The following primitive actions were added or improved in the compiler (comp.sd7):
  FIL_ERR, FIL_IN, FIL_OUT, FLT_GROW, FLT_MCPY, HSH_INCL, HSH_LNG, INT_PLUS, PRG_EXEC,
  PRG_STR_ANALYZE, SCR_CURSOR and STR_GETENV.
- The primitive action CLS_CREATE2 was changed to call the CLEAR_TEMP_FLAG macro
  (This is a fix for a bug found by Leonardo Cecchi).
- The function match_subexpr_type was changed to allow normal (not DYNAMIC) interface
  functions to be used for implementation values.
- The primitive action PRC_GETENV was renamed to STR_GETENV.
- The bas7.sd7 (basic interpreter) example program was improved.
- A bug in the primitive action RFL_NOT_ELEM was fixed.
- The functions copy_list, array_to_list and struct_to_list were change to return the
  created list.

20080203:
- The compiler (comp.sd7) was improved to allow the compilation of itself.
- The compiler now compiles the programs rever.sd7 and sl.sd7.
- The scanner.s7i library was renamed to scanfile.s7i and the getName function was
  added to it.
- Three libraries dialog.s7i, scanstri.s7i and charsets.s7i were added.
- The functions str, digits and parse of complex.s7i were changed to use the
  -0.5000+0.8660i format.
- The hasNext function, which allows an iterator like handling of files, was added to
  the file interface.
- Two new object libraries s7_comp and s7_data were added to support the compiler.
- The following files were added: act_comp.c, act_comp.h prg_comp.c, prg_comp.h,
  ref_data.c, ref_data.h, rfl_data.c, rfl_data.h typ_data.c, typ_data.h, datautl.c and
  datautl.h .
- The following primitive actions were added or improved: CMD_FILETYPE, FIL_HAS_NEXT,
  FIL_PRINT, FIL_VALUE, REF_ARRMAXPOS, REF_CAT_PARSE, REF_CAT_STR, RFL_NOT_ELEM
- The prototypes of several *.h files were improved to contain parameter names.
- The category of an object returned by refCategory is now an integer/enumeration like
  type instead of a string.
- The bigAddTemp and bigSbtrTemp functions were added to allow optimized bigInteger
  operations in the compiler.
- The bas7.sd7 (basic interpreter) example program was improved.
- The Exit function of the castle.sd7 example program was improved.

20080120:
- Optimizations for the string functions =, <>, stri[num], &, upper, lower, pos, rpos, split
  and for the array indexing were added to the compiler (comp.sd7).
- Documentation comments were added to bigint.s7i, draw.s7i, bas7.sd7 and mahjong.sd7.
- The bas.sd7 (basic interpreter) example program was improved and renamed to bas7.sd7.
- The functions polar, parse, str and digits were added or improved in complex.s7i.
- The read_dir, chdir, mkdir functions were improved to raise FILE_ERROR on failure.
- The functions open_dir and open_dir_path of the dir.s7i library were changed to return
  STD_NULL when the directory does not exist.
- The functions getDigits, skipSpace, skipWhiteSpace were added to the scanner.s7i library.
- The digits function for the type float was improved to never return -0 .
- The new lpad0 operator was added to convert integers to strings with leading zeros.
- The time conversion functions str_yyyy_mm_dd, str_mm_dd_yy, str_mm_dd_yyyy, str_d_m_yy and
  str_d_m_yyyy were added to the time.s7i library.
- Checks were added to the chkint.sd7 and chkstr.sd7 example programs.
- The code to handle a failing realloc for arrays was improved.
- Bugs in the compiler, with str_append and with val or ref parameters as result in the
  return statement, were fixed.

20080106:
- Documentation comments were added to the functions of the libraries bigint.s7i,
  bigrat.s7i, complex.s7i, float.s7i, getf.s7i, keybd.s7i, rational.s7i, scanner.s7i,
  socket.s7i, stritext.s7i, time.s7i and dna_base.s7i.
- The bas.sd7 (basic interpreter) example program was improved.
- The include mechanism was improved to avoid multiple includes.
- Part of the float.s7i library was moved to the new math.s7i library.
- The library html_ent.s7i, which contains functions to replace HTML entities by
  characters and vice versa, was added.
- A new example program (chkhent.sd7) to check the new HTML functions was added.
- The compiler (comp.sd7) was improved to support the new 'rpos' function.
- The getHtmlTagOrContent function was added to the scanner.s7i library.

20071227:
- The library cards.s7i which contains the card pictures of a french deck was added.
- The documentation of the draw.s7i library was improved.
- Some pictures were moved from castle.sd7 to pic16.s7i and pic32.s7i.
- The function rpos (reverse search for a character in a string) was added to the
  seed7_05.s7i library.
- The bas.sd7 (basic interpreter) example program was improved.
- A new example program (carddemo.sd7), which demonstrates the playing cards of the
  french deck, was added.
- Test cases for the rpos function were added to the chkstr.sd7 program.

20071210:
- The interpreter was improved to flag match errors only once instead of multiple times.
- The graph.s7i library was improved to define the type pointList and the function
  genPointList (to create a pointList from an integer array of x and y coordinates).
- The functions polyLine and fpolyLine (to draw polygons and filled polygons) were
  added to the draw.s7i library .
- The functions pos (search for a character in a string) and isDigitString were added
  to the seed7_05.s7i library.
- Several test cases were added to the chkint.sd7 and chkstr.sd7 programs.
- The drwSetTransparentColor function was added to the drw_x11.c driver.
- An analog clock program (clock3.sd7) provided by Volker Schuller was added.
- The compiler was improved to support the new graphic and string functions.

20071125:
- The interpreter was improved to store the filename and the line of the definition of
  an object.
- The line stored for an expression was improved to be identical with the line of the
  operator symbol or function name.
- The stritext.s7i include file, which supports string array based text files, was added.
- The mahjong.sd7 example program was improved to draw darker vertical surfaces.
- The mahjong tiles of the mahjng32.s7i include file were improved to contain bigger digits.
- Several new functions like getHtmlSymbolOrComment, gray, file and line were added.
- The compiler was improved to support functions with 'in var' parameter called by DYNAMIC
  dispatch functions with a corresponding 'val' parameter.
- The compiler was improved to support the ref_line and ref_file actions.
- An error was fixed in the strIpos function and test cases were added to the chkstr.sd7
  program.

20071110:
- The functions getSymbol, getWhiteSpace, getSymbolOrComment and getSimpleSymbol
  of the scanner.s7i library were created or improved.
- A new example program (chkscan.sd7) to check the new scanner functions was added.
- A bug in the planets.sd7 example program was fixed.
- The manual was corrected to explain that the types 'char' and 'string' support Unicode.
- The actions cmd_ls and scr_write were improved to use utf-8 characters when available.
- The filOpen function was improved to use _wfopen under Windows.
- The timezone handling to get the Greenwich Mean Time was improved.
- A string in shisen.sd7 was enlarged to avoid a RANGE_ERROR exception
  when accessing it.

20071025:
- A new example program (mahjong.sd7) was added.
- An include file (mahjng32.s7i) which contains mahjong tiles was added.
- The interpreter and the compiler were improved to support the gkb_window action.
- The close interface function was changed to work for the type graphFile.

20071010:
- The compiler (comp.sd7) was improved to support the 'remove(array, index)' function.
- The functions isLeapYear, daysInMonth, weekOfYear, weekDateYear and weekDateWeek
  were added to the time.s7i library
- The exception checking program chkexc.sd7 was improved to check for exceptions
  raised with arrays.
- Documentation for the bigInteger type was added to the manual.
- Some strings in pic32.s7i and pairs.sd7 were enlarged to avoid a RANGE_ERROR exception
  when accessing them.

20070925:
- The compiler support for fil_tell, hsh_contains, hsh_excl and str_idx was improved.
- The string indexing (str_idx) was changed to raise RANGE_ERROR for indices outside of
  the string.
- Various spelling errors in faq.htm, faq.txt, manual.htm and manual.txt where fixed.
- The functions filBigLng, filBigSeek, filBigTell and filLng were improved to use _fseeki64
  when available.
- The mandelbr.sd7, chkstr.sd7, chkexc.sd7 and wiz.sd7 example programs were improved.
- A protection against a buffer overflow in scrWrite was added.
- Several function prototypes were changed to use 'const' types.

20070909:
- A gtk-server connection library (gtkserver.s7i), a test program (gtksvtst.sd7) and
  documentation (see doc/gtksvdoc.txt) were added (Patch from Leonardo Cecchi).
- Some spelling corrections for read_me and a draft for a Cygwin makefile (mk_cygw.mak)
  were added (Patches from Terrence Brannon).
- A Seed7 mailing list has been created under seed7-NOSPAMusers@lists.sourceforge.net
  (Remove NOSPAM to get the email address).
- The planets.sd7 program was improved to show the name of a star when clicking on it.
- The stack trace of the hi interpreter for uncaught exceptions was improved.

20070823:
- The compiler was improved to support nested exceptions.
- The planets.sd7 example program was improved to contain a panorama with stars and planets.
- An include file (stars.s7i) which contains the names and coordinates of stars was added.
- The intParse function was improved to accepts a plus (+) sign.
- The memory management of the socRecv function was improved.
- Some exception tests were added to chkexc.sd7
- A test for check_atan2 was added to the chkflt.sd7 program.

20070807:
- The handling of local functions in the compiler (comp.sd7) was improved.
- The function 'option' (to get compile time defines) was renamed to 'configValue'.
- The compiler was improved to support the 'configValue' function.
- The 'ord' function for enumerations was changed to work without DYNAMIC.
- The changelog was reversed (sorted now from newest to oldest), and old entries were added.
- The address of the FSF was changed in various files.

20070723:
- The compiler (comp.sd7) was improved to allow local functions.
- The compiler now supports arrays with indices of any type (not just integer indices).
- A new example program (mandelbr.sd7), to display fractals, was added.
- The -O2 option was added to the compiler (advantageous when compiling mandelbr.sd7).
- The compiler now generates static functions to allow more optimizations.
- A *:= operator and the sqrAbs function were added for the type 'complex'.
- The reflection was changed to use the 'getValue' function instead of the 'value' operator.
- The compiler was improved to support the conversion of integers to an enumeration type.
- The compiler now compiles the programs panic.sd7 and castle.sd7.

20070710:
- The compiler (comp.sd7) support for different C compilers was improved.
- A support for socket send and recv was added to the compiler.
- A description of openInetSocket was added to the documentation.
- A pos function and the 'not in' operator was added for the type ref_list.
- The var_conv operator was renamed to varConv.
- Some setters (setCategory, setValue, setParams) were added to the reflection.
- The classtype of the interpreter was renamed to categorytype since it has
  nothing to do with classes.

20070624:
- As suggested by several users a socket library (socket.s7i) was added.
- Two example programs tst_srv.sd7 and tst_cli.sd7 to test socket functionality were added.
- The popen function was added (suggested by Leonardo Cecchi).
- The compiler was improved to support hash tables with floats, various for loops over
  hash tables and the new socket library.
- The compiler now compiles the programs bas.sd7 and wordcnt.sd7.
- The wator.sd7 example program was improved.
- The heap management and the heap statistic was improved.
- Several function prototypes were changed to use 'const' types.

20070607:
- An explanation of multiple dispatch was added to the FAQ.
- A bug in the 'str' function for 'complex' was fixed (found by Leejun).
- The interpreter was improved to support startsWith, endsWith, array_min_position, heapstat
  and @:= (for ref_lists).
- The compiler support for drw_cpy, ref_trace, arr_head, arr_tail, arr_idx, varfunc, wintype,
  array literals and dynamic functions (for enumerations) was improved.
- The compiler now writes a message when an uncaught exception was raised.
- The compiler was changed such that destr functions accept also NULL.
- The compiler now compiles the programs snake.sd7 and toutf8.sd7.
- The concentration game was renamed to pairs.sd7
- The functions drwCpy, drwCreate and drwDestr where moved to drw_rtl.c.
- The heap management and the heap statistic was improved.

20070524:
- The file version.h was removed to force the creation of it with the "make depend" command.
- The read_me was changed such that a "rm version.h" is not necessary to compile.
- Several constant types were defined in data_rtl.h.
- The files str_rtl.c, str_rtl.h, set_rtl.c and set_rtl.h were changed to use constant types.
- A bug with compare functions for array sorts and hash tables was fixed.
- The makefile mk_linux.mak was added as copy of 'makefile'.
- The makefile mk_msvc.mak was added to allow experimental compilation with nmake and cl.

20070507:
- As suggested by several users the include files were moved to the 'lib' directory.
- The search for include files was improved to work with an internal search path array.
- The 'hi' interpreter now contains a hardcoded include directory path defined in version.h.
- The makefiles mk_mingw.mak, mk_msys.mak and mk_nmake.mak were added for compilation under MinGW.
- The bigInteger multiplication was changed to use Karatsuba multiplication for bigger integers.
- Several constant types were defined in common.h.

20070419:
- The compiler support for result variables, which are initialized with expressions, was improved.
- The bas (basic interpreter) example program was improved.
- The bigrat.s7i, rational.s7i libraries were improved.
- Some multiplication test cases were added to the chkbig.sd7 example program.
- The compiler was changed to mark its temporary *.c files with a temp_marker.
- Several performance improvements for uBigMultSub, uBigAddTo, uBigDiv, uBigMult,
  uBigMultIntoHelp, bigGrow, bigMult and bigShrink were done.

20070404:
- The support and documentation for the functions split, join, log2, bitLength and
  the operator *:= were improved.
- The compiler support for the functions raise, log2 and split was improved.
- The bas (basic interpreter) example program was improved to support print using statements.
- The support of the for-step loop in the seed7_05.s7i include file was improved.
- Some improvements for the bigRational and bigInteger library were done.
- A bug in uBigAddTo which could cause an error in bigDiv, bigRem, bigMDiv, bigMod was fixed.
- The chkbig.sd7 program was improved to check the log2 function for bigInteger.
- The chkstr.sd7 program was improved to have more checks for the split function.

20070319:
- The interpreter was changed to execute programs only when they have no errors.
- The option -x to execute programs, even when they have errors, was added to the interpreter.
- The *:= operator for the types integer, float, bigInteger and bigRational was added.
- The chkbig.sd7 program was improved to check the *:= operator for big integers.
- The compiler was improved to support the *:= operator and the arr_cat action.
- Several improvements for compile time error messages were done.
- The err.sd7 example program, which checks compile time error messages, was improved.

20070305:
- The support for float was changed to use IEEE 754 NaN and Infinity instead of exceptions.
- The exception checking program chkexc.sd7 was improved and the chkflt.sd7 program was added.
- All exponentiation operators were improved to evaluate 0 ** 0 to 1.
- The associativity of the ** operator was changed to work right to left.
- A declaration for an = and <> operator was added for interface types.
- Basic support for exceptions in compiled programs was added.
- Parts of the manual describing float operations and exponentiation were improved.
- The performance of the flt_ipow action was improved.
- The compiler was improved to produce better code for the primitive actions
  arr_sort, arr_times, cls_eq, cls_ne, flt_isnan, flt_log10, int_fact,
  rfl_append, rfl_cpy, rfl_for, rfl_mklist, rfl_ne, rfl_tail and str_str.

20070219:
- The support for hash tables, sets and console output in compiled programs was improved.
- Support for multiple dispatch of interface (DYNAMIC) functions was added to the compiler.
- The handling of parameters in the dispatch functions generated by the compiler was improved.
- Variable global arrays and structs in compiled programs are now initialized
  with a copy of the initialization value.
- The compiler was improved to produce better code for the primitive actions
  arr_idx, chr_ge, chr_gt, chr_le, chr_lt, fil_seek, set_cpy, str_cpy,
  prc_option, prg_match, ref_itftosct, typ_isderived and typ_meta.
- A compare and a hashCode function was added for the type 'color'.
- A check for curr_hash != NULL was removed at various places since isit_hash takes care of it.

20070204:
- An abstract data type to create interface types was added.
- The matching of functions was changed such that interface functions are
  preferred over non interface functions.
- The error message which flags wrong access rights of actual parameters was improved.
- The sorting of directory entries for cmd_ls was improved.
- The Unicode support for prc_getenv and prc_option was improved.
- The -v (verbose) option was added to the interpreter.
- A small bug in the startrek.sd7 example program was fixed.
- The handling of interface (DYNAMIC) functions in the compiler was improved.
- The compiler was improved to support the actions arr_cpy, drw_create, drw_destr,
  drw_pfarcchord and drw_pfarcpieslice.
- The handling of enumeration types in the compiler was improved.
- Several accessright changes for file functions in seed7_05.s7i and other libraries
  allow the compiler to produce working code for more file functions.

20070118:
- The compiler was improved to support interfaces (DYNAMIC functions).
  With this improvement several example programs can be compiled now.
- The support for the actions gkb_busy_getc, gkb_xpos, gkb_ypos, kbd_busy_getc,
  drw_pfellipse and arr_arrlit2 was added to the compiler.
- The X11 keyboard driver was improved.

20070104:
- The hashtype was changed to maintain the size of the hash instead of computing it.
- The &:= statement for the type ref_list was added.
- The compiler was improved to support 'in var' parameters.
- A new include file (complex.s7i) to support complex numbers was added.
- The support for the bigIConv, bigOrd, cmdMkdir, drwPArc, drwPCircle, drwPFEllipse,
  filBigLng, filBigSeek and filBigTell functions was added to the compiler.

20061219:
- Support for local constant declarations was added to the compiler.
- The compiler was improved to support the actions big_abs, big_clit, big_hashcode,
  big_value, cmd_ls, flt_grow, flt_shrink, gkb_gets, kbd_gets, set_arrlit and str_chsplit.
- The heap statistic was improved to work for bigInteger objects.
- The array compare functions = and <> have been improved.
- The support for arrays in the compiler was improved.
- The trace level 'h' was added to trace the heapsize.
- The exception handling was corrected to work with hash objects.
- A bug in the in_file handling of the analyzer was fixed.
- The 'hi' interpreter was improved to support the actions rfl_trace and str_split.

20061204:
- The functions bigLength, seek, bigTell were added to support files with 64 bit offsets.
- The file functions getwd, getln, read and readln were changed to remove '\r' before '\n'.
- Parameters of type bigInteger were changed to use call by reference.
- The functions ord and conv for the bigInteger type were added.
- The putf function (to copy a string to a file) was changed and a writef function was added.
- Functions to split and join strings and a check for that functions were added.
- Comparisons = and <> for arrays were added.
- An implementation for 'set of string' based on the 'hash' type was added.
- Keyboard functionality was moved into the new file kbd_rtl.c.
- A new makefile makefile.msy for MinGW MSYS compilation was added.

20061120:
- The rand function and the +:= and -:= operators were added to
  the bigInteger library.
- The checks for bigInteger addition and subtraction in chkbig.sd7
  were improved and checks for the +:= and -:= operators
  were added.
- The compiler support for bigInteger was improved.
- The documentation (manual and faq) was improved.

20061106:
- The hi interpreter was improved to support bigInteger literals.
- Changes have been done to allow a configurable bigdigit size
  (Bigdigits are the building elements of a bigInteger).
- The mdiv function was added to the bigInteger library and the
  chkbig.sd7 program.
- The chkbig.sd7 program was changed to use bigInteger literals.
- Several bigInteger functions have been improved.
- A bigrat.s7i include file to support bigRational numbers has been added.
- The compiler support for bigInteger, setBaselit and strTrim has
  been improved.

20061023:
- The bigInteger library was improved to support modulo, power and
  several comparisons (<, >, <=, >=).
- Test cases for incr, decr, modulo, power and compare were added to
  the chkbig.sd7 program.
- The compiler was improved to support the new bigInteger functionality.

20061008:
- The bigInteger library was improved to support division and remainder.
- Test cases for division and remainder were added to the chkbig.sd7 program.
- The compiler was improved to support bigInteger division and remainder.

20060926:
- The bigInteger library was improved to support addition, subtraction,
  multiplication, negation, absolute value, string conversions and more.
- A lot of test cases have been added to the chkbig.sd7 program.
- The compiler was improved to support more bigInteger functionality.
- The makefile was changed to work on BSD (suggested by Dave Bodenstab).

20060910:
- A new include file (bigint.s7i) and a new example program (chkbig.sd7) were added.
- Changes in the compiler to support some bigInteger functionality were done.
- Support for the str_elemcpy action was added to the compiler.

20060826:
- A description of the 'attr' parameter was added to the manual.
- The first steps towards bigInteger support were done.
- The graphic and keyboard drivers for Windows have been improved.
- A check for the maximum of fish and sharks was added to the wator example program.

20060808:
- A description of the 'func', 'varfunc' and 'proc' types was added to the manual.
- The 'parse' operator for the type 'time' was improved.
- The operators '<=', '>' and '<' were added for the type 'duration'.
- The Windows graphic driver was improved to use the SetPixel function.
- The filOpen function was changed to open files in binary mode.

20060724:
- A new example program (bifurcation) was added.
- A trim function to remove leading and trailing spaces from strings was added.
- The Windows graphic driver was improved to support Windows 98.
- A changelog (chlog) was added.

20060707:
- A little improvement of the castle example program was done.
- The drwText function of the Windows graphic driver
  was changed to support Unicode characters.
- A new example program (planets) was added.

20060622:
- A new example program (castle) was added.
  Castle was inspired by the castle adventure from 1984.
- The graphic driver for Windows has been improved for
  circle, arc, chord, pieslice, fellipse.

20060606:
- The bas (basic interpreter) example program was improved to
  support exit statements.
- A tiny bug in the panic example program was fixed.
- The hi interpreter was improved to write a stack trace when
  an exception is not caught.

20060520:
- The performance of the interpreter was raised by circa 8% with
  an improved free list management.
- The graphic and keyboard drivers for Windows have been improved.
- A new primitive action (set_arrlit) was defined to create sets from
  integer arrays.
- The bas (basic interpreter) example program was improved to support do loops.
- A sudoku example program (sudoku7) was added.

20060506:
- The reporting of semantic errors was improved (now the
  line number and the line itself is shown).
- A checkmark picture was added to pic16.s7i and pic32.s7i .
- A tiny inaccuracy in the heap statistic was fixed.
- The source and include file management of the interpreter
  was simplified.

20060420:
- The driver function tim_await (using seconds since 1970)
  was replaced by timAwait (using the Gregorian calendar).
- The driver function timNow was changed to deliver a
  timezone which includes the daylight saving time.
- Various pictures where added in pic16.s7i and pic32.s7i .
- The parse function for bitsets was fixed to work for
  empty sets.
- A new example program toutf8 to convert files to utf-8
  was added.
- The Windows driver function drwPRect was fixed.

20060404:
- Function to close a graph_file
- Write graphic text under Windows
- Parse operator and reading for bitsets
- Allow hashtables for sets
- Date format according to ISO 8601
- New time functions dayOfWeek, julianDayNumber and
  julianDayNumToTime

20060314:
- Improvements for arrays and structs in the compiler
- Function strLit to support the compiler
- Improvements in bas example program.
- Subrange and for-loop for bitset
- Allow line comments in string literals
- Empty line count removed

20060223:
- Some compiler improvements for sets and structs.
- New graphic function: copyArea
- Hashes for sets and types
- New time functions: dayOfYear, toGMT, -:=
- Utf-8 characters in string and char literals
- New standard files: STD_UTF8_IN, STD_UTF8_OUT, STD_UTF8_ERR
- Function file_type to get the type of a file

20060205:
- The compiler (comp.sd7) can handle strings now.
- New example program wator.sd7 (Simulation with fish and sharks).
- Improved example program dnafight.sd7 .
- New rand function to select a random element from a set.

20060126:
- Improvements in the compiler (comp.sd7)
- Changed wrinum.s7i to write roman, english and german numbers.
- Moved some pictures to pic16.s7i and pic32.s7i.
- Renamed NO_ERROR to OKAY_NO_ERROR (NO_ERROR is used in Windows).
- Defined compare and hashCode for the type 'reference'.
- In drw_win.c: Map characters 128 to 159 to Unicode chars.
- In scr_win.c: Map console characters to Unicode chars.
- Add #include "string.h" in files that use memcmp.
- Add functions to support compilation:
  filLit, drwCpy, strHead, strRange, strTail and others.
- In kbd_inf.c: Add support for UTF-8 keys for KEYBOARD.

20060118:
- Some improvements of the Windows support
- Console mode programs work
- Windows time driver works
- GDI Keyboard driver works
- Graphic programs work to some degree
  The Windows port uses MinGW and the makefile "makefile.win".
- Changes in the time driver interface tim_drv.h to support compilation.
- Test program gkbd.sd7 for tests of the keyboard with x11/gdi - Windows.

20060111:
- The beginning of Windows support
  (Textmode programs work, Graphic programs work to some degree)
  The Windows port uses MinGW and the makefile "makefile.win".
- The definition of
  $ system "main" main;
  has been moved to the seed7_05.s7i library.
  Therefore it is not necessary to specify 'system "main"' in every program.

20051203:
- Function to get the unsorted keys of a hash
  (for sorted keys use the sort array function: sort(keys(aHash)) )
- Function to get the unsorted values of a hash
  (for sorted values use the sort array function: sort(values(aHash)) )
- flip function for hashes to flip keys and values
  (the result has the type: hash [baseType] array keyType )
- for loop to loop over the unsorted values of a hash
- for loop to loop over the unsorted keys of a hash
- for loop to loop over the unsorted values and keys of a hash

20051124:
- Function to get the keys of a hash
- Sort function for arrays

20051112:
- Now the Seed7 manual (in the package) uses color.
- Implement seek for UTF-8 files
- Fix and improve the gets function for UTF-8 files
- The Seed7 project page contains also screenshots, a manual
  and an FAQ file. See http://sourceforge.net/projects/seed7
- Rename 'NL' system variable to 'writeln' and change the
  corresponding logic

20051104:
- Now Seed7 supports reading and writing UTF-8 files
- The Seed7 project page contains also screenshots, a manual
  and an FAQ file. See http://sourceforge.net/projects/seed7
- A new pos function to search a string from a given position has
  been added.

20051025:
- Initial release.
