## "Fossies" - the Fresh Open Source Software Archive

### Member "seed7/doc/chlog.txt" (23 Feb 2021, 523262 Bytes) of package /linux/misc/seed7_05_20210223.tgz:

As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "chlog.txt": 05_20210130_vs_05_20210223.

    1 20210223:
2 - Spelling corrections have been done in several files. Many thanks go
3   to Jens Schleusener, for sending a source code misspelling report
4   from Fossies.
5 - The new library png.s7i has been added. This library supports the
6   PNG image file format.
7 - Seed7 has been improved to compile under Android with termux. This
9 - A chapter about Unicode characters has been added to the manual.
10 - The make7.sd7 example program has been improved. The processing of
11   makefiles in make.s7i has been improved to process every rule just
12   once. The handling of the option -n (don't execute commands) has
13   been improved to work in the same way as in other make tools.
14 - The test program chkbin.sd7 has been improved to to allow two
15   possible NaN values as result of 0.0 / 0.0.
16 - The test program chkflt.sd7 has been improved to allow that for some
17   test cases trunc() and round() either return the correct value
18   (integer.last) or raise RANGE_ERROR.
19 - Tests for array bitset have been added to chkarr.sd7.
20 - Tests for conversion and cardinality have been added to chkset.sd7.
21 - The functions XChangeProperty() and XMapWindow() have been added to
22   fwd_x11.c and x11_x.h.
23 - The makefile mk_clang.mak has been improved to allow the replacement
24   of system headers (x11_x.h and fwd_term.h). This way compilation
25   works also without the original headers.
26 - The warning box created by warn.c had too much width to be readable
27   in termux. So this width has been reduced.
28 - In drw_win.c the functions drwXPos() and drwYPos() have been fixed
29   to return coordinates relative to the parent window.
30 - The checks for the C compiler option -ftrapv in chkccomp.c have
31   been improved. Now it is recognized, if integer overflow raises the
32   signal SIGTRAP. Clang at the ARM processor uses SIGTRAP.
33 - Changes have been done in sigutl.c to handle SIGTRAP and to raise
34   OVERFLOW_ERROR in the signal handler (if chkccomp.c has recognized
35   that an integer overflow raises SIGTRAP).
36 - Changes have been done in chkccomp.c to support PostgreSQL version
37   13. Additionally the logic to search for PostgreSQL dlls has been
38   improved. Now it searches also for the libraries libcrypto and
39   libssl. Now POSTGRESQL_DLL can be specified, with an absolute path
40   of libpq.dll, in the makefile (which should echo it to chkccomp.h).
41 - In the compiler (s7c.sd7) the handling of actual parameters for
42   formal inout parameters has been improved. Now a struct element can
43   be used as actual parameter for a formal inout parameter.
44 - The compiler has been improved to reduce range checks for the
45   expressions char(number), chr(number) and card(bitset(number)).
46 - Interpreter and compiler have been improved to support the action
47   REF_ISTEMP. The function isTemp() has been added to progs.s7i.
48 - In comp/intrange.s7i the function getIntRange() has been improved
49   to determine result ranges for INT_ADD and integer constants.
50 - The compiler has been improved to assure that sigsetjmp() is not
51   called with a value other than 0 or 1 for the second parameter
52   (savesigs). According to the specification of sigsetjmp() all
53   integer values are allowed for the second parameter (savesigs)
54   and a non-zero value triggers a save of the current signal mask.
55   ARM / Android / termux decided that just 0 and 1 are valid values
56   and that any other value triggers a termination of the program
57   (with SIGABRT).
58 - The function drwCapture() in drw_win.c has been improved to work
59   correct, if the screen has been scaled.
60 - In drw_win.c the functions drwPut() and drwSetTransparentColor()
61   have been improved such that images with a transparent color work.
62 - The runtime of drwRgbColor() in drw_x11.c has been reduced by 31%
63   (measured with gcc and valgrind, when reading a PNG image). This
64   takes effect if a true color display is used.
65 - The runtime of drwRtlImage in drw_rtl.c has been reduced by 63%
66   (measured with gcc and valgrind, when reading a PNG image). The
67   function memcpy_pixel() uses loop unrolling inspired by Duff's
68   device.
69 - The program chkccomp.c has been improved to determing the macro
70   rgbToPixel() (if X11 graphics is used).
71 - In exec.c the function exec_expr() has been improved to clear
72   the TEMP flag for all results.
73 - The makefiles have been improved to write the name of the make
74   utility and the name of the makefile to version.h.
75
76 20210130:
77 - The parser (used by interpreter and compiler to read a program) has
78   been improved to work correct, if seed7_05.s7i is not included.
79   Many thanks go to Domingo Alvarez Duarte for pointing out that a
80   missing seed7_05.s7i include statement causes a parser error.
81 - The example program mirror.sd7 has been added. This program mirrors
82   a rectangular screen area in a window.
83 - The function capturePixmap has been added to graph.s7i. This
84   function can be used to capture rectangular areas from the screen.
85 - In the library graph.s7i the function openSubWindow() has been
86   improved to allow top level windows without window decorations.
87   This can be done by using the empty window as parent window.
88 - Chapters about pragmas and compilation errors have been added to the
89   manual.
90 - The parser has been improved to work reliable in out of memory
91   situations. Now the fatal parser error "Out of heap space" does not
92   terminate the program.
93 - The minor versions of interpreter and compiler have been increased.
94   Now interpreter and compiler share the same revision level. Every
95   compilation of the Seed7 interpreter increases the revision level.
96 - A definition of VERSION_REVISION_LEVEL has been added to
97   cc_conf.s7i. This is used in confval.sd7 and s7c.sd7.
98 - Interpreter and compiler have been improved to support the new
99   action DRW_CAPTURE.
100 - In analyze.c the function analyzeProg() has been improved to
101   catch the "Out of heap space" error and to clean up memory in out
102   of memory situations. Now the old values of the global variables
103   prog, interpreter_exception curr_exec_object, curr_argument_list and
104   trace are restored, when the function is left.
105 - In analyze.c the functions analyzeFile() and analyzeString() have
106   been improved to work without setting interpreter_exception. Now
107   these functions work the same in interpreted and compiled programs.
108 - In atom.c the function read_atom() has been improved to keep the
109   data structure consistent in out of memory situations.
110 - The functions pop_owner() and close_current_stack() have been added
111   to name.c.
112 - In name.c the functions free_params(), get_object() and push_name()
113   have been improved to have an additional 'currentProg' parameter.
114 - In name.c the function get_object() has been improved to reverse its
115   changes in case of an error.
116 - In name.c the handling of errors has been improved in push_name(),
117   eval_name_list(), inst_list(), inst_object_expr(), find_name(),
118   search_name(), dollar_parameter() and dollar_inst_list(). In error
119   situations changes are reversed, memory is freed and stack growing
120   and shrinking is now done in a consistent way.
121 - In entutl.c the function copy_params() has been improved to allocate
122   the parameters first in a list and to assign them later.
123 - The new functions pop_name_list() and get_entity_node() have been
125 - In entutl.c the function get_entity() has been improved to handle
126   error situations (out of memory).
127 - In entutl.c in the function init_entity() dereferencing NULL is
128   avoided now, if the memory allocation fails.
129 - In blnlib.c the function bln_ternary() has been improved to work
130   correct, if evaluate() returns NULL. This happens if an exception
131   is triggered inside evaluate().
132 - Implementations of drwBorder() and drwSetPos() have been added to
133   drw_emc.c. The functions drwXPos() and drwYPos() have been improved.
134 - The function drwCapture() has been added to drw_x11.c and drw_win.c.
135 - The function drwOpenSubWindow() has been improved in drw_x11.c and
136   drw_win.c to support the creation of unmanaged top level windows
137   without window decorations (if the parent window is empty).
139   to drw_x11.c.
140 - In flt_rtl.c the function setMantissaAndExponent has been improved
141   to work without division by DOUBLE_MANTISSA_FACTOR.
142 - The program chkccomp.c has been improved to write an error message,
143   if executing a test program fails.
145   and ustri8_buffer_to_stri() have been improved to work reliable in
146   out of memory situations.
147 - In fatal.c the function no_memory() has been improved to do a long
149 - In listutl.c the function append_element_to_list() has been improved
150   to keep the list_insert_place unchanged in out of memory situations.
151 - In sctlib.c in the function sct_cat() the code to handle an error
152   has been improved, to avoid using a pointer that might be invalid
153   because of a previous realloc(). The function sct_elem() has been
154   improved to consider that grow_stack() might fail.
155 - In typeutl.c the function get_varfunc_type() has been improved to
156   work correct, if new_type() returns NULL. This can happen in out of
157   memory situations.
158 - In findid.c the functions clean_idents() and write_idents() have
159   been refactored to use a progType parameter and to allow NULL
160   values in the ident tables.
161 - In flistutl.c the function heap_chunk() has been improved to never
162   do a realloc() on a memory chunk and to explain why this is done.
163 - In flistutl.h the macros HEAP_OBJ(), HEAP_L_E(), HEAP_NODE() and
164   HEAP_FILE() have been fixed to return FALSE in out of memory
165   situations.
166 - In hshlib.c the macro isit_not_null() has been added to several
167   functions to assert that function references and compare results are
168   not NULL.
169 - In prclib.c the functions prc_begin(), prc_local(), prc_res_begin(),
170   prc_res_local(), prc_return(), prc_return2(), prc_varfunc() and
171   prc_varfunc2() have been improved to handle error situations (out of
172   memory).
173 - In prclib.c the macro isit_not_null() has been added to prc_case(),
174   prc_case_def(), prc_case_hashset() and prc_case_hashset_def(). This
175   macro checks that the sets after the keyword 'when' are not NULL.
176 - In identutl.c the function init_idents() has been changed to leave
177   a failed initialisation as is (this is cleaned up later).
178 - In prg_comp.c the function prgDestr() has been improved to allow
179   NULL for elements of the program structure. The function interpret()
180   has been improved to restore the global variable
181   interpreter_exception.
182 - In exec.c the functions getErrInfoFromFailValue() and do_exec_call()
183   have been added. The function exec_expr() has been improved to
184   restore the global variable interpreter_exception.
185 - In executl.c the functions do_destroy(), create_return_object(),
186   create_local_object(), destroy_local_object() and
187   destroy_local_init_value() have been improved to handle error
188   situations (out of memory).
189 - In match.c the function match_subexpr() has been improved to
190   handle out of memory situations.
191 - In runerr.c the functions write_position_info() and
192   write_call_stack_element() have been improved to recognize valid
193   data better.
194 - In runerr.c the functions run_error(), empty_value() and
195   var_required() have been improved to write the error message only,
196   if exception tracing is switched on. Now these functions raise
198 - The function freeOptions() has been added to s7.c. The function
199   raise_error2() has been improved to handle an out of memory
200   situation.
201 - In symbol.c the function close_symbol() has been improved to allow
202   NULL for symbol.name and symbol.striValue.
203 - In syvarutl.c the function init_sysvar() has been improved to
204   define a dummy value for SYS_EXPR_TYPE (EXPR_TYPE). This avoids an
205   error, if the source has no include directive.
206 - The function printLocObj() has been added to traceutl.c. The
207   functions prot_list_limited() and trace1() have been improved to
208   recognize corrupt category fields.
211   and doGetCwd() respectively. The new functions use err_info to
213   have been refactored to call the new functions.
214 - In cmd_rtl.c the function followLink() has been refactored to call
216 - The program levelup.c has been added. This program is called by the
217   makefile to increase the revision level of interpreter and compiler.
218 - In comp/expr_utl.s7i the function prepare_win_result() has been
219   fixed to use drwDestr() instead of winDestr().
220 - The system declaration for "type" hase been removed from syntax.s7i.
221 - The makefiles have been adjusted to increase the revision level
222   (stored in level.h) before the interpreter is compiled. This way
223   interpreter and compiler get the same revision level.
224 - Documentation comments have been improved in array.s7i, graph.s7i,
225   leb128.s7i, analyze.c, cmd_rtl.c, drw_emc.c, drw_win.c, drw_x11.c,
226   entutl.c, error.c and exec.c.
227
228 20210106:
229 - The declaration of in-parameters has been changed to work the same
230   way as all other parameter declarations (val-, ref-, inout-, attr-
231   and in-var-parameters). Many thanks go to Zachary Menzies for
232   pointing out a problem with in-parameters and for providing a test
233   program. The new in-parameters fix this problem.
234 - The support for function types (func aType and proc) in interpreter
235   and compiler has been improved.
236 - The support for Emscripten (a C compiler that generates JavaScript
237   and WebAssembly) has been improved. The support of Emscripten is
239 - The library http_response.s7i has been improved to set the correct
240   content-type for more file types (css, javascript, wasm, gif, bmp,
241   pdf). This way the comanche webserver also works better.
242 - The function getCgiParameters() in cgi.s7i has been improved to
243   accept also elements without equals sign (in this case value is
244   assumed to be "").
246   propertyfile.s7i. This function processes an UTF-8 encoded property
247   file.
248 - In propertyfile.s7i the function readPropertyNameOrValue() has been
249   changed to work correct for unicode escapes (\u) and for escaped
250   newlines. An extended unicode escape (\U) has been added also.
251 - Testcases that check if seek() does clear the EOF flag have been
253 - The Seed7 parser (used by interpreter and compiler) has been
254   improved, to recognize if the same syntax is declared twice. In this
255   case a compile-time error is written.
256 - The FAQ has been improved to explain the simple profiling of the
257   Seed7 compiler.
258 - The simple profiling of the compiler has been improved to recognize,
259   if a function has been left without taking profiling into account.
260 - The compiler has been improved to recognize if a raise statement
261   leaves a function and generates code to make the profiling work
262   correct (if it has been enabled).
263 - The recognition of constant expressions in the compiler has been
264   improved to consider variable functions as variable. The changes
265   are in comp/const.s7i in two functions named isConstantCall().
266 - Changes have been done in seed7_05.s7i and integer.s7i such that the
267   new in-parameters work as expected.
268 - The interpreter has been improved to support the actions DCL_IN1,
269   DCL_IN2, TYP_SET_IN_PARAM_REF and TYP_SET_IN_PARAM_VALUE.
270 - The functions dcl_in1() and dcl_in2() have been added to dcllib.c.
271 - The functions typ_set_in_param_ref() and typ_set_in_param_value()
272   have been added to typlib.c.
273 - Changes in syntax.c and token.c make sure that the new error
274   SYNTAX_DECLARED_TWICE is recognized.
275 - In prclib.c the function prc_cpy() has been improved to take into
276   account that MATCHOBJECT is constant (and the underlying object
277   is variable).
278 - In cmd_unx.c the function setenv7() has been improved to work
279   correct, if a value is enlarged.
280 - In cmd_unx.c the functions getenv7(), setenv7() and unsetenv7() have
281   been improved to optionally work case insensitive.
282 - Changes in cmd_drv.h, cmd_rtl.c and fil_unx.c allow that some
283   operating system properties are determined at run-time. This is used
284   for Emscripten.
285 - The functions setenvForNodeJs() and unsetenvForNodeJs() have been
286   added to cmd_unx.c. Now setenv() and unsetenv() have also an effect
287   on the environment used by Node.
288 - The file drw_emc.c has been added. This file provides graphic access
289   using browser capabilities. It is used if Seed7 is compiled with
290   emcc.
291 - The file pre_js.js has been added. This JavaScript code is included
292   by Emscripten. It sets up program path and arguments, if the program
293   runs in the browser.
294 - In cmd_rtl.c the function systemForNodeJs() has been improved to
295   return -1, if the command cannot be executed.
296 - The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
297   store the environment variables in seed7/bin/emcc_env.ini. The macro
298   CC_ENVIRONMENT_INI, which defines the path of seed7/bin/emcc_env.ini,
299   is now written to version.h. This way the Seed7 compiler can be used
300   without setting up Emscripten.
301 - Changes have been done in error.c and error.h to introduce the new
302   errors SYNTAX_DECLARED_TWICE and KIND_OF_IN_PARAM_UNDEFINED. The
303   error UNEXPECTED_SYMBOL has been replaced with EXPECTED_SYMBOL.
304 - The functions increaseLevelOfCatchedExceptions() and
305   decreaseLevelOfCatchedExceptions() have been added to comp/error.s7i.
306   These functions are used in comp/prc_act.s7i.
307 - In comp/expr.s7i the function declare_type_if_necessary() has been
308   improved to take a existing typeCategory of BLOCKOBJECT into account.
309 - In comp/type.s7i the function getExprResultType() has been improved
310   to check that the category is a CALLOBJECT.
312   to cc_conf.s7i.
313 - The files s7c.sd7, confval.sd7, cmd_rtl.c, mk_emccl.mak and
314   mk_emccw.mak have been improved to use the new configuration values.
315 - The parameter list of the functions cmdSetGroup() and cmdSetOwner()
316   has been changed in comp/cmd_act.s7i, cmd_drv.h, cmd_unx.c and
317   cmd_win.c. Now group and owner are constant strings.
319   cgi.s7i, csv.s7i, propertyfile.s7i and graph.s7i.
320
321 20201208:
323   three existing questions have been improved.
324 - In dialog.s7i the function messageWindow() has been added and the
325   function isOkay() has been improved. Dialog windows are placed now at
326   the center of the main window (or screen if there is no main window).
327 - The functions screenHeight(), screenWidth(), getBorder() and
328   setCloseAction() have been added to graph.s7i.
329 - Definitions of while- and repeat-loops with empty loop body have been
330   added to seed7_05.s7i and syntax.s7i.
331 - In seed7_05.s7i the new exception CLOSE_ERROR has been introduced and
332   enumeration types have been improved to support the function rand().
333 - The calc7 example program has been improved to support the functions
334   getHttp() and getHttps().
335 - In sokoban.sd7 the function to read a level number has been improved.
336 - The programs castle.sd7, gkbd.sd7, klondike.sd7, lander.sd7,
337   mahjong.sd7, mandelbr.sd7, pairs.sd7, panic.sd7, planets.sd7,
338   shisen.sd7, sokoban.sd7, sudoku7.sd7, tetg.sd7 and wator.sd7 have
339   been improved to handle the close button (from the window title bar).
340 - A boss mode has been added to the castle.sd7, sokoban.sd7, pairs.sd7
341   and shisen.sd7 example programs.
342 - Tests for while- and repeat-loops have been added to chkprc.sd7.
343 - Cosmetic improvements have been done in planets.sd7 and sl.sd7.
344 - The key KEY_CLOSE has been added to keybd.s7i and keydescr.s7i.
345 - The support for function types (func aType and proc) in the Seed7
346   compiler has been improved.
347 - In drw_win.c the function drwOpen() has been improved to place the
348   window at the requested position.
349 - In drw_x11.c the functions drwXPos() and drwYPos() have been improved
350   to return the position relative to the screen (instead of relative to
351   the parent window).
352 - The functions drwBorder(), drwScreenHeight(), drwScreenWidth() and
353   drwSetCloseAction() have been added to drw_win.c, drw_x11.c and
354   drw_dos.c.
355 - In gkb_win.c and gkb_x11.c the function gkbGetc() has been improved
356   to recognize the close button from the window title bar.
357 - In gkb_win.c the function gkbKeyPressed() has been improved to handle
358   the close button from the window title bar.
359 - The program chkccomp.c has been improved to determine the value
361 - The function XQueryTree has been added to fwd_x11.c and x11_x.h.
362 - An explanation about C compiler warnings about "passing argument with
365   graph.s7i, sl.sd7, drwlib.c, drw_win.c and drw_x11.c.
366 - In several files casts have been introduced to reduce the number of
367   warnings that are flagged with a historic version of gcc.
368 - Interpreter and compiler have been improved to support the actions
369   DRW_BORDER, DRW_SCREEN_HEIGHT, DRW_SCREEN_WIDTH, DRW_SETCLOSEACTION,
370   PRC_REPEAT_NOOP, PRC_RETURN and PRC_WHILE_NOOP.
371
372 20200929:
373 - Support for link time optimization has been added. It is available if
374   Seed7 is compiled with gcc or clang. The Seed7 compiler option -flto
375   can be used to activate link time optimization.
376 - Answers to six new questions have been added to the FAQ.
377 - A chapter about for-loops and containers has been added to the
378   tutorial.
379 - The ternary operator a ? b : c has been defined for integer, float,
380   complex, rational, bigInteger, bigRational, char, string, bstring,
381   boolean, bin32 and bin64.
382 - Tests for the ternary operator have been added to chkbig.sd7,
383   chkbin.sd7, chkbool.sd7, chkbst.sd7, chkchr.sd7, chkflt.sd7,
384   chkint.sd7 and chkstr.sd7.
385 - The function rand(low, high) for float has been changed to return a
386   number in the range [low, high) instead of [low, high]. The range
387   [low, high) is commonly used by float random number generators.
388 - Tests for the rand() function have been added to chkflt.sd7.
389 - The Seed7 compiler has been improved to inline code for the action
390   FLT_RAND, if the option -oc3 is used and both bounds are constant.
391 - Definitions of FLOATTYPE_MANTISSA_BITS, FLOATTYPE_EXPONENT_OFFSET,
392   STMT_BLOCK_IN_PARENTHESES_OK, RAND_MULTIPLIER, RAND_INCREMENT,
395 - The files confval.sd7 and cmd_rtl.c have been improved to use the new
396   configuration values.
397 - Interpreter and compiler have been improved to support the action
398   BLN_TERNARY.
399 - In comp/int_act.s7i the functions uintRand(), uintRandMantissa() and
400   uintRandLimited() are defined as macros now, if the Seed7 compiler
401   has been called with -oc3.
402 - In name.c the function close_stack() has been improved to dump the
403   values of BLOCKOBJECT objects after the values of other objects have
404   been dumped.
405 - The program chkccomp.c has been improved to determine the values
406   FLOAT_EXPONENT_OFFSET, STMT_BLOCK_IN_PARENTHESES_OK,
408 - In progs.s7i documentation comments for parseFile(), parseStri() and
409   execute() have been improved.
410 - The program chk_all.sd7 has been adjusted to the changes in the
411   check programs.
412
413 20200830:
414 - Spelling corrections have been done in several files. Many thanks go
415   to Jens Schleusener, for sending a source code misspelling report
416   from Fossies.
417 - The file README.md, which uses the markdown format, has been added.
418 - Answers to seven new questions have been added to the FAQ.
419 - Descriptions of array, hash, set and struct in the manual have been
420   improved to contain examples of type declaration and usage.
421 - In array.s7i the functions remove() and insert() have been improved
422   to avoid copying whole elements.
423 - The string slice functions have been changed to raise INDEX_ERROR for
424   negative indices or lengths.
425 - The array slice functions have been changed to raise INDEX_ERROR for
426   negative indices or lengths.
427 - In chkstr.sd7 the tests for string slices have been adjusted to the
428   new behavior.
429 - The example program chkidx.sd7 has been added. This program checks
430   if INDEX_ERROR is correctly raised for string operations.
431 - The example program chkarr.sd7 has been added. This program checks
432   if array operations work correct.
433 - The program chk_all.sd7 has been improved to call and check the new
434   programs chkidx.sd7 and chkarr.sd7.
435 - Compiler and interpreter have been improved to support the actions
436   ARR_INSERT, ARR_INSERT_ARRAY and ARR_REMOVE_ARRAY.
437 - The compiler has been improved to support call by name parameters
438   with varfunc instead of func.
439 - The file comp/arr_act.s7i has been improved to support ARR_INSERT,
440   ARR_INSERT_ARRAY and ARR_REMOVE_ARRAY.
441 - The file comp/str_act.s7i has been improved to support the changed
442   string slice functions.
443 - The functions arr_insert(), arr_insert_array() and arr_remove_array()
444   have been added to arrlib.c. These functions work without copying
445   whole elements. Instead a memmove() is used on a part of the array to
446   move object records.
447 - The functions arrInsert(), arrInsertArray() and arrRemoveArray() have
448   been added to arr_rtl.c. These functions work without copying whole
449   elements. Instead a memmove() is used on a part of the array to move
450   64-bit elements.
452   in strlib.c respectively str_rtl.c have been improved to scale
453   better. Now these functions double the array size every time a
454   realloc() is necessary. In the end the size is reduced to the actual
455   array size.
456 - In strlib.c the functions str_head(), str_range(), str_substr() and
457   str_tail() have been improved to check for INDEX_ERROR.
459   strRangeSlice(), strRange(), strSubstrSlice(), strSubstr(),
460   strTailSlice() and strTail() have been improved to check for
461   INDEX_ERROR.
462 - The function strTailTemp() has been added to str_rtl.c. This function
463   is used by the compiler to optimize expressions like: s := s[n ..];
464 - In cmd_rtl.c the functions cmdMkdir(), cmdRemoveFile(),
465   cmdRemoveTree(), cmdSetATime(), cmdSetFileMode(), cmdSetMTime() and
467 - In cmd_unx.c the memory management of cmdSetGroup() and cmdSetOwner()
468   has been improved.
469
470 20200727:
471 - In ut8_rtl.c the function ut8Seek() has been improved such that
472   a call of ut8Seek() can be directly followed by a statement to write
473   to the file.
474
475 20200726:
476 - The library rpm.s7i has been improved to write changes to the
477   archive file, when the archive is closed.
478 - The library tar_cmds.s7i has been improved to support Zstandard
479   compressed tar archives.
480 - The functions setOwner() and setGroup() have been added to cpio.s7i
481   and osfiles.s7i.
482 - The test programs chkbig.sd7, chkbin.sd7, chkflt.sd7, chkhsh.sd7,
483   chkint.sd7, chkset.sd7 and chkstr.sd7 have been improved to increase
484   the code coverage of the Seed7 run-time library.
485 - The example program chkfil.sd7 has been added. This program checks
486   the correctness of file operations.
487 - The example program chkbst.sd7 has been added. This program checks
488   the correctness of bstring functions.
489 - The program chk_all.sd7 has been improved to call the new programs
490   chkbst.sd7 and chkfil.sd7. It also has been adjusted to the changes
491   in the check programs.
492 - In strifile.s7i the function write() has been improved to use @:=
493   if a file is overwritten. This is much quicker than the previous
494   approach, that used several string concatenations.
495 - The function openTarFileWithMagic() has been added to tar_cmds.s7i.
496   This function is used by tarTell() and tarXtract().
497 - In cpio.s7i the function to close the CPIO archive has been changed
498   to leave the underlying file open.
499 - In external_file.s7i the function close has been changed to set the
500   underlying clib file to NULL.
501 - In gzip.s7i the function to close a gzipFile has been changed to
502   leave the destination file open.
503 - The conversion function integer() has been added to bin32.s7i and
504   bin64.s7i.
505 - The compiler (s7c.sd7) has been improved (in set_act.s7i) to produce
506   correct code for the actions SET_CONV1 and SET_CONV3 (independent
507   if a normal expression or a result expression is converted).
508 - Interpreter and compiler have been improved to support the actions
509   CMD_SET_GROUP and CMD_SET_OWNER.
510 - The functions cmd_set_group() and cmd_set_owner() have been added to
511   cmdlib.c.
512 - The functions getGidFromGroup(), getUidFromUser(), cmdSetGroup() and
513   cmdSetOwner() have been added to cmd_unx.c. The functions
514   getGroupFromGid() and getUserFromUid() have been improved.
515 - The functions getSidFromName(), cmdSetGroup() and cmdSetOwner() have
516   been added to cmd_win.c. The functions getNameFromSid(),
517   cmdGetGroup() and cmdGetOwner() have been improved.
518 - In big_rtl.c the functions bigMDivSizeLess() and bigModSizeLess()
519   have been simplified. A bug triggered by a zero dividend has been
520   fixed also.
521 - In flt_rtl.c the function fltRand() has been fixed to work correct
522   for rand(-Infinity, Infinity).
523 - In numutl.c the function getDecimalInt() has been improved.
524 - The function setEmpty() has been removed from set_rtl.c.
525 - In set_rtl.c the functions setNext() and setToUInt() have been fixed
526   to work correct.
527 - In strlib.c and str_rtl.c the function strSplit() has been fixed to
528   work correct, if the delimiter consists of two or more characters.
529 - In fil_rtl.c the functions get_mode() and filClose() have been
530   improved.
531 - The program chkccomp.c has been improved to determine the values
532   HAS_GETGRNAM_R, HAS_GETGRNAM, HAS_GETPWNAM_R and HAS_GETPWNAM.
533
534 20200628:
535 - The new library zstd.s7i has been added. This library supports
536   Zstandard compressed files.
537 - The functions getOwner() and getGroup() have been added to cpio.s7i,
538   osfiles.s7i, ar.s7i, rpm.s7i, tar.s7i, zip.s7i and filesys.s7i.
539 - The function unsetenv() has been added to the library
540   environment.s7i. This function deletes a variable from the
541   environment.
542 - In bytedata.s7i the function getAsciiz() has been improved.
543 - The function gets() has been improved in gzip.s7i, iobuffer.s7i,
544   lzma.s7i, strifile.s7i, subfile.s7i, utf16.s7i, xz.s7i and
545   string.s7i. Now gets() can be called with a maxLength of
546   integer.last, without triggering an OVERFLOW_ERROR.
547 - Several improvents have been done for the library rpm.s7i:
548   - Now it supports a Zstandard compressed payload.
549   - A catalog has been added to rpm.s7i. This is necessary allow
550     writing to an RPM archive. Several functions have been rewritten
552   - Checks for the payload digest and for file digests have
554   - Several RPM tags have been added and the function to write a tag
555     name has been renamed to rpmtagName().
556   - The functions getStringArray(), createMinimumOfCatalog(),
560     getGroup(), setGroup(), putFile() and mkdir() have been added.
561 - The functions setOwner() and setGroup have been added to tar.s7i.
562 - The library bitdata.s7i has been improved. Now it supports the type
563   reverseBitStream and functions to create and read reverse bit
564   streams. Reverse bit streams are used by the Zstandard compression.
565 - The new exception INDEX_ERROR has been introduced. An INDEX_ERROR
566   occurs, if an index is used to access an 'array', 'string',
567   'bstring' or 'ref_list' element beyond the elements that actually
568   exist. Formerly this triggered a RANGE_ERROR.
569 - Several files have been adjusted to use INDEX_ERROR instead of
570   RANGE_ERROR. Checks for INDEX_ERROR have been added to chkexc.sd7
571   and chkstr.sd7.
572 - The FAQ has been improved. Now the design principles of Seed7 are
573   listed. The description how the type of an expression is determined
574   (bottom up), has been improved also.
576   of exception checks have been added to the manual.
577 - Several things in the compiler have been improved:
578   - Index checks can now be suppressed with the option -si.
579   - The generation of warnings, for a catch with suppressed exception
580     checks, has been improved.
581   - Code for the actions INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT
582     is inlined, if the option -oc3 is used and the argument of the
583     function is a string slice. This actions are used by the function
584     bytes2Int().
585   - Now optimized code for the index access of a ref_list is generated.
586     This reduces the runtime of an index access by 56% (Measured with
587     gcc and Valgrind when the compiler compiles bas7). The runtime of
588     the compiler is reduced by 0.2%.
589   - Better code for the 'times' operator is generated. Now arrTimes()
590     is used, if the array element is a simple value type (e.g. an
591     integer).
592   - Converting an integer to a bitset and computing the cardinality
593     of the set is already optimized by the compiler. Now the check for
594     negative integers can be suppressed with -sr.
595   - Index accesses for string and bstring have been improved to use
596     the function getParameterAsVariable().
597 - Tests for the compiler optimization of bytes2Int() have been added
598   to chkint.sd7.
599 - In chkstr.sd7 tests vor @:= with an empty source string (e.g.
600   stri @:= [1] "") have been added.
601 - The functions memsetGeneric() and arrTimes() have been added to
602   arr_rtl.c.
603 - In arr_rtl.c a check to avoid creating an array with a negative
604   number of elements has been added to arrMalloc().
605 - The program chkccomp.c has been improved to determine the values
606   os_unsetenv, PUTENV_CAN_REMOVE_KEYS, DEFINE_WUNSETENV, HAS_WCSNLEN,
607   HAS_GETGRGID_R, HAS_GETGRGID, HAS_GETPWUID_R and HAS_GETPWUID.
609 - The program chkccomp.c has been improved to write the linker option
610   -rpath in a way that works with modern linkers. The meaning of the
611   -rpath option has changed and it must be combined with the option
612   --disable-new-dtags to get the old behavior.
613 - The functions getGroupFromGid(), getUserFromUid(), cmdGetGroup(),
614   cmdGetOwner() and cmdUser() have been added to cmd_unx.c.
615 - The functions wunsetenv(), getNameFromSid(), cmdGetGroup(),
616   cmdGetOwner() and cmdUser() have been added to cmd_win.c.
617 - Definition of extern "C" have been added to db_fire.h, db_lite.h,
618   db_my.h, db_oci.h, db_odbc.h, db_post.h and db_tds.h.
619 - Interpreter and compiler have been improved to support the actions
620   CMD_GET_GROUP, CMD_GET_OWNER and CMD_UNSETENV.
621
622 20200531:
623 - The libraries tar.s7i, cpio.s7i and rpm.s7i have been improved such
624   that the file system functions follow symbolic links (inside of the
625   archive).
626 - The library zip.s7i has been improved to support the functions
627   setFileMode(), setMTime() and putFile().
628 - The library ar.s7i has been improved to allow UTF-8 file names and to
629   support the functions setFileMode(), setMTime(), putFile() and
630   removeFile().
631 - The library rpm.s7i has been improved to support a LZMA compressed
633 - The library cpio.s7i has been improved such that setFileMode(),
634   putFile() and mkdir() work correct.
635 - The library lzma.s7i has been fixed such that xz.s7i can handle
636   uncompressed chunks in an XZ archive. A bug in the function length()
637   has been fixed also.
638 - The new library fileutil.s7i has been added. This library supports
639   inserting and deleting areas in a file. The function copyFile, which
640   copies data between open files, has been moved from file.s7i to
641   fileutil.s7i.
642 - The function truncate(), which changes the length of a file, has been
643   added to file.s7i, external_file.s7i, clib_file.s7i, strifile.s7i and
644   utf16.s7i.
645 - The library iobuffer.s7i has been improved to allow switching between
646   reading and writing (and vice versa) as long as seek() is called in
647   between. The functions flush() and close() have been added and the
648   functions seek(), tell() and moveLeft() have been improved.
649 - The function deflate(), which deflates a string has been added to the
650   library deflate.s7i.
651 - The function moveLeft() has been improved in strifile.s7i and
652   stritext.s7i.
653 - The function timestamp1601 has been added to time.s7i.
654 - The bas7.sd7 (basic interpreter) example program has been improved.
655   Support for LINPUT statements, for the function RPT$and for the 656 string concatenation operator & has been added. The predefined 657 subprogram CHAR has been improved. Now PRINT statemens allow a colon 658 (:) between strings to describe a line break. Now INPUT statements 659 allow a colon (:) between input prompt and variable list. A dummy 660 implementation of the predefined subprogram SOUND has been defined. 661 - In seed7_05.s7i the definition of ::= for the type void has been 662 changed to use the action ENU_CREATE instead of PRC_NOOP. This avoids 663 a strange interpreter message (loc not dumped) if a void value is 664 written. 665 - Tests in chkint.sd7 have been split into several functions. 666 - Documentation in the FAQ, the manual and s7c.1 has been improved. 667 - Interpreter and compiler have been improved to support the new action 668 FIL_TRUNCATE. 669 - The compiler has been improved (in comp/inline.s7i in the function 670 push_inline_func_param) to add a "const" for a parameter definition. 671 This avoids a compilation error with g++. 672 - The keyboard driver gkb_x11.c has been improved to to support the 673 ALT modifier also under macOS. 674 - Code in sql_tds.c has been refactored. Unused struct fields have been 675 removed. The function sqlColumnDuration() has been improved. 676 - In tim_dos.c the function timAwait() has been improved to use 677 timToOsTimestamp() instead of mkutc() to get the timestamp. 678 - The function mkutc() has been removed from tim_rtl.c. 679 - The function XGetKeyboardControl() has been added to fwd_x11.c and 680 x11_x.h. 681 - The files fwd_term.c and fwd_term.h have been improved to work also 682 if termios.h is available. 683 - The makefiles have been improved to simplify the build system. Now 684 chkccomp.c includes the file base.h and generates version.h by 685 copying base.h and appending settings.h. Afterwards chkccomp.c 686 appends more values to version.h. These values are determined with 687 test programs. Additionally GET_CC_VERSION_INFO has been replaced by 688 CC_OPT_VERSION_INFO and CC_VERSION_INFO_FILEDES. The value 689 C_COMPILER_VERSION is now determined by chkccomp.c. 690 - The files confval.sd7, cc_conf.s7i, cmd_rtl.c and setpaths.c have 691 been improved to use the new configuration values. 692 - In cc_conf.s7i, confval.sd7, s7c.sd7, chkccomp.c, cmd_rtl.c and 693 os_decls.h the configuration values CC_ERROR_FILDES, 694 REDIRECT_FILDES_1 and REDIRECT_FILDES_2 have been renamed to 695 CC_ERROR_FILEDES, REDIRECT_FILEDES_1 and REDIRECT_FILEDES_2 696 respectively. 697 - The functions appendFile(), determineCompilerVersion() and 698 determineFtruncate() have been added to chkccomp.c. 699 - Documentation comments have been added or improved in array.s7i, 700 bigint.s7i, integer.s7i, progs.s7i, string.s7i, flt_rtl.c, 701 ref_data.c, reflib.c, setlib.c, set_rtl.c, sigutl.c and tim_rtl.c. 702 - Occurrences of the words minimal and maximal have been replaced with 703 minimum and maximum in several files. 704 705 20200502: 706 - As suggested by Zachary Menzies a detection of more modifier keys has 707 been added. E.g.: KEY_SHIFT_LOCK and KEY_NUM_LOCK. These modifier 708 keys have a state. The state of KEY_SHIFT_LOCK can be retrieved with 709 buttonPressed(KEYBOARD, KEY_SHIFT_LOCK_ON). 710 - Several new keys and key combinations such as KEY_PRINT, KEY_PAUSE, 711 KEY_ALT_LEFT and KEY_SFT_MENU have been added to keybd.s7i. Existing 712 definitions in keybd.s7i have been refactored. Key names in 713 keydescr.s7i have been updated. 714 - The program gkbd.sd7 has been improved to show the new capabilities 715 of the keyboard interface. 716 - The bas7.sd7 (basic interpreter) example program has been improved. 717 Support for the predefined subprograms CHAR, CLEAR, COLOR, HCHAR, 718 KEY, SCREEN and VCHAR and for the function SEG$ has been added.
719 - The bitmap font font8x8 has been added. This is a font with 8x8 pixel
720   used by the TI-99/4A homecomputer.
721 - The functions line() and column() have been added to pixmap_file.s7i.
722 - The function replace1() has been added to string.s7i.
723 - In the manual the chapters about types and the keyboard have been
724   improved.
725 - The compiler has been improved to link database libraries only if
726   they are needed.
727 - The compiler has been improved to use builtin functions of the C
728   compiler (if available) to do integer overflow checks. This reduces
729   the runtime of the xz (lzma2) decompression by 4% (measured with gcc
730   and valgrind, when decompressing a binary Seed7 package).
731 - The compiler has been improved to use a better approach to test for
732   integer overflow of addition and subtraction, if no builtin functions
733   are available. This reduces the runtime of the xz (lzma2)
734   decompression by 0.8% (measured with gcc and valgrind, when
735   decompressing a binary Seed7 package).
736 - The compiler has been improved to optionally suppress the generation
737   of checks for integer division by zero with the option -sd.
738 - The simple function profiling of the Seed7 compiler has been improved
739   to write the place and the name of the Seed7 function and to avoid
740   a C compiler error about "too many initializers".
741 - The compiler has been improved to write a warning if there is a catch
742   statement for an exception although the checks for this exception
743   have been suppressed (with the option -s).
744 - The compiler has been improved to work correct for all corner cases
745   of the string operations [, mult and @:=.
746 - Testcases for the operators [, mult and @:= and for the functions
747   pos() and rpos() have been added to chkstr.sd7.
748 - Testcases for the exception RANGE_ERROR have been added to
750   and parse are checked now, if they correctly raise RANGE_ERROR.
751 - Testcases for the exception RANGE_ERROR have been added to
752   chkint.sd7. The functions bytes() and integer() and the operators
753   radix, RADIX, sci and parse are checked now, if they correctly raise
754   RANGE_ERROR.
755 - Testcases for the exception NUMERIC_ERROR have been added to
756   chkint.sd7. The operators div, rem, mdiv, mod and ** are checked
757   now, if they correctly raise NUMERIC_ERROR.
758 - A lot of testcases has been added to chkint.sd7 and chkovf.sd7 in
759   the function check_reduced_overflow_checking_for_sums().
760 - In comp/big_act.s7i the function process_const_big_ipow has been
761   improved to allow that the check for a negative exponent can be
762   optionally omitted.
763 - In chkovf.sd7 the checks for the operators rem and mod have been
764   improved to allow that the operators return the correct result
766 - Index access in comp/str_act.s7i and comp/bst_act.s7i has been
767   improved to work also for the index integer.first (now the index is
768   casted to (unsigned) and afterwards 1 is subtracted).
769 - In comp/intrange.s7i the function getIntRange has been improved to
770   return better ranges for INT_ABS and INT_NEGATE.
771 - The keyboard driver gkb_x11.c has been improved to support new keys
772   and key combinations. Additionally the modifier state is synched now
773   with the keypresses. This allows reading a modifier key state (e.g.
774   (control has been pressed) from the moment when the main key (e.g.
775   the letter A) was pressed.
776 - The program chkccomp.c has been improved to determine the values
777   CHECK_INT_DIV_ZERO_BY_ZERO, HAS_BUILTIN_OVERFLOW_OPERATIONS and
778   SYSTEM_DATABASE_LIBS. The logic to determine the values
779   CHECK_INT_DIV_BY_ZERO, CHECK_INT_REM_BY_ZERO and
780   CHECK_INT_REM_ZERO_BY_ZERO has been improved.
781 - The configuration value CHECK_INT_DIV_ZERO_BY_ZERO,
783   and SYSTEM_DATABASE_LIBS have been added to cc_conf.s7i, confval.sd7
784   and cmd_rtl.c.
786   encoding.s7i, gzip.s7i, lzma.s7i, pixmap_file.s7i, scanfile.s7i,
787   sql_base.s7i, string.s7i, xz.s7i, sigutl.c and striutl.c.
788
789 20200405:
790 - The new library xz.s7i has been added. This library supports XZ
791   compressed files.
792 - The new library lzma.s7i has been added. This library supports LZMA
793   compressed files.
794 - The library rpm.s7i has been improved to support a XZ compressed
796 - The library tar_cmds.s7i and the program tar7.s7i have been improved
797   to support XZ and LZMA compressed tar archives.
798 - The library zip.s7i has been improved to support Unicode file names.
799 - As suggested by Zachary Menzies a detection of modifier keys has been
801   new key combinations such as KEY_SFT_MOUSE1 and KEY_CTL_PAD_CENTER
802   have been added to keybd.s7i.
803 - The program gkbd.sd7 has been improved to show the new capabilities
804   of the keyboard interface.
805 - Interpreter and compiler have been improved, to write a compile time
806   error, if a numerical escape sequence in a string or char literal
807   is too big.
808 - The compiler has been improved to omit overflow checks for the
809   dividend of the mod operator, if the divisor is a power of two. This
810   reduces the runtime of the xz (lzma2) decompression by 2.3% (measured
811   with gcc and valgrind, when decompressing a binary Seed7 package).
812 - The compiler file comp/intrange.s7i has been added. This file defines
813   the function getIntRange(), which computes the range of possible
814   results for several operators (e.g.: div, rem, mdiv, mod, >>) and
815   functions (e.g.: sqrt, length, pos, rand, log).
816 - The compiler has been improved to use the function getIntRange() to
817   omit overflow checks for addition, subtraction, multiplication and
818   left shift of integer values. This reduces the runtime of the xz
819   (lzma2) decompression by 0.4% (measured with gcc and valgrind, when
820   decompressing a binary Seed7 package).
821 - In the compiler the code generation for the operators div, rem, mdiv,
822   mod, * and << has been improved to work without catching the
823   exception OVERFLOW_ERROR.
824 - The compiler has been improved to allow that a range check is
825   suppressed with -sr for the action FLT_BITS2SINGLE (convert integer
826   to single precision float value).
827 - The compiler has been improved to generate code that writes the error
828   message of a DATABASE_ERROR, if the exception is uncaught.
829 - The compiler has been improved to suppress the usage of the C
830   compiler option CC_OPT_TRAP_OVERFLOW (-ftrapv), if the Seed7 compiler
831   option -so (suppress overflow checks) is used.
832 - The makefiles mk_clang.mak, mk_clangw.mak and mk_osxcl.mak have been
833   improved to define CC_OPT_TRAP_OVERFLOW with the value -ftrapv.
834 - The functions check_mod_by_power_of_two_optimization() and
836   to chkint.sd7. This functions check the mod operator regarding
837   the new compiler optimization for the mod dividend.
838 - The functions check_reduced_overflow_checking_for_sums(),
839   check_reduced_overflow_checking_for_mult() and
840   check_reduced_overflow_checking_for_lshift() have been added to
841   chkint.sd7 and chkovf.sd7. This functions test the compiler
842   optimization to reduce overflow checking with getIntRange().
843 - The libraries aes.s7i, bitdata.s7i, color.s7i, deflate.s7i, draw.s7i,
844   ico.s7i, msgdigest.s7i, pkcs1.s7i, showtls.s7i and utf16.s7i have
845   been improved to use the division operators 'mdiv' and 'mod' instead
846   of 'div' and 'rem'.
847 - The configuration value CC_OPT_TRAP_OVERFLOW has been introduced in
848   cc_conf.s7i, confval.sd7, s7c.sd7, chkccomp.c, cmd_rtl.c and
850 - The function write_exception_info() has been added to runerr.c. This
851   function is called in executl.c.
852 - The keyboard drivers gkb_win.c and gkb_x11.c have been improved to
853   support modifier keys and more key combinations.
854 - Definitions for 31 new key compinations and 9 modifier keys have
855   been added to keybd.s7i and keydescr.s7i.
856 - Documentation comments have been improved in ar.s7i, cc_conf.s7i
857   and csv.s7i.
858
859 20200308:
860 - The new library cpio.s7i has been added. This library supports cpio
861   archive files.
862 - The new library rpm.s7i has been added. This library supports rpm
863   archive files.
864 - The new library ar.s7i has been added. This library supports ar
865   archive files.
866 - The new library subfile.s7i has been added. This library allows to
867   open a part of an existing file as read only file.
868 - The new library filebits.s7i has been added. This library defines
869   file mode bits used by archive file systems.
870 - The libraries bin32.s7i and bin64.s7i have been improved to support
871   case statements for the types bin32 and bin64.
872 - The tarHeader element 'size' has been renamed to 'fileSize' in
873   tar.s7i and tar_cmds.s7i.
874 - Tests for the operator 'conv' and for the functions compare(), str(),
875   float(), trunc() and round() have been added to chkflt.sd7.
876 - The program chkccomp.c has been improved to determine the values
877   MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT.
878 - Definitions of MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT have
880 - The compiler (s7c) has been improved (in comp/flt_act.s7i) such that
881   the actions FLT_TRUNC and FLT_ROUND do the correct check for the
882   exception RANGE_ERROR.
883 - The database driver sql_oci.c has been improved to support the types
884   BINARY_FLOAT and BINARY_DOUBLE.
885 - Tests for FLOAT and DOUBLE fields have been added to chkdb.sd7.
886 - A definition of the constant GZIP_MAGIC has been added to gzip.s7i.
887 - In file.s7i and iobuffer.s7i the functions hasNext() and length()
888   have been changed to use an inout parameter for the file. This fixes
889   a problem in compiled programs with some file systems where also an
890   inout parameter is used for the file.
891 - The file db_oci.h has been improved to define SQLT_BFLOAT,
892   SQLT_IBFLOAT, SQLT_BDOUBLE and SQLT_IBDOUBLE.
893 - In fltlib.c the functions flt_trunc() and flt_round() have been
894   improved to do the correct check for the exception RANGE_ERROR.
895
896 20200209:
897 - The new database driver sql_tds.c has been added. This driver uses
898   the Tabular Data Stream (TDS) protocol to transfer data between
899   database server and client. TDS is used by SQL Server and Sybase.
900   This driver allows the connection to a SQL Server database from
901   Linux.
902 - The new library db_prop.s7i has been added. This library provides a
903   collection of database properties.
904 - The example program chkdb.sd7 has been improved:
906   - Tests that fetch boolean values from numeric fields have been
908   - Tests for date, time, datetime and timestamp fields have been
910 - In the library time.s7i the function time() has been improved, to
911   accept more variants of the ISO 8601 time and date format including
912   variants with a time zone.
913 - The interpreter (s7) has been improved to write the error message of
914   a DATABASE_ERROR, if the exception is not caught.
915 - In tim_rtl.c the function timUtcFromTimestamp() has been improved to
916   work without calling gmtime() or gmtime_r() or gmtime_s(). Now the
917   function always works with a 64-bit signed timestamp. Gmtime() uses
918   time_t, which can be 32-bit or 64-bit and it can be signed or
919   unsigned.
920 - In tim_rtl.c the function timToTimestamp() has been improved to work
921   without calling mkutc(). This way the function always works with a
922   64-bit signed timestamp. Mkutc() is also defined in tim_rtl.c and it
923   uses the system dependent type time_t.
924 - In tim_rtl.c the functions timToOsTimestamp(), assignTime() and
925   dateFromDaysSince1900() have been added and the functions
926   timFromBigTimestamp() and timToBigTimestamp() have been removed.
927 - In exec.c the functions par_restore() and loc_restore() have been
928   improved to free unneeded memory, in case an exception has been
929   raised.
930 - In executl.c the function destroy_local_object() has been improved to
931   optionally ignore exceptions.
932 - The functions leaveExceptionHandling(), saveFailState() and
933   restoreFailState() have been added to runerr.c. This function is used
934   in executl.c and prclib.c.
935 - In numutl.c the functions getDecimalBigRational() and
936   getDecimalFloat() have been improved to accept both, a decimal point
937   and a decimal comma.
938 - In several database drivers the function processStatementStri() has
939   been improved to replace a comment with a space.
940 - Interpreter and compiler have been improved to support the actions
941   SQL_ROLLBACK, SQL_GET_AUTO_COMMIT and SQL_SET_AUTO_COMMIT.
942 - The functions sqlRollback(), sqlGetAutoCommit() and
943   sqlSetAutoCommit() have been added to sql_cli.c, sql_lite.c,
944   sql_my.c, sql_oci.c, sql_post.c and sql_rtl.c.
945 - In the database driver sql_lite.c the functions sqlBindTime() and
946   sqlColumnTime() have been improved to support more time and date
947   formats. The function sqlColumnTime() calls assignTime() to reach
948   this goal.
949 - In the database driver sql_my.c the function sqlColumnTime() has
950   been improved to correct values, if they are outside of the allowed
951   range.
952 - The database driver sql_db2.c has been improved to allow that for
953   the functions SQLExecute() and SQLFetch() SUCCESS_WITH_INFO is
954   treated as SQL_SUCCESS.
955 - The database driver sql_post.c has been improved:
956   - Inserting and selecting time fields is now supported under
957     different operating systems and compilers.
958   - The type preparedStmtRecord and the functions freePreparedStmt()
959     and sqlPrepare() have been improved such that a prepared statement
960     maintains a dbType reference instead of a connection (PGconn).
961   - The functions doExecSql() and implicitCommit() have been added.
962     These functions are used for autocommit and for transaction
963     handling.
964 - The database driver sql_oci.c has been improved:
965   - The function sqlBindTime() has been improved to set the timeZone
966     and to use a nanosecond as unit for the fraction of a second.
967     There is also a check for situations in which the function
968     OCIDateTimeConstruct() fails.
969   - The function sqlColumnTime() has been improved to use the function
970     OCIDateTimeGetTimeZoneOffset() to retrieve a timeZone and to use a
971     nanosecond as unit for the fraction of a second.
972 - The database driver sql_cli.c has been improved:
973   - In case of a DATABASE_ERROR exception the native SQL error is
974     assigned to the errorCode.
975   - The function freePreparedStmt() has been changed to ignore
976     possible errors of SQLFreeStmt().
977   - Binding SQL_BLOB and SQL_CLOB parameters is supported now.
978   - Retrieving SQL_SS_TIME2 and SQL_XML columns is supported now.
979   - Retrieving datetime2 columns in sqlColumnTime() has been improved
980     to use the function assignTime().
981 - The database include files db_lite.h, db_my.h, db_oci.h and db_odbc.h
982   have been improved.
983 - In sql_srv.c the functions connectToServer() and
984   connectToLocalServer() have been improved to return a boolean value
985   instead of a SQLRETURN value.
986 - In cmd_rtl.c the functions cmdSetATime() and cmdSetMTime() have been
987   improved to use the new function timToOsTimestamp().
988 - The function determineTdsDefines() has been added to chkccomp.c.
989 - In exec.c the function suspendInterpreter() has been renamed to
990   doSuspendInterpreter().
991
992 20191229:
993 - Spelling corrections have been done in several files. Many thanks go
994   to Jens Schleusener, for sending a source code misspelling report
995   from Fossies.
996 - The memory management has been improved:
997   - In exec.c the functions res_restore() and exec_action() have been
998     improved to free unneeded memory, in case an exception has been
999     raised.
1000   - In prclib.c the functions prc_block(), prc_block_catch_all() and
1001     prc_block_otherwise() have been improved to free the
1002     fail_expression, in case an exception has been caught.
1003   - In numutl.c the function getDecimalBigRational() has been improved
1004     to free the temporary string.
1005   - In sql_rtl.c the function sqlColumnBigRat() has been improved to
1006     free the old values of numerator and denominator.
1007 - In sql_base.s7i the function openDatabase() with DB_ODBC and dbPath
1008   has been improved to use a DSN (data source name), if colon and slash
1009   are missing. E.g.: openDatabase(DB_ODBC, "anyDsn", "test", "test")
1010 - The compiler has been improved to support the action PRC_HEAPSTAT.
1011 - In flistutl.c the functions heapStatistic() and check_heap() have
1012   been improved to consider processes, sql functions, databases,
1013   prepared statements and fetched data. The function heap_statistic()
1014   has been renamed to heapStatistic().
1015 - In sql_cli.c the functions sqlColumnBigInt(), sqlColumnBigRat(),
1016   sqlColumnBStri(), sqlColumnFloat() and sqlColumnStri() have been
1017   improved to check, if the length returned by the database is greater
1018   than the buffer_length. In this case a DATABASE_ERROR is raised.
1019 - In sql_cli.c the function setDecimalBigRat() has been improved to
1020   convert integers to a string without decimal point.
1021 - The function SQLGetFunctions() has been removed from db_odbc.h,
1022   sql_cli.c and the makefiles (variable OBJCOPY_PARAMS).
1023 - In sql_cli.c the element SQLDescribeParam_supported has been removed.
1024   Instead the function pointer of SQLDescribeParam is checked and the
1025   result of SQLDescribeParam() is compared with SQL_SUCCESS.
1026 - In sql_odbc.c the function driverConnect() has been improved to
1027   search only for a driver, if the driver name is not empty.
1028 - In sql_odbc.c the function sqlOpenOdbc() has been improved to use
1029   the dbName as DSN (data source name) only, if no driver and no server
1030   are given.
1031 - In sql_post.c the function setupDll() has been improved to call
1032   dllOpen() instead of a recursive call of setupDll().
1033 - The new macro ALLOC_RECORD2() has been added to heaputl.h. The macro
1034   is used in drw_win.c, drw_x11.c, sql_cli.c, sql_fire.c, sql_lite.c,
1035   sql_my.c, sql_oci.c and sql_post.c.
1036 - The new macros COUNT_GROW_STRI() and COUNT_SHRINK_STRI() have been
1037   added to heaputl.h. This macros are currently empty. They are planned
1038   for a heap statistic concerning unused chars in strings with
1039   capacity.
1040 - In chkccomp.c several improvements have been done. In
1041   determineFireDefines() a search for the Firebird home directory has
1042   been added. In determineDb2Defines() the environment variable
1043   DB2_HOME is used now, to determine the Db2 home directory. In
1044   determineConsoleDefines() and determineSqlServerDefines() the list
1045   of DLLs has been improved.
1046 - The heap statistic for strings has been improved to use the string
1047   capacity instead of the string size.
1048 - The file config.h has been changed to define the macros
1049   USE_ALTERNATE_NEXT_CHARACTER, USE_INFILE_BUFFER, USE_CHUNK_ALLOCS,
1050   USE_ALTERNATE_CHUNK_ALLOCS and USE_MAXIMUM_MALLOC_CHECK always. Now
1051   these macros can have a value of 0 or 1.
1052
1053 20191215:
1054 - The database libraries sql_srv.c and sql_cli.c have been improved to
1055   allow the connection to a SQL Server database from Linux. The library
1056   libtdsodbc.so is used to do the actual communication with the
1057   database.
1058 - The build system of Seed7 has been improved. Logic regarding X11,
1059   ncurses and the databases has been moved from the makefiles to
1060   chkccomp.c.
1061 - The build for Linux has been improved to work even if essential
1062   header files (for X11 or ncurses) are missing. This should only be
1063   used, if it is impossible to install the development packages of X11
1064   or ncurses.
1065 - The example program chkdb.sd7 has been improved to do tests for SQL
1066   Server.
1067 - In the FAQ the explanation of "What is necessary to compile Seed7
1068   with database connections", has been improved.
1069 - In chkccomp.c the functions findIncludeFile(), findStaticLib(),
1072 - In chkccomp.c the functions determineEnvironDefines(),
1073   determineStatFunctions(), determineX11Includes(),
1074   determineMySqlDefines(), determineSqliteDefines(),
1075   determinePostgresDefines(), determineOdbcDefines(),
1076   determineOciDefines(), determineFireDefines(), determineDb2Defines(),
1077   determineSqlServerDefines(), determineIncludesAndLibs() and main()
1078   have been improved.
1079 - The files fwd_term.c and fwd_term.h have been added. The functions in
1080   fwd_term.c forward calls to a shared terminfo library.
1081 - The files con_inf.c, kbd_inf.c, kbd_poll.c, trm_cap.c and trm_inf.c
1082   have been improved to work with fwd_term.c and fwd_term.h.
1083 - The file fwd_x11.c has been added. The functions in fwd_x11.c forward
1084   X11 calls to a shared X11 library. Fwd_x11.c is used, if it is not
1085   possible to link to a static X11 library.
1086 - The file x11_x.h has been added. This file is used, if no X11 include
1087   file can be found.
1088 - The files drw_x11.c and gkb_x11.c have been improved to work with
1089   x11_x.h and x11_x.h.
1090 - The makefiles have been adjusted to work with the new build system.
1091 - The program warn.c has been added. This program writes a warning, if
1092   header files of X11 or ncurses are missing.
1094 - In dll_win.c the function dllOpen() has been improved to assure, that
1095   a path to a DLL uses a backslash as path delimiter. This is required
1097 - The files bin/call_cl.bat and bin/call_lib.bat have been removed.
1098
1099 20191117:
1100 - Support for mice with forward and back button has been added to the
1101   Seed7 run-time library. Many thanks go to Zachary Menzies, for
1102   driving my focus towards mice with additional buttons.
1103 - Support for the C compiler from Visual Studio 2019 has been added.
1104   Many thanks go to Alexander Yu. Vlasov for pointing out compilation
1105   problems with Visual Studio 2019 and for investigating the problems.
1106 - Interpreter and compiler have been improved to support DB2 and SQL
1107   Server databases.
1108 - In the manual the chapter about the database abstraction API has been
1109   improved.
1110 - The compiler has been improved to optimize the function replace()
1111   (action STR_REPL). Special functions (strChRepl() and strChChRepl())
1112   are used, if the searched or the replaced string consist of one
1113   character. This works even, if a character is converted to a string
1114   with the function str().
1115 - Testcases for replace() have been added to chkstr.sd7.
1116 - The program bigfiles.sd7 has been improved to search for the biggest
1117   directories additionally to the biggest files.
1118 - The libraries keybd.s7i and keydescr.s7i have been improved to
1119   support KEY_MOUSE_FWD and KEY_MOUSE_BACK.
1120 - The library sql_base.s7i and the programs db7.sd7 and sql7.sd7 have
1121   been improved to support DB_DB2 and DB_SQL_SERVER.
1122 - In striutl.c the function stri_to_standard_path() has been improved,
1123   to do a smarter mapping from a DOS/Windows path to the Seed7 standard
1124   path representation.
1125 - In osfiles.s7i the functions makeParentDirs() and convDosPath() have
1126   been improved. Now convDosPath() and stri_to_standard_path() use the
1127   same algorithm to map from a DOS/Windows path to the Seed7 standard
1128   path representation.
1129 - The function strChChRepl() has been added to str_rtl.c.
1130 - The program chkccomp.c has been improved to define the macros
1131   REMOVE_REATTEMPTS, SETENV_ALLOWS_KEY_WITH_EQUALS_SIGN and
1132   GETENV_ALLOWS_KEY_WITH_EQUALS_SIGN.
1133 - The functions determineDb2Defines() and determineSqlServerDefines()
1134   have been added to chkccomp.c.
1135 - The names of database DLLs (shared libraries) has been moved from
1136   the makefiles to chkccomp.c.
1137 - The database driver sql_odbc.c has been refactored to be based on
1138   sql_cli.c. Most of the contents of sql_odbc.c has been moved to
1139   sql_cli.c and sql_odbc.c now includes sql_cli.c.
1140 - The new database drivers sql_db2.c (for DB2) and sql_srv.c (for SQL
1141   Server) have been added. Like sql_odbc.c this drivers also include
1142   sql_cli.c.
1143 - In cmd_rtl.c the function cmdChdir() has been improved to use an
1144   extended length path only, if it is absolutely necessary. In Windows
1145   an extended length path starts with \\?\ and can have a length
1146   greater equal 260. Many subprocesses cannot handle a current working
1147   directory with an extended length path.
1148 - The makefiles mk_msvc.mak and mk_clangw.mak have been improved to
1149   write INI files with all environment variables. The INI files are
1150   seed7/bin/cl_env.ini and seed7/bin/clangenv.ini. This INI files
1151   contain the environment variables necessary to use the C compiler.
1152 - The program setpaths.c has been improved to optionally write a
1153   definition of the macro CC_ENVIRONMENT_INI to version.h. The macro
1154   CC_ENVIRONMENT_INI defines the path of seed7/bin/cl_env.ini or
1155   seed7/bin/clangenv.ini.
1156 - Support for the configuration values CC_ENVIRONMENT_INI and
1157   DATABASE_LIB has been added to cc_conf.s7i and cmd_rtl.c (in
1158   cmdConfigValue()).
1159 - The function unsetenv7() has been added to cmd_unx.c.
1160 - In gkb_x11.c and gkb_x11.c the functions gkbGetc() and
1161   gkbKeyPressed() have been improved to support KEY_MOUSE_FWD and
1162   KEY_MOUSE_BACK. Additionally the macro TRACE_EVENTS, to optionally
1163   trace events has been introduced.
1164 - The makefiles have been improved to create the new library s7_db.a
1165   (s7_db.lib), which contains all database drivers.
1166 - The files sql_cli.c (former sql_odbc.c) and sql_fire.c have been
1167   improved to reduce the number of C compiler warnings.
1168 - In sql_cli.c (former sql_odbc.c) the function setDbErrorMsg() has
1169   been improved to work for database error messages with Unicode
1170   characters. The function wstri_to_cstri8() has been added to do the
1171   conversion.
1172 - The file db_odbc.h has been improved to define wide character
1173   functions instead of ASCII functions. This was needed by sql_srv.c
1174   because it links dynamically to sqlsrv32.dll, which only defines
1175   wide character functions.
1176
1177 20191020:
1178 - The support for Emscripten has been improved to allow the compilation
1179   of Seed7 programs.
1180 - Improvements have been done in sql_odbc.c to support the connection
1181   with a DB2 database.
1182 - Testcases for pos() and rpos() have been added to chkstr.sd7.
1183 - The compiler has been improved to optimize the functions pos() and
1184   rpos() (actions STR_POS, STR_RPOS, STR_CHPOS, STR_RCHPOS).
1185 - The program setwpath.c has been improved to work correct in more
1186   situations (E.g.: If no PATH variable exists, if the path to be added
1187   is a substring of an existing path, if the first path in the PATH
1188   variable is to be removed, if there is only on path in the PATH
1189   variable and this path is to be removed).
1190 - In fil.unx.c the function setupFiles() has been improved to mount the
1191   file systems for Emscripten and node.js with a better strategy.
1192 - In sql_odbc.c the function sqlStmtColumnName() has been improved to
1193   work with one call of SQLColAttributeW(), if the length of the column
1194   name is below a limit. Additionally a parameter of NULL as
1195   destination for the name has be replaced by a valid address. The
1196   usage of NULL triggered an error with DB2.
1198   cc_conf.s7i. The linker produces a file with the extension defined by
1200   identical to EXECUTABLE_FILE_EXTENSION. Except for Emscripten where,
1201   the value is ".js".
1202 - The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
1204 - The compiler (s7c.s7i), the function getProgramName() in arr_rtl.c,
1205   the function cmdConfigValue() in cmd_rtl.c and the program chkccomp.c
1206   have been improved to use LINKED_PROGRAM_EXTENSION.
1207 - In chkccomp.c the function determineEnvironDefines() has been
1208   improved to determine, if getenv() works case sensitive. A definition
1209   of GETENV_IS_CASE_SENSITIVE, with a value of 0 or 1, is written to
1210   version.h.
1211 - The function getSearchPathDelimiter() has been added to cmd_rtl.c.
1212   This function is used if SEARCH_PATH_DELIMITER is 0. In this case
1213   the search path delimiter must be determined at run-time.
1214 - The function systemForNodeJs() has been added to cmd_rtl.c. This
1215   function is used for Emscripten and node.js as replacement for the
1216   C run-time library function system().
1217 - The files sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c
1218   and sql_post.c have been improved to work correct, if no database
1219   include file could be found. Normally this should not happen,
1220   because Seed7 can provide its own database include files.
1221 - The functions getenv7() and setenv7() have been added to cmd_unx.c.
1222   This functions are used for Emscripten, because of a limitation in
1223   the Emscripten implementations of getenv() and setenv().
1224 - Documentation comments have been improved in external_file.s7i,
1225   file.s7i, leb128.s7i, scanfile.s7i, scanstri.s7i and string.s7i.
1226 - Comments explaining the usage of undefined behavior have been added
1227   to arrlib.c, bstlib.c, set_rtl.c and strlib.c.
1228
1229 20190919:
1230 - A chapter about the database abstraction API has been added to the
1231   manual.
1232 - In the manual the chapters about primitive actions and about the
1233   foreign function interface have been improved.
1235   have been added to the FAQ.
1236 - The new library ico.s7i has been added. This library supports the ICO
1237   image file format.
1238 - The library browser.s7i has been improved to be more robust regarding
1239   network events.
1240 - The database drivers have been improved to raise a DATABASE_ERROR,
1241   if the database library could not be found. The error message of the
1242   DATABASE_ERROR contains the name of the missing DLL respectively
1243   shared object library.
1244 - Documentation comments have been improved in 85 library/include files
1245   (*.s7i). Wrong usages of the word "when" have been replaced by "if".
1246 - Documentation comments have been improved in 96 C source files.
1247   Wrong usages of the word "when" have been replaced by "if".
1248 - Texts in 9 Seed7 programs (*.sd7) and in a lot of documentation files
1249   have been improved. Wrong usages of the word "when" have been
1250   replaced by "if".
1251
1252 20190819:
1253 - A definition of SQL_DRIVER_NOPROMPT has been added to db_odbc.h.
1254   Many thanks go to Brett Senior for pointing out a fatal compilation
1255   error in sql_odbc.c, when compiling Seed7 version 2019-08-18 under
1256   Debian Linux.
1257 - The example program chkdb.sd7 has been improved to write better
1258   error messages.
1259 - In reflib.c the function ref_select() has been improved to work
1260   correct, if a derived struct overrides an element of the parent
1261   struct.
1262
1263 20190818:
1264 - Interpreter and compiler have been improved to work correct, if a
1265   derived struct overrides an element of the parent struct. Many thanks
1266   go to Zachary Menzies, for reporting this error and for providing a
1267   test program.
1268 - In the FAQ the explanation, why Seed7 uses UTF-32, has been improved.
1269   An explanation of the database abstraction layer, which provides an
1270   database independent API, has also been added to the FAQ.
1271 - In the manual the chapter about the deprecated function
1272   removeAnyFile() has been replaced by a chapter about the function
1273   removeTree().
1274 - The program db7.sd7 (Database Inspector) has been improved to quote a
1275   table name from the catalog when doing a select.
1276 - The program sql7.sd7 has been improved to allow the execution of SQL
1277   statements from a file. The function getSqlStatement has been added,
1278   which reads a semicolon terminated SQL statement from a file.
1279 - The library tar.s7i has been improved to accept extended headers with
1280   meta data (PAX format) also when a tar file is opened as file system
1282   do this.
1283 - A code page for JIS X 0201 encoding has been added to charsets.s7i.
1284 - The program err.sd7 has been improved to contain test cases, where
1285   UTF-16 surrogate characters and non Unicode characters are written as
1286   Seed7 string escape sequences.
1287 - In sql_oci.c the function sqlOpenOci() has been improved to allow
1288   opening a database with host name, port and database name. This way a
1289   database can be opened without an entry in tnsnames.ora. The type
1290   connectDataRecord and the function setupConnectData() have been added
1291   to sql_oci.c.
1292 - The functions sqlOpenMy (in sql_my.c) and sqlOpenPost (in sql_post.c)
1293   have been improved to allow opening a database with host name, port
1294   and database name. Now host, port and dbName are parameters. Before
1295   the functions split the parameter dbName into host and database name.
1296   Specifying a port was not possible.
1297 - In sql_odbc.c the function sqlOpenOdbc() has been improved to allow
1298   opening a database with ODBC driver name, server name and database
1299   name. This way a database can be opened without specifying a data
1300   source in the ODBC Data Source Administrator (in the Control Panel).
1301   The type connectDataRecord and the functions getRegularName(),
1302   wstriSearchCh(), wstriSearch(), connectToServer(), connectToDriver()
1303   and driverConnect() have been added to sql_odbc.c. A definition of
1304   SQL_NEED_DATA has been added to db_odbc.h.
1305 - In sql_rtl.c the function sqlErrMessage() has been improved to allow
1306   database error messages encoded in UTF-8.
1307 - The function sqlOpen() has been removed from sql_rtl.c.
1308 - The function width() has been added to string.s7i and seed7_05.s7i.
1309   This function computes the sum of the character widths in a string.
1310   A character width can be 0 (for control characters), 1 (for normal
1311   printable characters) and 2 (for fullwidth characters, e.g. KANJI).
1312 - The library console.s7i has been improved to use the function
1313   width(), to work correct with fullwidth characters (where the width
1314   of a character is 2).
1315 - Documentation comments have been improved in sql_base.s7i,
1316   bytedata.s7i, unicode.s7i, integer.s7i and str_rtl.c.
1317 - Interpreter and compiler have been improved to support the new
1318   actions SQL_OPEN_FIRE, SQL_OPEN_LITE, SQL_OPEN_MY, SQL_OPEN_OCI,
1319   SQL_OPEN_ODBC and SQL_OPEN_POST. The support for the action SQL_OPEN
1320   has been removed.
1321 - The program chkccomp.c and the makefiles mk_mingw.mak, mk_mingc.mak,
1322   mk_msys.mak and mk_nmake.mak have been changed to avoid the warning
1323   "unknown conversion type character 'l' in format", when compiling
1324   with the MinGW C compiler. The macro FORMAT_LL_TRIGGERS_WARNINGS is
1325   used to avoid the usage of the format length modifier ll.
1326 - In error.c the function print_stri has been improved to write UTF-16
1327   surrogate characters or non Unicode characters as Seed7 string escape
1328   sequences.
1329 - The unused functions con_beep() and con_setfont() have been removed
1330   from con_con.c and con_win.c.
1331 - The new macro ESC_SEQUENCE_MAX_LEN has been defined in striutl.h.
1332   This macro is used in error.c and str_rtl.c to define the local
1333   buffer escapeBuffer.
1334 - Changes have been done in stat_win.c and stat_win.c to reduce the
1335   number of MinGW C compiler warnings.
1336 - Log functions have been added or improved in sctlib.c, sql_fire.c,
1337   sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c.
1338
1339 20190714:
1340 - The library tls.s7i has been improved to support elliptic curve
1341   diffie hellman key exchange.
1342 - The new library elliptic.s7i has been added. This library supports
1343   elliptic curve cryptography (ECC). The library defines:
1344   - Several named curves,
1345   - Functions to add, double and multiply curve points.
1346   - Functions for fast multiplication with jacobian coordinates.
1347   - Functions to encode and decode curve points.
1348   - Functions to sign and verify messages with the ECDSA.
1349 - The functions emsaPkcs1V15Encoding, emsaPkcs1V15Decoding,
1350   rsassaPkcs1V15Encrypt and rsassaPkcs1V15Decrypt have been added to
1351   the library pkcs1.s7i.
1352 - In x509cert.s7i the function getAlgorithmIdentifier has been improved
1353   to accept algorithm identifiers without algorithm parameters.
1354 - A version of the function createX509Cert, that creates a certificate
1355   with keys for elliptic curve cryptography, has been added.
1356 - The new library showtls.s7i had been added. This library defines
1357   functions to show TLS messages. It can be used to debug tls.s7i.
1358 - The library tar.s7i has been improved to accept extended headers with
1359   meta data (PAX format). Now path and linkpath meta data is accepted.
1360 - A new version of the function bytes() has been added to bytedata.s7i.
1361   This function converts a bigInteger to a string of bytes with a given
1362   length.
1363 - Checks for the multiplication operators * and *:= with factors of
1364   1 and -1 have been added to chkint.sd7.
1365 - Checks for the operator 'lpad0' have been added to chkint.sd7.
1366 - Checks for NaN have been added to chkflt.sd7.
1367 - In the compiler (in comp/const.s7i) the action FLT_MOD has been added
1368   to the list of pure function actions.
1369 - The compiler has been improved to optimize the actions FLT_REM (in
1370   comp/flt_act.s7i) and INT_LPAD0 (in comp/int_act.s7i).
1371 - A corner case of the multiplication operator *:= has been fixed in
1372   the compiler (process_const_int_mult_assign() in comp/int_act.s7i).
1373   The bug occurred in the overflow checking code, when an array element
1374   was multiplied with *:= -1. Multiplications of normal variables and
1375   parameters with *:= and multiplications with other factors except -1
1376   were not affected by this bug.
1377 - Documentation comments have been improved in cc_conf.s7i and
1378   pkcs1.s7i.
1379 - In con_win.c the functions kbdKeyPressed() and kbdGetc() have been
1380   improved to ignore mouse movement and button press events.
1381 - The program chkccomp.c has been improved to have a more detailed
1382   check for POW_OF_NAN_OKAY.
1383 - In fltlib.c checks for 0.0 have been improved in flt_div() and
1384   flt_div_assign().
1385 - In flt_rtl.c preprocessor if statements have been improved to check
1386   for !FLOAT_NAN_COMPARISON_OKAY in fltLog(), fltLog10() fltLog2() and
1387   fltPow().
1388
1389 20190610:
1390 - The library float.s7i has been improved to support the float
1391   operators 'rem' (floating-point remainder) and 'mod' (floating-point
1392   modulo).
1393 - The program chkflt.sd7 has been improved to check floating-point
1394   literals and the new operators 'rem' and 'mod'. The tests for the
1395   operator ** have been improved also.
1396 - Compiler and interpreter have been improved to work correct, even
1397   when the C functions fmod(), exp(), ldexp(), frexp() and sqrt() do
1398   not work 100% correct.
1399 - The program chkccomp.c has been improved to detect weaknesses of
1400   numeric functions. These weaknesses happen when handling with NaN,
1401   Infinity or when other special cases occur.
1402 - A new version of the function timAwait() has been added to tim_unx.c.
1403   This function is used when AWAIT_WITH_NANOSLEEP is defined.
1404 - The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
1405   define AWAIT_WITH_NANOSLEEP instead of AWAIT_WITH_SELECT.
1406 - Interpreter and compiler have been improved to support the actions
1407   FLT_MOD and FLT_REM.
1408 - In the compiler (in comp/flt_act.s7i) a corner case of the action
1409   FLT_IPOW (when CHECK_FLOAT_DIV_BY_ZERO is TRUE and the exponent is
1410   negative and the base is zero (0.0 or -0.0)) has been fixed.
1411 - The configuration values FLOAT_COMPARISON_OKAY, FMOD_FUNCTION_OKAY,
1412   EXP_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY and FREXP_FUNCTION_OKAY have
1413   been added to cc_conf.s7i. The configuration values
1414   NAN_COMPARISON_OKAY and FREXP_INFINITY_NAN_OKAY have been removed.
1415 - The functions fltDecompose(), fltExp(), fltLdexp(), fltMod() and
1416   fltRem() have been added to flt_rtl.c. These functions are used, when
1417   the corresponding C functions frexp(), exp(), ldexp() and fmod() do
1418   not work 100% correct.
1419 - In flt_rtl.c the functions fltEq(), fltGe(), fltGt(), fltLe() and
1420   fltLt() have been improved. These improvements help, when the
1421   comparison of float or double values does not work 100% correct.
1422 - In flt_rtl.c the functions fltPow(), getMantissaAndExponent(),
1423   setMantissaAndExponent() and fltSqrt() have been improved. These
1424   improvements help, when the underlying C functions pow(), frexp(),
1425   ldexp() and sqrt() do not work 100% correct.
1426 - The program chkccomp.c has been improved to define the macros
1427   FLOAT_NAN_COMPARISON_OKAY, FLOAT_ZERO_COMPARISON_OKAY,
1428   SQRT_OF_NAN_OKAY, SQRT_OF_NEGATIVE_OKAY, EXP_OF_NAN_OKAY,
1429   LDEXP_OF_NAN_OKAY, FREXP_SUBNORMAL_OKAY, FMOD_DIVIDEND_NAN_OKAY,
1430   FMOD_DIVISOR_NAN_OKAY, FMOD_DIVIDEND_INFINITY_OKAY,
1431   FMOD_DIVISOR_INFINITY_OKAY and FMOD_DIVISOR_ZERO_OKAY.
1432 - In cmd_rtl.c the function cmdConfigValue has been improved to support
1433   the config values FLOAT_COMPARISON_OKAY, EXP_FUNCTION_OKAY,
1434   FMOD_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY and FREXP_FUNCTION_OKAY.
1435 - Definitions of the macros FLOAT_COMPARISON_OKAY, SQRT_FUNCTION_OKAY,
1436   EXP_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY, FREXP_FUNCTION_OKAY and
1437   FMOD_FUNCTION_OKAY have been added to common.h
1438 - Documentation comments have been improved in intlib.c, int_rtl.c,
1439   match.c, str_rtl.c, keybd.s7i and vectorfont.s7i.
1440 - In comp/int_act.s7i the variable quotient_name has been renamed to
1441   remainder_name.
1442
1443 20190523:
1444 - In match.c the function substitute_params() has been fixed to copy
1445   parameters with expressions instead of calling do_create(). For
1446   expressions do_create() just creates a reference to the expression
1447   and this leads later to a double free of the expression. Many thanks
1448   go to Anton Lobach, for reporting this error and for providing a test
1449   program.
1450 - The library blowfish.s7i, with Blowfish cipher support, has been
1452 - The functions column() and line() have been added to the library
1453   console.s7i.
1454 - The bas7.sd7 (basic interpreter) example program has been improved.
1455   Support for the keyword ENDIF has been added.
1456 - The compiler (s7c.sd7) has been improved (in set_act.s7i) to optimize
1457   the expression card(bitset(number)).
1458 - The functions toBase and fromBaseToBigInt have been added to
1459   encoding.s7i. This functions encode and decode bigInteger numbers
1460   with a positional numeric system.
1461 - Conversion functions have been added to bitsetof.s7i and bitset.s7i.
1462 - Checks for the function card() have been added to chkset.sd7.
1463 - Interpreter and compiler have been improved to support the actions
1464   CON_COLUMN, CON_LINE, SET_CONV1, SET_CONV3, SET_SCONV1 and
1465   SET_SCONV3. The support for the actions SET_CONV and SET_SCONV has
1466   been removed.
1467 - The libraries bitsetof.s7i and bitset.s7i have been adjusted, to use
1468   the new actions.
1469 - In con_inf.c the function conWrite() has been improved to change the
1470   cursor position, when the characters '\n', '\r' and '\b' are written.
1471 - In con_win.c the function conCursor() has been improved, to hide the
1472   cursor, when it is called with FALSE. The function conOpen() has been
1473   changed, to set the cursor position to (1, 1) and to hide the cursor.
1474 - The functions conColumn() and conLine() have been added to con_rtl.c,
1475   con_inf.c, con_win.c, con_wat.c and con_emc.c.
1476 - In set_rtl.c the functions setIConv() and setSConv() have been
1477   improved. Now setIConv() raises RANGE_ERROR for negative numbers and
1478   setSConv() raises RANGE_ERROR, when a negative integer would be
1479   returned.
1480 - Documentation has been improved in console.s7i, string.s7i,
1481   con_inf.c, con_win.c
1482 - The debug trace mechanism in analyze.c and dcllib.c has been
1483   improved.
1484 - A call of dlerror() has been added in dll_unx.c.
1485 - In traceutl.c the function prot_list_limited() has been introduced.
1486
1487 20190506:
1488 - The utility program bigfiles.sd7 has been added. Bigfiles is an
1489   utility program to search for big files. This is useful, when the
1490   disk is almost full and files must be removed to get more space.
1491 - The utility program sydir7.sd7 has been improved. Now it supports the
1492   option -n, which assures that no changes are done.
1493 - The program db7.sd7 (Database Inspector) has been improved to write
1494   an error message, when reading the catalog of database tables fails.
1495 - The program chkbitdata.sd7 has been added. This program checks
1496   functions from the bitdata.s7i library.
1497 - In the FAQ the explanation, how Seed7 is compiled, has been improved.
1498 - The description of several conversion functions in the manual has
1499   been improved.
1500 - The function ripemd160 has been added to msgdigest.s7i. This function
1501   computes a message digest with the RIPEMD-160 algorithm.
1502 - The functions toBase58, fromBase58, toBase and fromBase have been
1503   added to encoding.s7i. This functions support Base58 encoding and
1504   similar other encodings with a positional numeric system.
1505 - The functions putBitLsb, putBitsLsb, getBitMsb, getBitsMsb, putBitMsb
1507   and write bits from and to a file.
1508 - The new library leb128.s7i has been added. This library supports the
1509   conversion of integers to and from LEB128 encoding. LEB128 is a
1510   variable-length encoding for integers. It is used e.g. by the DWARF
1511   debug file format and by WebAssembly.
1512 - Tests for the functions leb128ToInt(), uLeb128ToInt(), leb128() and
1513   uLeb128() have been added to chkint.sd7.
1514 - The library make.s7i has been improved to avoid a makefile rule
1515   recursion.
1516 - The function hex2Bytes has been added to bytedata.s7i. This function
1517   converts a string with hexadecimal digits to a string of bytes.
1518 - The function reverse has been added to string.s7i and seed7_05.s7i.
1519 - The function tableNamesCommand has been added to sql_base.s7i.
1520 - Conversion functions have been added to char.s7i.
1521 - In big_rtl.c the function uBigMult has been changed to be faster,
1522   when the size of factor2 is 1.
1523 - In con_inf.c code to copy the environment for Emscripten and node.js
1524   has been added. This code is deactivated, because of a limitation
1525   in the Emscripten implementations of getenv() and setenv().
1526 - The makefiles have been improved to copy the file version.h to a
1527   name that corresponds to the makefile. E.g.: The makefile
1528   mk_linux.mak copies version.h to vers_linux.h. This helps comparing
1529   different version.h files.
1531 - The prototype of the function refCatParse has been changed in
1532   ref_data.c, ref_data.h and ref_act.s7i. The compiler (s7c.sd7) has
1533   been changed to add a cast in the function init_set_constants().
1534   In sql_odbc.c casts have been added. This changes avoid C++
1535   compilation errors.
1536 - Calls of logFunction and logError have been added in con_inf.c,
1537   dll_unx.c and dll_win.c.
1538
1539 20190407:
1540 - The program db7.sd7 (Database Inspector) has been improved to use a
1541   scrollable list of tables instead of radio buttons for the selection
1542   of a table.
1543 - The example program findchar.sd7 has been added. Findchar is an
1544   utility program to search for specific characters in files.
1545 - The new library iobuffer.s7i has been added. This library supports
1546   buffering of files.
1547 - The new library mixarith.s7i has been added. This library supports
1548   mixing of arithmetic operations between numeric types.
1549 - The file type fileInTar has been added to the library tar.s7i. This
1550   file type allows that a specific file from a tar archive can be
1551   opened. The functions open, getc, gets, eof, hasNext, length, seek,
1552   tell, and openFileInTar have been added to support the file type
1553   fileInTar.
1554 - The functions skipClassicComment and getSimpleStringLiteral have been
1555   added to the libraries scanfile.s7i and scanstri.s7i.
1556 - The makefile mk_emccl.mak has been added. This makefile supports
1557   compiling with the emcc C compiler from Emscripten under Linux. The
1559 - The deprecated functions float2Bits and bits2Float have been removed
1560   from bin32.s7i and bin64.s7i. The functions bin32(), bin64() and
1561   float() can be used instead, to convert between float and bits in
1562   IEEE 754 representation.
1563 - In the programs chkbig.sd7, chkovf.sd7, chkset.sd7 and chkstr.sd7
1564   large functions have been split into smaller functions. This avoids
1565   Stack errors with Emscripten.
1566 - Tests for allowed field names and CLOB fields have been added to
1567   chkdb.sd7. The functions create, testFieldNames and testClobField
1568   have been added to chkdb.sd7.
1569 - The primitive actions BIG_PARSE, BST_PARSE, FLT_PARSE and INT_PARSE
1570   have been renamed to BIG_PARSE1, BST_PARSE1, FLT_PARSE1 and
1571   INT_PARSE1 respectively. This actions parse the first argument
1572   instead of the third argument. The libraries bigint.s7i, bstring.s7i,
1573   float.s7i and integer.s7i have been improved to use the new actions.
1574 - In several libraries the 'parse' operator has been changed to call
1575   a function with the name of the type.
1576 - In fil.unx.c the function setupFiles has been improved to correctly
1577   mount the file system root for emscripten and node.js.
1578 - In sql_fire.c, sql_my.c the support for BLOB and CLOB fields has been
1579   improved.
1580 - In sql_oci.c, sql_odbc.c and sql_post.c the function
1581   processStatementStri() has been improved to accept strings enclosed
1582   in single quotes (') and double quotes (").
1583 - The files db_fire.h and sql_fire.c have been changed to define the
1584   database client functions with the calling convention __stdcall.
1585 - The files db_post.h, db_lite.h, sql_post and sql_lite.c have been
1586   changed to define the database client functions with the calling
1587   convention __cdecl.
1588 - The database driver sql_fire.c has been improved:
1589   - The function getClob() has been added. This function is used by
1590     sqlColumnStri() to get a CLOB.
1591   - The function sqlBindStri() has been improved to work for CLOBs
1592     and to raise RANGE_ERROR for BLOBs.
1593   - The function sqlColumnStri() has been improved to work for BLOBs
1594     and CLOBs.
1595   - The function sqlColumnBStri() has been improved to work for BLOBs
1596     and to raise RANGE_ERROR for CLOBs.
1597   - The function sqlStmtColumnName() has been improved to assume that
1598     the name of a column is encoded with UTF-8.
1599 - The database driver sql_my.c has been improved:
1600   - The function processStatementStri() has been improved. In strings
1601     delimited with single quotes (') backslashes (\) are optionally
1602     replaced with double backslashes (\\). Strings delimited with
1603     double quotes (") are converted into strings, that are delimited
1604     with a backtick ().
1605   - The function setupResultColumn() has been improved to distinguish a
1606     BLOB from a CLOB.
1607   - The function sqlColumnStri() has been improved to work for BLOBs
1608     and CLOBs.
1609   - The function sqlColumnBStri() has been improved to work for BLOBs
1610     and to raise RANGE_ERROR for CLOBs.
1611   - The function determineIfBackslashEscapes has been introduced. This
1612     function determines, if a backslash is used as escape character in
1613     string literals. In this case processStatementStri() will double
1614     escaping backslashes in string literals.
1615 - The database driver sql_odbc.c has been improved:
1616   - The management of buffer memory in bind functions has been improved
1617     for the data types SQL_DECIMAL, SQL_NUMERIC, SQL_CHAR, SQL_VARCHAR,
1618     SQL_LONGVARCHAR, SQL_WCHAR, SQL_WVARCHAR, SQL_WLONGVARCHAR,
1619     SQL_BINARY, SQL_VARBINARY and SQL_LONGVARBINARY.
1620 - The database driver sql_post.c has been improved:
1621   - The function setupDll has been improved to open the dll
1622     libeay32.dll, when necessary.
1623   - In the function sqlBindStri() the binding of a field with the type
1624     BYTEAOID (used for BLOB data) has been improved, to work correct,
1625     when the string contains a zero byte ('\0;').
1626   - The function sqlColumnBigRat() has been improved to process fields
1627     with the type FLOAT8OID as double instead of float.
1628 - The program chkccomp.c has been improved. Now the C compiler used to
1629   compile chkccomp.c can be different from the C compiler checked by
1630   chkccomp.c. E.g.: For Emscripten chkccomp.c is compiled with gcc,
1631   but the checked C compiler is emcc.
1632 - In chkccomp.c the function determineFseekFunctions has been improved
1633   to check fseek() and ftell() without access to the local files.
1635   Oracle and Firebird databases has been improved.
1636 - In chkccomp.c code to determine NULL_DEVICE, HAS_CDECL, HAS_STDCALL,
1637   INTPTR_T_DEFINED, PRINTF_ROUNDING, LINE_DIRECTIVE_ACCEPTS_UTF8,
1638   HAS_SETJMP and HAS_SIGSETJMP has been added or improved.
1639 - The file sigutl.c has been improved to work correct, when neither
1640   signal() nor sigaction() are present.
1641 - Log functions have been added or improved in con_emc.c, con_inf.c,
1642   sql_my.c, sql_post.c and timlib.c.
1643 - Experimental code has been added to con_emc.c.
1644
1645 20190303:
1646 - The makefile mk_tcc_l.mak has been added. This makefile supports
1647   compiling with the tcc C compiler under Linux.
1648 - The makefile mk_tcc_w.mak has been added. This makefile is
1649   experimental and supports compiling with the tcc C compiler under
1650   Windows.
1651 - The example program brainf7.sd7 has been added. Brainf7 is a
1652   Brainfuck interpreter.
1653 - The example program hilbert.sd7 has been added. Hilbert displays a
1654   Hilbert curve.
1655 - The example program queen.sd7 has been added. Queen solves the n
1656   queen problem.
1657 - The example program spigotpi.sd7 has been added. Spigotpi writes
1658   digits of PI with a spigot algorithm.
1659 - The new library csv.s7i has been added. This library supports
1660   converting to and from comma-separated values (CSV).
1661 - Several improvements in the Seed7 compiler (s7c) have been done:
1662   - In flt_act.s7i the function to process FLT_ISNAN has been improved
1663     to make sure, that the argument of the isnan() macro never contains
1664     preprocessor directives (e.g. #line directives). Some C compilers
1665     do not allow preprocessor directives in the argument list of a
1666     macro. Many thanks go to Alexander Vlasov for reporting this
1667     problem and for his help to find a solution.
1668   - In comp/str_act.s7i the function optimize_str_cat has been improved
1669     to assign the constant parts of strConcatN() outside of the actual
1670     expression. This might open possibilities to optimize the
1671     expression.
1672   - The function process_forward_declaration in the compiler (s7c) has
1673     been improved to avoid, that a prototype of a forward declared
1674     function, is written twice.
1675   - The function process_dynamic_param_implements has been improved to
1676     generate a switch-statement instead of an if-then-else chain.
1677     Additionally double entries are avoided now.
1678   - The function process_const_func_call has been improved to assign
1679     c_params.temp_assigns to c_expr.temp_assigns instead of
1680     c_expr.temp_decls.
1681   - The function processFuncValue has been improved to define the type
1682     and the function of the actual name parameter only once (with
1683     defineActualFuncParam()). A redefinition could happen when
1684     functions, that call functions with name parameters, are inlined.
1685   - The handling of the option -te (trace exceptions) has been
1686     improved.
1687   - The function process_const_func_declaration() has been improved to
1688     request, that for functions using the result mechanism the result
1689     is returned, when possible, as c_expr.expr_result. This way
1690     process_return_value() does not need to copy this string values.
1691     E.g. When the result of intStrToBuffer(), chrCLitToBuffer(),
1692     chrStrMacro(), strHeadSlice(), chrStrMacro() or strTailSlice() is
1693     used as the result value of a user defined function.
1694   - The function defineFunctype has been added and the function
1695     getAnyParamToTempAssigns has been improved to provide addresses
1696     of plain INTOBJECT, FLOATOBJECT, CHAROBJECT, STRIOBJECT and
1697     BSTRIOBJECT values. In this case the address is taken from a
1698     temporary variable.
1699   - In write_file_head() and init_type_constants() the creation of type
1700     constants has been improved.
1701 - The functions skip() and copyFile() have been added to file.s7i.
1702 - The function makeParentDirs() has been added to osfiles.s7i.
1703 - In cli_cmds.s7i the function doMkdirCmd has been improved to call
1704   the new function makeParentDirs().
1705 - In tar_cmds.s7i the functions tarXtract and tarCreate have been
1706   improved to avoid, that the whole file is read into a string. This
1707   avoids a MEMORY_ERROR, when the file does not fit into a string.
1708 - The function tarXtract has been improved to extract empty regular
1709   files and to create non-existing parent directories (with
1710   makeParentDirs())
1711 - In gzip.s7i the functions openGzipFile(), close() and write() have
1712   been improved, to write the compressed data in blocks with a maximum
1713   size. This avoids a MEMORY_ERROR, when huge files are compressed.
1714 - In gzip.s7i the function openGunzipFile has been changed to have a
1715   file as parameter instead of a string. This way it is not necessary
1716   to read the whole compressed data into a string.
1718 - A variant of the function getAsciiz has been added to bytedata.s7i.
1719 - A variant of the function crc32 has been added to crc32.s7i.
1720 - The program ftp7.sd7 has been improved to support the commands
1721   !ls -l, !dir, !ls, !pwd, !mkdir and !rmdir.
1722 - The function noCtrlChars has been removed from db7.sd7 and sql7.sd7
1724 - The program chkchr.sd7 has been has been improved to check the
1725   functions literal() and c_literal().
1726 - Tests for the function str(), when str() assigned to a variable and
1727   when str() is called via a function, have been added to chkint.sd7.
1728 - Tests for aString[.. pos], aString[pos ..], aString[pos1 .. pos2],
1729   aString[pos len length], when they are called via a function, have
1731 - The example program chkdb.sd7 has been improved to test decimal and
1732   numeric fields with negative values.
1733 - In x509cert.s7i the constant stdCertificate has been improved to
1734   have a new validity (until end of 2021).
1735 - The program chkccomp.c has been improved to determine, if
1736   preprocessor directives are allowed in the argument list of a macro
1737   invocation (DIRECTIVES_IN_MACRO_ARGUMENTS_OK).
1738 - In fil_rtl.c the functions filBigLng() and filLng() have been
1739   improved to determine the file length always with os_fseek and
1740   os_ftell. This guarantees that the correct length is returned, when
1741   data is written to a file and it has not been flushed.
1742 - The function ftelli64Ext() has been added to fil_win.c. This
1743   function is used when fseeki64() is available and ftelli64() is
1744   missing. Either fgetpos() or _telli64() is used to implement
1745   ftelli64Ext().
1746 - Calls of logFunction have been added in ref_data.c and typ_data.c.
1747 - In sql_my.c the function sqlBindDuration() has been improved.
1748 - In sql_odbc.c the function getNumericAsCStri() has been added.
1749 - In sql_odbc.c the function getNumericFloat() has been improved to
1750   convert a SQL_NUMERIC_STRUCT to a double via the decimal
1751   representation.
1752 - In sql_post.c the functions getNumericAsCStri(), getNumericAsStri()
1753   and getNumericAsFloat have been improved.
1754 - The program chkccomp.c has been improved to define the macros
1755   'os_isatty' and 'os_fileno', when the functions isatty() and
1756   fileno() are not available.
1757 - A definition of 'isatty' and 'fileno' has been added to os_decls.h.
1758 - The mechanism to check for stack overflow has been improved. By
1759   default the mechanism is deactivated.
1760
1761 20190126:
1762 - The program db7.sd7 (Database Inspector 7) has been improved to
1763   provide a list of tables and a possibility to view table contents
1764   from this list.
1765 - The program tar7.sd7 and the library tar.s7i have been improved to
1766   support Unicode file names.
1767 - The function setupParameters() in sql_fire.c, sql_lite.c, sql_my.c,
1768   sql_oci.c, sql_odbc.c and sql_post.c has been improved to avoid
1769   calling malloc(0). Depending on the run-time library malloc(0) may
1770   return NULL, which would wrongly trigger a MEMORY_ERROR. The
1771   improvement recognizes this situation and avoids calling malloc(0).
1772   Other places in the database drivers, where malloc(0) could be called
1773   have been fixed also.
1774 - The database driver sql_fire.c has been improved:
1775   - Now the cursor of a prepared statement is closed (with
1776     isc_dsql_free_statement), when a parameter is bound to it.
1777   - The opening of a database now appends the extensions .fdb and .gdb,
1778     when trying to open the database.
1779 - The database driver sql_my.c has been improved:
1780   - The function processEscapesInStatement has been renamed to
1781     processStatementStri. Now it removes comments from the statement
1782     string.
1783   - The local variable 'param' has been introduced in the parameter
1784     binding functions. This improves readability by avoiding many
1785     accesses to the param_array.
1786   - The local variable 'columnData' has been introduced in the column
1787     accessing functions. This improves readability by avoiding many
1788     accesses to the result_array.
1789   - The function sqlColumnFloat has been improved to accept integer
1790     fields with all sizes.
1791 - The database driver sql_oci.c has been improved:
1792   - Now there is a check if all parameters of a prepared statement are
1793     bound. This check takes place when a prepared statement is
1794     executed.
1795   - The function processBindVarsInStatement has been renamed to
1796     processStatementStri. Now it removes comments from the statement
1797     string and determines the number of bind parameters.
1798   - The functions setupParameters and allParametersBound have been
1799     added and the function resizeBindArray has been removed.
1800   - The function getFloat has been improved to convert a SQLT NUMBER
1801     to a double via the decimal representation.
1802   - The bind functions have been improved to check, that a parameter
1803     with the given index exists.
1804   - The bind functions have been improved to allow that the same
1805     parameter can be bound again with a different bind function (e.g.
1806     as integer instead of a bigInteger).
1807   - The function sqlBindStri has been improved to preserve trailing
1808     blanks in a string.
1809   - The local variable 'param' has been introduced in the parameter
1810     binding functions. This improves readability by avoiding many
1811     accesses to the param_array.
1812   - The local variable 'columnData' has been introduced in the column
1813     accessing functions. This improves readability by avoiding many
1814     accesses to the result_array.
1815 - The database driver sql_odbc.c has been improved:
1816   - The maximum number of concurrent activities is determined. If the
1817     number of concurrent activities is limited the function
1818     sqlExecute() fetches all results and stores them in a prefetch
1819     buffer. This way several prepared statements can be used in
1820     parallel even when the ODBC driver does not support concurrent
1821     activities.
1822   - The structure resultDescrRecord has been introduced. It contains
1823     the result properties of a prepared statement column. The structure
1824     resultDataRecord has been reduced to just contain the actual
1825     data buffer and length of a result field.
1826   - The functions freeFetchData, freeFetch, freePrefetched and
1827     processStatementStri have been added. The function
1828     processStatementStri removes comments from the statement string.
1829     This avoids problems with some ODBC drivers.
1830   - The functions bindResultColumn, bindResult, copyNonBlobBuffers,
1831     moveBlobBuffers, copyFetchData, prefetchOne, prefetchAll and
1833   - Now the cursor of a prepared statement is closed (with
1834     SQLFreeStmt), when a parameter is bound to it.
1835   - The function sqlColumnFloat has been improved to accept integer
1836     fields with all sizes.
1837 - The database driver sql_post.c has been improved:
1838   - The function processBindVarsInStatement has been renamed to
1839     processStatementStri. Now it removes comments from the statement
1840     string.
1841   - The local variable 'param' has been introduced in the parameter
1842     binding functions. This improves readability by avoiding many
1843     accesses to the param_array.
1844   - The function sqlColumnFloat has been improved to accept integer
1845     fields with all sizes.
1846 - The example program chkdb.sd7 has been improved. Now it tests several
1847   corner cases with empty databases, empty statements, comments and
1848   literals. The tests with integer fields retrieve the fields now also
1849   as floats.
1850 - Interpreter and compiler have been improved to support the new
1851   actions SQL_DRIVER, STR_FOR_KEY and STR_FOR_VAR_KEY.
1852 - The library forloop.s7i has been improved to use the new actions
1853   STR_FOR_KEY and STR_FOR_VAR_KEY.
1854 - Checks for string for loops have been added to chkstr.sd7.
1855 - The library sql_base.s7i has been improved to support the new
1856   functions driver() and getTableNames(). The function getTableNames
1857   returns a list of user table names.
1858 - The function sqlDriver has been added to sql_rtl.c.
1859
1860 20190107:
1861 - A chapter about the handling of errors in interpreter and run-time
1862   library has been added to the manual.
1863 - The new database driver sql_fire.c has been added. This driver
1864   provides database access functions for Firebird/InterBase.
1865 - The database drivers sql_lite.c, sql_my.c, sql_odbc.c and sql_post.c
1866   have been improved to check that all parameters of a prepared
1867   statement are bound. This check takes place when a prepared statement
1868   is executed.
1869 - The bind functions in sql_lite.c and sql_my.c have been improved to
1870   check, that a parameter with the given index exists.
1871 - The bind functions of sql_my.c and sql_odbc.c have been improved to
1872   allow that the same parameter can be bound again with a different
1873   bind function (e.g. as integer instead of a bigInteger).
1874 - The database driver sql_lite.c has been improved:
1875   - The function sqlBindBigRat has been improved to convert a
1876     bigRational to a double via the decimal representation.
1877   - The functions sqlColumnBigInt and sqlColumnInt have been improved
1878     to accept blob values with a decimal content that ends with ".0".
1879   - The function sqlColumnFloat has been improved to accept integer
1880     values.
1881   - The function sqlExecute has been improved to reset a prepared
1882     statement, when necessary.
1883 - The database driver sql_my.c has been improved:
1884   - Medium and large blobs are supported now.
1885   - The function sqlColumnStri() has been improved to read BLOB data.
1886   - The function processEscapesInStatement() has been introduced. This
1887     function assures that string literals in prepared statements do not
1888     allow backslash escape sequences (e.g. \n or \t). This way a
1889     backslash in a SQL statement has no special meaning (like it is
1890     common practice in all other SQL databases).
1891   - The function sqlExecute() has been improved to call
1892     mysql_stmt_store_result(). This way the complete result set is
1893     buffered on the client. Doing so avoids the "Commands out of sync"
1894     error (e.g. which is triggered (without mysql_stmt_store_result()),
1895     when a new statement is prepared before all data of an old
1896     statement is fetched).
1897   - The function resizeBindArray() has been removed.
1898 - The database driver sql_odbc.c has been improved:
1899   - The function SQLGetTypeInfo is used to determine if the driver
1900     supports the type SQL_WCHAR.
1901   - It is recognized when the function SQLDescribeParam() is missing
1902     and reasonable default values are used instead.
1903   - The function SQLFreeStmt() is used now without the precondition
1904     fetchOkay or fetchFinished.
1905   - The function setupParameterColumn has been introduced. This
1906     function allocates memory for parameter buffers.
1907   - One call of SQLDescribeCol() is used to determine the properties of
1908     result columns instead of many calls of SQLColAttribute().
1909   - Blob result data is now recognized by data type (SQL_LONGVARCHAR,
1910     SQL_WLONGVARCHAR or SQL_LONGVARBINARY) instead of data length.
1911   - The bind functions have been improved to use a switch depending
1912     on the data type.
1913   - Calls of SQLBindParameter() have been changed to use parameters
1914     determined with SQLDescribeParam().
1915   - At several places switch statements depending on the c_type are
1916     used.
1917   - The function sqlColumnDuration has been improved to accept a
1918     duration in a VARCHAR field.
1919   - Experimental code to search for an ODBC driver has been added (but
1920     it is deactivated for now).
1921 - The database driver sql_post.c has been improved:
1922   - The function setupParameterColumn() has been introduced. This
1923     function allocates memory for parameter buffers. The buffers are
1924     part of the bindDataRecord.
1925   - The conversion of the internal NUMERIC representation to integer,
1926     float, bigInteger and bigRational values has been improved. Now
1927     sqlColumnInt() and sqlColumnFloat() can also read NUMERIC data.
1928   - The functions getNumericAsCStri(), getNumericAsStri(),
1929     getNumericAsInt(), getNumericAsBigInt(), getNumericAsBigRat()
1930     and getNumericAsFloat() have been added.
1931   - The function sqlColumnStri() has been improved to read BLOB data.
1932   - The memory management has been improved to recognize out of memory
1933     situations reliable.
1934   - The handling of exceptions has been improved.
1935 - The function literal() has been added to bigint.s7i, bigrat.s7i,
1936   boolean.s7i, bstring.s7i, duration.s7i and time.s7i.
1937 - The function integer (it converts a bigInteger to an integer) has
1939 - The function string (it converts a bstring to a string) has
1941 - The example program chkdb.sd7 has been improved to test the
1942   functionality of a database with much more detail. Chkdb.sd7 now
1943   supports parameters to specify the database to be checked.
1944 - The programs sql7.sd7 and db7.sd7 has been improved to support
1945   Firebird/Interbase databases.
1946 - The tests of shift operators have been improved in chkbig.sd7.
1947 - The program chkccomp.c has been improved to determine the settings
1948   for directory access and for the database driver sql_fire.c.
1949 - An #if instruction has been added to dir_win.c, soc_none.c and
1950   soc_rtl.c, such that the object file can always be linked.
1951 - The function stri_to_cstri8_buf() has been changed to work without
1952   err_info parameter.
1953 - Experimental code, to avoid the gmp error "overflow in mpz type" for
1954   shift operations, has been added to big_gmp.c.
1955 - In big_rtl.c, big_gmp.c and big_drv.h the functions bigToInt16(),
1956   bigToInt32() and bigToInt64() have been changed to have the
1958 - The function setupBig() has been added to big_rtl.c and big_gmp.c.
1959   Additionally interpreter and compiler have been improved to call
1960   setupBig().
1961 - Documentation comments have been improved in integer.s7i,
1962   sql_base.s7i, big_gmp.c, big_rtl.c, sql_rtl.c, intlib.c, int_rtl.c
1963   and striutl.c
1964 - The file soc_dos.c has been renamed to soc_none.c.
1965
1966 20181125:
1967 - In sql_odbc.c the handling of blobs has been improved. Selects with
1968   normal and blob fields work now independent from the order of fields.
1969   The functions resizeBindArray() and getClob() have been removed. The
1970   functions setupParameters(), getBlob(), getData() and fetchBlobs()
1971   have been added and the function getWCLob() has been improved.
1972 - In sql_odbc.c the handling of time values has been improved to
1973   support the sql type datetime2 and times with fractions of a second.
1974   The functions sqlBindTime() and sqlColumnTime() have been improved.
1975 - In sql_odbc.c the binding of bigRational and null values has been
1976   improved. The functions sqlBindBigRat() and sqlBindNull() have been
1977   improved.
1978 - In the library duration.s7i the function str() and the operator
1979   'parse' have been improved to use P[nY][nM][nD][T[nH][nM][n[.n]S]] as
1980   format for the string representation of a duration.
1981 - In dir_rtl.c the function dirRead() has been improved to use the
1982   functions conv_from_os_stri() and os_stri_strlen() instead of
1983   os_stri_to_stri(). This reduces the runtime of dirRead() by 2%
1984   (measured with gcc and valgrind, when reading 1532 directories).
1985 - In the compiler (in comp/const.s7i) the actions BST_PARSE, FLT_PARSE
1986   and INT_PARSE have been added to the list of special actions.
1987 - The function duration(), which converts a string to a duration value,
1988   has been added to duration.s7i.
1989 - The function time(), which converts a string to a time value, has
1991   been improved to support negative years.
1992 - The function bstring(), which converts a string to a bstring value,
1993   has been added to bstring.s7i.
1994 - The function rand(), which computes a pseudo-random time in a given
1995   range, has been added to time.s7i.
1996 - Tests for the function float(), which converts a string to a float
1997   value, have been added to chkflt.sd7.
1998 - The program chkccomp.c has been improved to determine INT64_SIZE
1999   (the size of __int64), HAS_LLABS, HAS_ABS64, STRINGIFY_WORKS,
2000   HAS_GMTIME_R and HAS_GMTIME_S.
2002   fil_rtl.c, fil_unx.c, fil_win.c, soclib.c and soc_rtl.c.
2003 - In heaputl.c the function growStri() has been improved to have a
2004   smarter behavior in the case when malloc() returns NULL.
2005 - The functions sqlBindDuration and sqlColumnDuration have been
2006   improved in sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and
2007   sql_post.c.
2008 - The parameter time_zone has been added to the function sqlBindTime()
2009   in sqllib.c, sql_rtl.h, sql_rtl.c, sql_drv.h, sql_lite.c, sql_my.c,
2010   sql_oci.c, sql_odbc.c, sql_post.c and comp/sql_act.s7i.
2011 - A function to bind a duration value to a prepared statement has been
2012   added to the library sql_base.s7i.
2013 - The example program chkdb.sd7 has been improved to check inserting
2014   and selecting time and duration values into and from a database.
2015 - In sql_lite.c the function sqlColumnTime() has been improved.
2016 - In sql_post.c the functions sqlBindTime() and sqlColumnTime() have
2017   been improved.
2018 - The functions stringify() and conv_wstri_buf_to_cstri() have been
2020 - In tim_rtl.c the functions mkutc() and unchecked_mkutc() have been
2021   improved to work with negative years.
2022 - The function timUtcFromTimestamp() has been added to tim_rtl.c.
2023
2024 20181014:
2025 - Simple function profiling has been added to the compiler. Profiling
2026   is enabled, when programs are compiled with the option -p. When
2027   programs with profiling are executed they write profiling information
2028   to the file profile_out, when they terminate.
2029 - An explanation of the compiler option -p (simple profiling) has been
2031 - The function str_dd_mm_yy has been added to the library time.s7i.
2032 - In chkflt.sd7 the tests for the operator ** (with an exponent of NaN)
2033   have been improved.
2034 - Documentation comments have been improved in integer.s7i, intlib.c,
2035   int_rtl.c, tim_unx.c and tim_win.c.
2036 - In hsh_rtl.c the function hshIdxEnterDefault has been simplified to
2037   use fewer parameters. Usages of hshIdxEnterDefault in gkb_win.c,
2038   gkb_x11.c, pol_sel.c, pol_unx.c, ref_data.c and typ_data.c have been
2039   adjusted to the reduced number of parameters.
2040 - In int_rtl.c the performance of the function intParse has been
2041   improved (when two's complement integers are used).
2042 - In pcs_unx.c the function pcsStart has been improved to work correct
2043   when stdin, stdout or stderr are not redirected.
2044 - In flt_rtl.c the function fltPow() has been improved to work correct,
2045   when the base is zero and the exponent is NaN.
2046 - The program chkccomp.c has been improved to check the function pow()
2047   with more test cases.
2048 - In striutl.c the function heapAllocOsStri() has been refactored to
2049   return the allocated string instead of using a pointer to a string
2050   variable. This opens the possibility to optimize usages of the macro
2051   os_stri_alloc().
2052 - The definition of WITH_SQL has been removed from the makefiles and
2054 - The file config.h has been changed to define the macros WITH_FLOAT,
2055   WITH_REFERENCE, WITH_DRAW, WITH_STATISTIC, WITH_COMPILATION_INFO and
2056   WITH_TYPE_CHECK always.
2057 - The function timMicroSec in tim_unx.c and tim_win.c has been changed
2058   to be useable for the simple profiling.
2059
2060 20180821:
2061 - In fil_dos.c in the function setupFiles the handling of ctrl-c has
2062   been improved such that ctrl-c is sent immediate (without the need to
2063   press return afterwards). Additionally redirected stdin, stdout and
2064   stderr files are switched to binary mode now.
2065 - In the compiler (in comp/const.s7i) the actions BIN_XOR, ENU_ICONV2,
2066   ENU_ORD2, INT_ICONV1 and INT_ICONV3 have been added to the list of
2067   special actions.
2068 - The batch files bin/call_gcc.bat and bin/call_ar.bat have been
2069   improved to set environment variables with the command 'set'. This
2070   is necessary to execute them successfully under Wine.
2071 - The description of log, log10 and log2 in the manual has been
2072   improved.
2073 - In flt_rtl.c the functions fltLog, fltLog10 and fltLog2 have been
2074   added. This functions are based on the original functions log(),
2075   log10() and log2() and work according to IEEE 754.
2076 - The configuration values LOG_FUNCTION_OKAY, LOG10_FUNCTION_OKAY and
2077   LOG2_FUNCTION_OKAY have been added to cc_conf.s7i.
2078 - The configuration value HAS_LOG2 has been removed from cc_conf.s7i.
2079 - The compiler (s7c) has been improved to use the functions fltLog,
2080   fltLog10 and fltLog2.
2081 - In comp/inline.s7i the functions push_inline_func_param,
2082   pop_inline_func_param, push_inline_proc_param and
2083   pop_inline_proc_param have been improved to support inline functions
2084   with 'attr' parameters.
2085 - The example program diff7.sd7 has been improved.
2086 - Documentation comments have been improved in math.s7i and tar.s7i.
2087 - In chkflt.sd7 the tests for the operators 'parse' and 'sci' and for
2088   the function str() have been improved.
2089 - The program chkccomp.c has been improved to define the macros
2090   POW_OF_NEGATIVE_OKAY, LOG_OF_NAN_OKAY, LOG_OF_ZERO_OKAY,
2091   LOG_OF_NEGATIVE_OKAY, LOG10_OF_NAN_OKAY, LOG10_OF_ZERO_OKAY,
2092   LOG10_OF_NEGATIVE_OKAY, LOG2_OF_NAN_OKAY, LOG2_OF_ZERO_OKAY,
2093   LOG2_OF_NEGATIVE_OKAY, MEMCMP_RETURNS_SIGNUM and
2094   WMEMCMP_RETURNS_SIGNUM.
2095 - In chkccomp.c the function determineFseekFunctions has been improved
2096   to make tests that actually use fseek() and ftell().
2097 - Calls of logFunction have been added in cmd_rtl.c, str_rtl.c,
2098   strlib.c and striutl.c.
2099 - In bstlib.c the function bst_cmp() has been improved to be based on
2100   bstCmp().
2101 - The functions strCompare(), str_cmp() and bstCmp() have been
2102   improved to use different code depending on MEMCMP_RETURNS_SIGNUM
2103   and WMEMCMP_RETURNS_SIGNUM.
2104 - In s7c.sd7 the function canTakeAddress has been improved to return
2105   FALSE for a CONSTENUMOBJECT.
2106
2107 20180708:
2108 - The operating system DOS is supported (with DJGPP) again. The tests
2109   have been done with Dosbox and Dosemu.
2110 - In the compiler (in comp/const.s7i) the actions BIN_AND and BIN_OR
2111   have been added to the list of special actions. This way the
2112   functions rotLeft and rotRight (from bin32.s7i and bin64.s7i) are
2113   implemented as inline functions. This reduces the runtime of sha256
2114   (from msgdigest.s7i) by 44% (measured with gcc and valgrind, when
2115   reading data from 200 https connections). The cpu-time of the whole
2116   test program was reduced by 17%.
2117 - In msgdigest.s7i the functions md4, md5, sha1, sha224 and sha256
2118   have been improved to use an index for words instead of an index
2119   for chunks. This simplifies the conversion to 32-bit words.
2120 - In comp/action.s7i the function process_action has been improved to
2121   use a case-statement instead of multiple if-statements. This reduces
2122   the runtime of process_action by 39% (measured with gcc and valgrind,
2123   when the compiler compiles itself). The runtime of the compiler is
2124   reduced by 2.5%.
2125 - The contents of the libraries enable_input.s7i and enable_output.s7i
2126   have been moved to the library enable_io.s7i.
2127 - The library comp/expr_util.s7i has been renamed to comp/expr_utl.s7i.
2128 - The program chkccomp.c has been improved to search 64-bit functions
2129   for fseek() and ftell(). The findings are stored in version.h with
2130   the macros _FILE_OFFSET_BITS, OS_OFF_T_SIZE, os_off_t, os_fseek and
2131   os_ftell.
2132 - In chkflt.sd7 the tests for float shift and logarithm of 0.0 have
2133   been improved.
2134 - The file src/read_me.txt has been updated.
2135 - In chkccomp.c the functions isNullDevice, initializeNullDevice,
2136   determineStatFunctions, determineOsFunctions and numericProperties
2137   have been improved.
2138 - The program chkccomp.c has been improved to work for PostgreSQL
2139   versions 9.6, 10 and 11.
2140 - In cmd_rtl.c the function getOsCwd has been improved to assure that
2141   PATH_DELIMITER is used as path delimiter.
2142 - In flt_rtl.c the functions fltDigits and fltSci have been improved,
2143   to work correct, when printf() with format %f and %e and a huge
2144   precision crashes. Additionally fltSci() has been improved to work
2145   correct, when the number of exponent digits written with format %f is
2146   not fixed.
2147 - In con_wat.c the functions kbdShut and conWrite have been improved
2148   and the functions term_descr_equal, tcset_term_descr, kbd_init,
2149   doWriteConsole and doCPuts have been added.
2150 - The functions handleIntSignal, readCharChkCtrlC and filPipe have been
2152 - The function drwConvPointList has been added to drw_dos.c.
2153 - The definitions of volumeListType, IS_VOLUME_LIST and
2154   openVolumeList() have been moved from dir_win.h to the new file
2155   vol_drv.h
2156 - In traceutl.c the function prot_cstri has been improved to optionally
2157   write the string via conWrite.
2158 - The functions striCharsAsUnquotedCStri, isShortFileName, findDot,
2159   toShortFileName, copyFileName and mapLongFileNamesToShort have been
2160   added to striutl.c. The function mapLongFileNamesToShort can be used
2161   to convert a path with long file names to a path with 8.3 file names.
2162 - The program setwpath.c has been improved to set the search path of
2163   the current user, when setting the path for all users fails.
2164 - The program sudo.c has been improved to execute the command without
2165   privileges, when executing the command as administrator fails.
2166 - The functions gets (in tls.s7i), doGetsFromTerminal (in fil_rtl.c),
2167   ut8Gets (in ut8_rtl.c) and socGets (in soc_rtl.c) have been improved
2168   to return an empty string immediately, when the requested length is
2169   zero.
2170 - Calls of logFunction have been added in fil_rtl.c, prclib.c and
2171   striutl.c.
2172 - Calls of logError have been added in infile.c.
2173 - The files dll_dos.c, pcs_dos.c and vol_drv.h have been added.
2174 - Definitions of _FILE_OFFSET_BITS, os_off_t, os_fseek and os_ftell
2175   have been removed from the makefiles.
2176 - The makefiles mk_djgpp.mak and mk_djgp2.mak have been improved, such
2177   that DOS (with DJGPP) is supported again.
2178 - Documentation comments have been improved in sql_base.s7i, cipher.s7i
2179   and sql_rtl.c.
2180
2181 20180601:
2182 - The library tls.s7i has been improved to support the server_name
2183   extension and to process handshake messages, that extend over several
2184   tls message records. Additionally TLS version 1.2 is used now.
2185 - The library x509cert.s7i has been improved to accept a validity with
2186   times in GeneralizedTime data elements (additionally to times in
2187   UTCTime data elements).
2188 - The library browser.s7i has been improved to support calling Safari
2189   under Mac OS X.
2190 - Tests for the functions environment(), getenv() and setenv() have
2192 - A test that checks the sorting of an array of strings has been added
2193   to chkstr.sd7. This checks the compare() function for strings.
2194 - The compiler s7c has been improved to create better code for the
2195   option -tf (trace functions). Now the trace functions are added after
2196   the declarations (such that older C compilers will accept this also).
2197 - In chkflt.sd7 tests for NaN have been grouped together.
2198 - In chkovf.sd7 tests for the binomial coefficient have been split into
2199   groups.
2200 - The program chkccomp.c has been improved to define the macros
2201   LIMITED_CSTRI_LITERAL_LEN, LIMITED_ARRAY_LITERAL_LEN,
2202   DECLARE_OS_ENVIRON, USE_GET_ENVIRONMENT, INITIALIZE_OS_ENVIRON,
2203   DEFINE_WGETENV, DEFINE_WSETENV, os_environ, os_getenv, os_setenv,
2204   os_putenv, DELETE_PUTENV_STRING, DEFINE_WSTATI64_EXT,
2205   DEFINE_STRUCT_STATI64_EXT, DEFINE_FSTATI64_EXT, os_lstat, os_stat,
2206   os_fstat, os_stat_struct, os_fstat_struct, HAS_SELECT and HAS_MMAP.
2207 - In int_rtl.c the macro DECIMAL_DIGITS has been improved to work with
2208   unsigned numbers.
2209 - In str_rtl.c the function strCmpGeneric() has been changed back to
2210   the old behaviour. Now strCmpGeneric() and strCompare() have again
2211   the same behaviour. It has turned out that sorting an array of
2212   strings worked wrong, when the program was compiled.
2213 - In pcs_win.c the function prepareCommandLine has been improved and
2214   the function copyQuotedPart has been added. Now the command line
2215   created for CreateProcessW() has fewer quoted parameters. Now
2216   parameters that contain a space or a quotation (") or a control
2217   character or a character beyond ASCII are quoted. All other parameters
2218   are not quoted.
2219 - Definitions of USE_MMAP, os_environ, os_fstat, DEFINE_WSTATI64_EXT,
2220   os_lstat, os_stat, os_stat_orig, os_stat_struct, os_fstat_struct,
2221   DEFINE_WSETENV, os_setenv, os_putenv and USE_DIRENT have been removed
2222   from the makefiles.
2223 - In several files usages of USE_MMAP have been replaced by usages of
2224   HAS_MMAP.
2225 - The file read_me.txt has been updated.
2226 - In chkccomp.c the functions checkForLimitedArrayLiteralLength() and
2227   determineStatFunctions() have been added and the functions
2228   determineEnvironDefines() and determineBigIntDefines() have been
2229   improved. Now the test for the GMP library enforces static linking.
2230 - The macros DEFINE_MATHERR_FUNCTION and DEFINE__MATHERR_FUNCTION have
2231   been improved to define if matherr() or _matherr() should be defined.
2232 - Log functions have been improved in big_gmp.c, big_rtl.c and
2233   int_rtl.c.
2234
2235 20180513:
2236 - In the manual descriptions of the binomial coefficient and of several
2237   conversion functions have been improved.
2238 - The bas7.sd7 (basic interpreter) example program has been improved to
2239   use case statements with strings.
2240 - The operator &:= has been added to the libraries bitsetof.s7i and
2241   bitset.s7i.
2242 - The function rand() has been added to the library hashsetof.s7i. This
2243   function returns a random element from a hash set.
2244 - The compiler (s7c) has been improved to generate code that uses
2245   memcpy or memmove to copy and create arrays of simple value types
2246   (e.g. array integer). The destruction of arrays of simple value types
2247   has also been simplified.
2248 - The compiler has been improved to optimize the action SET_RAND.
2249 - The compiler optimizations for the actions SET_DIFF, SET_UNION and
2250   SET_UNION_ASSIGN has been improved.
2251 - In the compiler (in comp/const.s7i) the actions BLN_ICONV1,
2252   BLN_ICONV3, CHR_ICONV3 and SET_RAND have been added to the list of
2253   special actions. The compiler implements functions, which just call
2254   one of the special actions as inline functions.
2255 - Interpreter and compiler have been improved to support the actions
2256   HSH_RAND_KEY and SET_INTERSECT_ASSIGN.
2257 - Tests for the functions card() and rand() for the type set of string
2258   have been added to chkset.sd7.
2259 - Tests for intersection assignments ( &:= ) have been added to
2260   chkset.sd7.
2261 - In s7c.sd7 the code to call C compiler and linker has been
2262   refactored.
2263 - The compiler has been improved (in comp/prc_act.s7i) to use the
2264   function hshIdxDefault0() instead of hshIdxWithDefault() for case
2265   statements with hashsets.
2266 - The code generation of the compiler has been improved to trigger the
2267   signal SIGFPE with a call of triggerSigfpe().
2268 - The compiler has been improved to insert diagnostic line information
2269   (e.g.: #line 64 "logfile.s7i") into code for the actions ARR_CPY,
2270   BLN_AND, BLN_OR, ITF_CPY, PRC_IF, PRC_IF_ELSIF, PRC_IF_NOOP
2271 - The compiler has been improved to insert diagnostic line information
2272   for inlined functions.
2273 - The configuration values in cc_conf.s7i have been improved.
2274   SWITCH_WORKS_FOR_INT64TYPE, CC_OPT_OPTIMIZE_1, CC_OPT_OPTIMIZE_2 and
2275   CC_OPT_OPTIMIZE_3 have been added. SYSTEM_DB_LIBS has been renamed
2276   to ADDITIONAL_SYSTEM_LIBS. HAS_SIGACTION, SIGNAL_RESETS_HANDLER and
2277   DO_SIGFPE_WITH_DIV_BY_ZERO have been removed.
2278 - The program chkccomp.c has been improved. Now it determines the name
2279   of the NULL device (/dev/null or NUL:), the system socket library
2280   (unix sockets or winsocket), the method to read directories, the
2281   bigInteger implementation used (big_rtl.c or big_gmp.c) and the
2282   support for switch statements with 64-bit values.
2284   integer.s7i, bitsetof.s7i, bitset.s7i, hashsetof.s7i, cc_conf.s7i,
2285   fil_rtl.c, dir_drv.h, cmd_rtl.c, set_rtl.c, str_rtl.c and striutl.c.
2286 - In set_rtl.c the function setIntersect() has been improved to create
2287   a smaller intersection result, if possible.
2288 - In set_rtl.c the function setIntersectAssign has been added.
2289 - In setlib.c the function set_intersect_assign has been added.
2290 - In hsh_rtl.c the functions get_helem_elem, get_hash_elem, hshRand
2291   and hshIdxDefault0 have been added.
2292 - In hshlib.c the functions get_helem_elem, get_hash_elem and
2294 - In gkb_x11.c and gkb_win.c the function find_window() has been
2295   improved to use hshIdxDefault0() instead of hshIdxWithDefault().
2296 - In big_gmp.c the function bigDivRem has been improved to initialize
2297   the remainder.
2298 - In str_rtl.c and strlib.c the function strelem_memcmp has been
2299   renamed to memcmp_strelem.
2300 - In str_rtl.c the function strCmpGeneric has been changed to avoid
2301   calls of memcmp_strelem(), when the string sizes differ. This
2302   differs from the behaviour of strCompare, but the difference is not
2303   important, because strCmpGeneric() is only used for string
2304   comparisons of hash keys (in compiled programs).
2305 - In striutl.c the function conv_to_cstri has been rewritten to return
2306   the C string, when the function succeeds, and to work without the
2307   parameter err_info.
2308 - In striutl.c the function stri_to_bstriw has been rewritten to use
2309   an err_info parameter.
2310 - In striutl.c the functions with loop unrolling inspired by Duff's
2311   device have been rewritten.
2312 - In striutl.c the loops in conv_to_cstri, stri_to_cstri and
2313   conv_to_os_stri have been optimized.
2314 - The macro castIntTypeForSwitch has been introduced to support C
2315   compilers, that do not support switch statements with 64-bit values.
2316 - Definitions of NULL_DEVICE, USE_GETADDRINFO, USE_WINSOCK and
2317   BIGINT_LIB_DEFINE have been removed from the makefiles.
2318
2319 20180401:
2320 - The new library logfile.s7i has been added. It defines the interface
2321   logFile. A logFile works like a normal file unless the log file
2322   has the value STD_NULL. When a logFile has the value STD_NULL string
2323   expressions written to the logFile are not evaluated. This reduces
2324   the overhead, when logging is turned off.
2325 - The bas7.sd7 (basic interpreter) example program has been improved.
2326   The logging is now done via the new logFile type. This improves the
2327   performance, when no logging is done. Several DATA statements in one
2328   line are processed correctly now. Support for IF GOSUB and DISPLAY
2329   statements and for the function COMMAND$has been added. 2330 - Tests of nested bigInteger for loops have been added to chkbig.sd7. 2331 - A test with the assignment of a hash variable to itself have been 2332 added to chkhsh.sd7. 2333 - Tests of the replace function have been added to chkstr.sd7. 2334 - In striutl.c the functions conv_from_os_stri, cstri8_to_stri and 2335 cstri8_buf_to_stri have been improved. Now they call realloc() 2336 only, when the size has changed. This improves the performance of 2337 conv_from_os_stri by 32% (measured with gcc and valgrind, when 2338 reading a directory). 2339 - In str_rtl.c the function strUtf8ToStri has been improved to call 2340 realloc() only, when the size has changed. 2341 - In cmd_rtl.c the functions add_stri_to_array and 2342 complete_stri_array have been renamed to addStriToRtlArray and 2343 completeRtlStriArray respectively. The renamed functions have also 2344 been improved to work with a simpler parameter list. Together with 2345 the improvement of conv_from_os_stri this improves the performance 2346 of cmdLs by 14% (measured with gcc and valgrind, when reading a 2347 directory). 2348 - In cmdlib.c the function cmd_ls has been rewritten to be based on 2349 cmdLs. The functions cmp_mem and read_dir have been removed. 2350 - In cmdlib.c the main loop in the function toArrayType has been 2351 optimized for performance. 2352 - In str_rtl.c the function add_stri_to_array has been renamed to 2353 addCopiedStriToRtlArray and the function completeRtlStriArray has 2354 been introduced. The code of addCopiedStriToRtlArray has also been 2355 improved to work with a simpler parameter list. 2356 - In strlib.c the function add_stri_to_array has been renamed to 2357 addCopiedStriToArray and the functions freeStriArray and 2358 completeStriArray have been introduced. The code of 2359 addCopiedStriToArray has also been improved to work with a simpler 2360 parameter list. 2361 - The compiler has been improved to optimize the action HSH_CONTAINS, 2362 when the hash table is constant and contains one element. 2363 - In the compiler (in comp/const.s7i) the actions BLN_ORD, CHR_ICONV1, 2364 CHR_ORD and INT_ODD have been added to the list of special actions. 2365 The compiler implements functions, which just call one of the 2366 special actions as inline functions. This allows optimizations for 2367 the boolean and char random number generator. 2368 - The compiler (s7c) has been improved (in comp/destr.s7i) to define 2369 interface destructors, which take all possible implementation 2370 types into account. Additionally a switch statement is used instead 2371 of an if-then-else chain. Double entries are also avoided now. 2372 - The function strChRepl has been added to str_rtl.c. 2373 - The compiler has been improved to use strChRepl instead of strRepl, 2374 to optimize split operations. 2375 - Unnecessary function parameters have been removed in several 2376 include files of the compiler. 2377 - In flt_rtl.c the function doubleToCharBuffer has been improved to 2378 determine the integer value of the exponent without calling 2379 strtol(). 2380 - The function freeRtlStriArray has been added to arr_rtl.c. 2381 - Several #define flags in pol_sel.c have been improved. 2382 - The macro CSTRI_LITERAL_TO_STRI has been defined in striutl.h and 2383 used in analyze.c, arr_rtl.c, cmd_rtl.c, cmd_unx.c, infile.c, 2384 pcs_unx.c and pcs_win.c. 2385 - Calls of logError have been added to functions in cmd_rtl.c, 2386 con_inf.c, prclib.c, soc_rtl.c, tim_dos.c, tim_rtl.c, tim_unx.c and 2387 tim_win.c. 2388 - Documentation comments have been added or improved in cmdlib.c, 2389 int_rtl.c and tim_rtl.c. 2390 2391 20180304: 2392 - In fil_rtl.c and ut8_rlt.c the functions filLineRead, filWordRead, 2393 ut8LineRead and ut8WordRead have been improved to use 2394 getc_unlocked() instead of getc(). This way the performance of the 2395 functions has been improved by a factor of 2 (filLineRead has been 2396 measured with gcc and valgrind). 2397 - In listutl.c the performance of the function copy_list has been 2398 improved by 15% (measured with gcc and valgrind). 2399 - In getf.s7i the performance of the function readf has been improved 2400 by a factor of 4 (measured with gcc and valgrind). 2401 - The functions free_helem and free_hash in hshlib.c have been 2402 improved to stop searching for helems as soon as the last helem 2403 has been freed. This improves the performance of free_hash by 36% 2404 (measured with gcc and valgrind). 2405 - Code to avoid an error with the assignment of a hash variable to 2406 itself (e.g.: aHash := aHash;) has been added to hshlib.c and 2407 hsh_rtl.c. 2408 - In fil_rtl.c the function read_and_alloc_stri and filGets have been 2409 improved to have less usages of err_info and num_of_chars_read. 2410 - In soc_rtl.c the function receive_and_alloc_stri has been improved 2411 to have less usages of err_info and better logError messages. 2412 - In hsh_rtl.c and hshlib.c the function create_hash has been 2413 improved to use memset to initialize empty hash tables. 2414 - The functions bstCmp, genericCmp, ptrCmp, rflCmp and typCmp have 2415 been improved to use a result variable named signumValue. 2416 - Interpreter and compiler have been improved to support the actions 2417 ACT_ICONV1, ACT_ICONV3, INT_ICONV1, INT_ICONV3 and REF_HSHLENGTH. 2418 - The libraries integer.s7i, bin32.s7i, bin64.s7i, category.s7i and 2419 graph.s7i have been improved to use the new primitive actions. 2420 - The function boolean(), which converts a string to a boolean value, 2421 has been added to boolean.s7i. 2422 - The function char(), which converts a string to a char value, has 2423 been added to char.s7i. 2424 - The function float(), which converts a string to a float value, has 2425 been added to float.s7i. 2426 - The compiler has been improved to support the actions ACT_GEN and 2427 TYP_VARFUNC. 2428 - The compiler now uses the function process_call_by_name_expr to 2429 create code for loop conditions, loop bodies and other call by name 2430 parameters. 2431 - The functions process_match and process_inline_param have been 2432 added to the compiler. 2433 - The compiler has been improved to implement functions, which just 2434 call one of the special actions HSH_CONTAINS, HSH_EXCL, HSH_INCL, 2435 HSH_KEYS, SET_BASELIT, SET_CONV, SET_ELEM, SET_EXCL, SET_INCL, 2436 SET_NOT_ELEM, as inline functions. This allows optimizations for 2437 the types set of char and set of string. 2438 - The compiler has been improved to optimize the action HSH_CONTAINS, 2439 when the hash table is constant. 2440 - The compiler optimizations for the actions SET_ELEM and 2441 SET_NOT_ELEM have been improved. 2442 - A test, that checks for-loops over hash tables, has been added to 2443 chkhsh.sd7. 2444 - Set membership tests for char and string have been added to 2445 chkset.sd7. 2446 - Functions to handle inline parameters have been moved from s7c.sd7 2447 to the new file comp/inline.s7i. 2448 - The program chkccomp.c has been improved to determine the presence 2449 of the functions flockfile(), funlockfile() and getc_unlocked(). 2450 - The function match_object3 has been added to match.c. This function 2451 assures that BLOCKOBJECT and ACTOBJECT objects are always preceded 2452 by a MATCHOBJECT. 2453 - The action RFL_SETVALUE has been ranamed to RFL_SET_VALUE. 2454 - Several C run-time library functions (in *lib.c files) have been 2455 renamed such that action name and function name correspond to each 2456 other. 2457 2458 20180107: 2459 - Interpreter and compiler have been improved to allow support 2460 for case statements with hashsets in the when parts. This allows 2461 e.g. case statements with string, bigInteger, type and other 2462 expressions. 2463 - Several discrepancies between s7 and s7c have been fixed. Many 2464 thanks go to "tipd bmp" who sent a example programs to show the 2465 discrepancies. Thanks also for finding a bug in the manual. 2466 - The following type conversion functions from integer have been 2467 introduced: bigInteger(), bigRational(), bitset(), boolean(), 2468 char(), float(), rational() and complex(). This fits to the 2469 existing conversion functions bin32() and bin64(). 2470 - The files bigrat.s7i, filesys.s7i, int_act.s7i, s7c.sd7, chkdb.sd7, 2471 dnafight.sd7, printpi1.sd7, printpi2.sd7 and savehd7.sd7 have been 2472 adjusted to use bigInteger() instead of the conv operator to 2473 convert an integer to a bigInteger. 2474 - The function bigRational, which converts a string to a bigRational 2475 number, has been added to bigrat.s7i. 2476 - The function rational, which converts a string to a rational 2477 number, has been added to rational.s7i. 2478 - In rational.s7i the operator 'parse' has been improved to convert 2479 a string with a decimal number to a rational number. 2480 - The functions float2Bits and bits2Float in bin32.s7i and bin64.s7i 2481 are deprecated and will be removed in a future version. The 2482 functions bin32(), bin64() and float() can be used instead to 2483 convert between float and bits in IEEE 754 representation. 2484 - The programs bas7.sd7 and chkbin.sd7 have been changed to use the 2485 functions bin32(), bin64() and float() instead of float2Bits and 2486 bits2Float. 2487 - Definitions of the operators |:= and &:= have been added to 2488 hashsetof.s7i. 2489 - The library seed7_05.s7i has been improved to support case 2490 statements which consist just of an otherwise part. 2491 - The program chkprc.sd7 has been improved to check integer and char 2492 case statements with otherwise part. 2493 - The program chkprc.sd7 has been improved to check string, 2494 bigInteger and float case statements with and without otherwise 2495 part. 2496 - The program chkbig.sd7 has been improved to check the bigInteger() 2497 conversion function. 2498 - The program chkflt.sd7 has been improved to check the float() 2499 conversion function. 2500 - Interpreter and compiler have been improved to support the actions 2501 BIG_ICONV1, BIG_ICONV3, BLN_ICONV1, BLN_ICONV3, CHR_ICONV1, 2502 CHR_ICONV3, FLT_ICONV1, FLT_ICONV3, SET_ICONV1, SET_ICONV3 and 2503 REF_ALLOC_VAR. 2504 - The handling of CONSTENUMOBJECT and VARENUMOBJECT objects in 2505 s7c.sd7 has been improved. 2506 - The functions initCaseLabelsOfWhen, initCaseLabelsOfCase and 2507 initCaseLabels have been added to s7c.sd7. 2508 - In biglib.c the function big_div_rem has been improved to generate 2509 quotient and remainder as variable elements. 2510 - The function getConstant has been added to comp/const.s7i. 2511 - The functions getGenericValueOfVariableObject and 2512 getParameterAsVariable have been added to comp/expr_util.s7i. 2513 - The logError error messages in fil_rtl.c have been improved. 2514 - The function refAllocVar has been added to ref_data.c. 2515 - Documentation comments have been added or improved in bin32.s7i, 2516 bin64.s7i, sql_base.s7i, propertyfile.s7i, bitset.s7i, browser.s7i, 2517 bitsetof.s7i, actlib.c, arr_rtl.c, big_gmp.c, big_rtl.c, binlib.c, 2518 cmdlib.c, drw_rtl.c, flt_rtl.c, set_rtl.c, sql_lite.c, sql_my.c, 2519 sql_oci.c, sql_odbc.c, sql_post.c, sql_rtl.c 2520 2521 20170915: 2522 - The example program klondike.sd7 has been added. Klondike is a 2523 solitaire game. 2524 - The example program sydir7.sd7 has been improved to use fewer calls 2525 of fileTypeSL. 2526 - In flt_rtl.c the function fltCmp has been improved to work correct, 2527 when NAN_COMPARISON_OKAY is FALSE. 2528 - Checks in chkbig.sd7 for div, rem, divRem, mdiv and mod have been 2529 structured into more areas. 2530 - The reference counting of window objects in drwlib.c and drw_rtl.c 2531 has been improved. When the usage_count has been initialized with 2532 zero the window will not be freed by reference counting. This is 2533 used by the empty window. 2534 - In drw_win.c and drw_x11.c the function drwEmpty has been changed 2535 to create an empty window that is not freed by reference counting. 2536 - The compiler s7c.sd7 has been improved to use drwCreate, when a new 2537 window value is created. 2538 - In read_me.txt the description of macros defined in version.h has 2539 been improved. 2540 - In stat_win.c the function wstati64Ext has been improved, to use 2541 fewer calls of GetFileAttributesExW() and _wstati64(). 2542 - In cc_conf.s7i the description of the configuration value 2543 NAN_COMPARISON_OKAY has been improved. 2544 - In duration.s7i several parameter names have been changed. 2545 - The test for NAN_COMPARISON_OKAY in chkccomp.c has been improved. 2546 2547 20170807: 2548 - Experimental support to compute quotient and remainder of a 2549 bigInteger with the operator divRem has been added to the library 2550 bigint.s7i. 2551 - The function str in bigrat.s7i has been improved to use the new 2552 operator divRem. 2553 - The program ide7.sd7 has been improved to ignore an attempt to kill 2554 a non-existing process. 2555 - Support for a for-loop that loops over all values of an enumeration 2556 has been added to forloop.s7i. 2557 - Support for a for-loop which loops a given number of times has been 2558 added to forloop.s7i. 2559 - Syntax definitions for the divRem operator and the new for-loops 2560 have been added to syntax.s7i. 2561 - Checks for the divRem operator have been added to chkbig.sd7. 2562 - Interpreter and compiler have been improved to support the action 2563 BIG_DIV_REM. 2564 - The function bigDivRem has been added to big_gmp.c. 2565 - The function big_div_rem has been added to biglib.c. 2566 - The performance of the function uint32LeastSignificantBit() has 2567 been improved by 15% (measured with gcc and valgrind when all 2568 unsigned 32-bit values are computed). 2569 - The performance of the function uint64LeastSignificantBit() has 2570 been improved by 10% (measured with gcc and valgrind when 2571 4294967294 random unsigned 64-bit values are computed). 2572 - In set_rtl.c the functions bitsetNonZero() and setIsEmpty() have 2573 been improved. 2574 - The function memchr_strelem() has been added to striutl.c. This 2575 function uses loop unrolling inspired by Duff's device. This 2576 function is used when sizeof(wchar_t) != 4 holds. In case 2577 sizeof(wchar_t) == 4 holds (wchar_t has the same size as the 2578 Seed7 characters) the macro memchr_strelem is defined as wmemchr. 2579 - In lib/comp/create.s7i the function process_sct_alloc has been 2580 improved. Now it can be used as expression. 2581 - In big_rtl.c the functions basicRadix2To36 and binaryRadix2To36 2582 have been improved to use the parameter 'digits' instead of the 2583 parameter 'upperCase'. 2584 - The functions bigCmp, chrCmp and fltCmp have been improved. 2585 - The program chkccomp.c has been improved to check if system() 2586 returns the correct result of the process. 2587 - The program chkccomp.c has been improved to determine if isatty() 2588 or _isatty() should be used. 2589 - The functions type_value_call_obj and getValue have been added to 2590 executl.c. The function getValue determines the default value of 2591 a type. 2592 - The program setpaths.c has been improved to use preprocessor macros 2593 only when they are defined. 2594 - The program setwpath.c has been improved to include direct.h when 2595 USE_DIRWIN is defined. 2596 2597 20170702: 2598 - The performance of the function bigStr() in big_rtl.c has been 2599 improved by a factor of 2.7 (measured with gcc and valgrind when 2600 str(123456789_**12345) is computed). Now A binary method is used to 2601 convert large bigInteger numbers to a string. 2602 - The performance of the function bigRadix2To36() in big_rtl.c has 2603 been improved by a factor of 7.3 (measured with gcc and valgrind 2604 when 123456789_**12345 radix 7 is computed). Now A binary method is 2605 used to convert large bigInteger numbers to a string. 2606 - The compiler (s7c.sd7) has been improved to create destructors for 2607 local DATABASEOBJECTs and SQLSTMTOBJECTs. 2608 - The database driver sql_odbc.c has been improved to support the 2609 type SQL_BIT. 2610 - The database driver sql_odbc.c has been improved to close the 2611 the database only after all prepared statements have been freed. 2612 - Support to read BLOBs (Binary large objects) and wide character 2613 CLOBs (Character large objects) from an ODBC database has been 2614 added to sql_odbc.c. SQL_DATA_AT_EXEC is used to flag BLOBs and 2615 CLOBs for the buffer types SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR, 2616 SQL_WCHAR, SQL_WVARCHAR, SQL_WLONGVARCHAR, SQL_BINARY, 2617 SQL_VARBINARY and SQL_LONGVARBINARY. 2618 - The function bigInteger(string), which converts a string to a 2619 bigInteger number, has been added to bigint.s7i. 2620 - Checks that test the conversion of a bigInteger to a string (with 2621 the function str() and the operators RADIX and radix) have been 2622 added to chkbig.sd7. 2623 - The example program db7.sd7 has been improved to list column 2624 headers even when no line was found. 2625 - The functions getConversionDivisor, basicToStri, binaryToStri, 2626 basicRadix2To36, binaryRadix2To36, uBigDivRem1, bigDivRem1, 2627 bigDivRemSizeLess and bigDivRem have been added to big_rtl.c. 2628 - The program chkccomp.c has been improved to have better checks for 2629 utime and fileno. 2630 - Documentation about the macros used have been added to chkccomp.c. 2631 - In src/read_me.txt descriptions of C_COMPILER, C_COMPILER_SCRIPT, 2632 CC_FLAGS and LINKER have been improved. 2633 2634 20170530: 2635 - The example program db7.sd7 has been added. Db7 is a Database 2636 inspector with browser interface. 2637 - In array.s7i the function insert has been improved to insert an 2638 array of elements. 2639 - In browser.s7i the function close has been improved to ignore an 2640 error when the browser has already closed the socket. 2641 - In browser.s7i the new function display (with the browser as first 2642 argument) has been introduced. The old function (with the browser 2643 as second argument) is deprecated and will be removed in a future 2644 version. 2645 - In cgidialog.s7i the parameters of the function dialogTable have 2646 been improved. Now the column headers can be specified and a two 2647 dimensional array of strings can be used to specify the content. 2648 - The compiler has been improved to use the function bigAbsTemp to 2649 optimize bigInteger expressions. 2650 - Checks that test if the function abs works correct have been added 2651 to chkbig.sd7. 2652 - The picture on_off_pic has been added to pic16.s7i and pic32.s7i. 2653 - Tests for the function abs have been added to chk_all.sd7. 2654 - The program ide7.sd7 has been improved to use the new version of 2655 the function display. 2656 - The function bigAbsTemp has been added to big_rtl.c and big_gmp.c. 2657 - In big_gmp.c errors in bigFromUInt64 and bigLowerBits64 have been 2658 fixed. 2659 - The makefiles have been improved to avoid unnecessary includes 2660 and defines in chkccomp.h. 2661 2662 20170501: 2663 - The example program diff7.sd7 has been added. This program compares 2664 two files line by line. 2665 - The example program hd.sd7 has been added. This program writes a 2666 hexdump of a given file. 2667 - The functions sha384 and sha512 have been added to msgdigest.s7i. 2668 - The compiler has been improved to optimize expressions like 2669 bin64(aBigExpression mod aPowerOfTwo). 2670 - The library vectorfont.s7i has been improved to allow scaling of 2671 vector fonts. 2672 - The dialog element passwordField has been added to cgidialog.s7i. 2673 The passwordField dialog element allows entering a password without 2674 readable echo. 2675 - The function readPassword has been added to editline.s7i. 2676 - In array.s7i the for-until loops for arrays have been improved to 2677 work correct, when the until-condition uses the for variable. 2678 - In cli_cmds.s7i the functions getCommandParameter, 2679 getUnixCommandParameter and getDosCommandParameter has been 2680 improved to recognize when a closing quote is missing. 2681 - In cli_cmds.s7i in the function processCommand the handling of 2682 external commands with redirection of stdin has been improved. 2683 - The functions xyArray and scale have been added to graph.s7i. 2684 - In seed7_05.s7i the exception DATABASE_ERROR has been introduced. 2685 - The programs sql7.sd7 and chkdb.sd7 have been improved to use the 2686 new exception DATABASE_ERROR. 2687 - A parse operator for dbCategory has been added to sql_base.s7i. 2688 - The pictures return_pic and right_arrow_pic have been added to 2689 pic32.s7i and pic16.s7i. 2690 - The function checkBinBinaryWithBigMod has been added to chkbin.sd7. 2691 This function checks the optimizations done with expressions like 2692 bin64(aBigExpression mod aPowerOfTwo). 2693 - In tls.s7i the type securityParameters has been renamed to 2694 tlsParameters. The functions showMsg and showMsgType have been 2695 renamed to showTlsMsg respectively showTlsMsgType. 2696 - In tls.s7i the generation of CLIENT_HELLO, SERVER_HELLO, 2697 CERTIFICATE, SERVER_HELLO_DONE, CLIENT_KEY_EXCHANGE, 2698 CHANGE_CIPHER_SPEC, FINISHED, ALERT and APPLICATION_DATA messages 2699 has been improved. 2700 - In int_act.s7i the types addSubElementType and 2701 addSubElementListType have been renamed to addSubIntElementType 2702 respectively addSubIntListType. 2703 - In the compiler (in big_act.s7i, function process_const_big_mod) 2704 the handling of the bigInteger mod operator, when the divisor is a 2705 power of two, has been improved. Now a temporary result is freed. 2706 - In the compiler (in big_act.s7i, function process_const_big_mult) 2707 the handling of the bigInteger multiplication with a negated power 2708 of two has been improved. Now a temporary result is freed. 2709 - The functions generateAddSubParamList and evaluateConstants have 2710 been added to comp/big_act.s7i. 2711 - The function optimize_bin_binary_of_big_mod has been added to the 2712 compiler (in bin_act.s7i). This function optimizes the expression 2713 bin64(aBigNumber mod aPowerOfTwo) to 2714 bigLowerBits64(aBigNumber) & ord(pred(aPowerOfTwo)). 2715 This optimization converts to bin64 earlier. This allows the usage 2716 of cheap bin64 operations instead of bigInteger operations. 2717 - The functions optimizeAddSubElement and optimizeAddSubList have 2718 been added to comp/bin_act.s7i. 2719 - In big_rtl.c the performance of the functions bigFromUInt32 and 2720 bigFromUInt64 has been improved. 2721 - The function bigLowerBits64 has been added to big_rtl.c and 2722 big_gmp.c. This function is used by the compiler to optimize 2723 expressions like bin64(aBigNumber mod aPowerOfTwo). 2724 - The program chkccomp.c has been improved to check for the presence 2725 of snprintf() and vsnprintf(). 2726 - The functions sql_eq_db, sql_eq_stmt, sql_ne_db and sql_ne_stmt 2727 have been added to sqllib.c. 2728 - Interpreter and compiler have been improved to support the actions 2729 DRW_CONVPOINTLIST, SQL_CMP_DB, SQL_CMP_STMT, SQL_EQ_DB, 2730 SQL_EQ_STMT, SQL_ERR_CODE, SQL_ERR_DB_FUNC, SQL_ERR_LIB_FUNC, 2731 SQL_ERR_MESSAGE, SQL_NE_DB and SQL_NE_STMT. 2732 - Support for the action DRW_CONVPOINTLIST has been added to 2733 drwlib.c, drwlib.h, drw_win.c and drw_x11.c. 2734 - A definition of snprintf has been added to fil_win.c. 2735 - The function list_length has been added to listutl.c. 2736 - The new files sql_base.c and sql_base.h have been added. This 2737 files contain definitions of dbLibError, dbInconsistentMsg and 2738 dbError. The makefiles have been adjusted to use sql_base.c. 2739 - The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c 2740 and sql_post.c have been improved to write database errors to the 2741 struct dbError. The content of dbError can be obtained with the 2742 actions SQL_ERR_CODE, SQL_ERR_DB_FUNC, SQL_ERR_LIB_FUNC and 2743 SQL_ERR_MESSAGE. 2744 - The functions sqlErrCode, sqlErrDbFunc, sqlErrLibFunc and 2745 sqlErrMessage have been added to sql_rtl.c 2746 - The handing of local variables has been changed in blockutl.c 2747 (improved function get_local_var_list) and prclib.c (new functions 2748 process_local_decl and evaluate_local_decls). Instead of executing 2749 the local declarations as a whole they are now executed line by 2750 line. This change might be useful for future improvements. 2751 2752 20170328: 2753 - A chapter about signals has been added to the manual. 2754 - The handling of ctrl-c (respectively the signal SIGINT), when s7 or 2755 s7c are used with the option -ts, has been improved: 2756 - A dialog offers several possibilities: Continue, terminate, 2757 trigger SIGFPE or raising an exception. 2758 - If the program was waiting for an input at the console the input 2759 can be entered again. 2760 - Under windows signal handler and the program that waits for an 2761 input are synchronized now. 2762 - The library aes.s7i with AES (Advanced Encryption Standard) cipher 2763 support has been improved to support key lengths of 192 and 256 2764 bits. 2765 - The library tls.s7i has been improved to support the cipher suits 2766 TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256 and 2767 TLS_RSA_WITH_AES_256_CBC_SHA256. 2768 - The performance of the function bigMultAssign in big_rtl.c has been 2769 improved by a factor of 22 (measured with gcc and valgrind when 2770 big1 := 123456789_**123456; big1 *:= 123456789_**123456; is 2771 computed). Now Karatsuba multiplication is used to compute *:= . 2772 - The functions wildcardMatch and findMatchingFiles have been moved 2773 from cli_cmds.s7i to the new library wildcard.s7i. 2774 - The function flush has been added to pixmap_file.s7i. 2775 - The signal handling of interpreted and compiled programs has been 2776 unified. Now the signal handling is done in sigutl.c. 2777 - Sigutl.c has been moved from the library s7_comp.a to the run-time 2778 library seed7_05.a. 2779 - Code to generate signal handling functions has been removed from 2780 s7c.sd7. 2781 - The functions kbdKeyPressed and kbdGetc in con_win.c have been 2782 rewritten to use Win32 functions (PeekConsoleInputW and 2783 ReadConsoleInputW) instead of functions from conio.h (kbhit and 2784 getch). The include directive for conio.h has been removed. 2785 - Code to use conio.h has been moved from con_win.c to con_con.c. 2786 - In fil_win.c the function stdinReady has been added and calls of 2787 kbhit have been replaced by calls of stdinReady. The include of 2788 conio.h has been removed. 2789 - Checks that test if NaN is returned as error value for math 2790 functions have been added to chkflt.sd7. 2791 - Checks that test if sqrt of a negative number raises NUMERIC_ERROR 2792 have been added to chkbig.sd7 and chkint.sd7. 2793 - Checks for sqrt have been added to chkint.sd7. 2794 - Checks for *:= have been added to chkbig.sd7. 2795 - The configuration value SQRT_FUNCTION_OKAY has been added to 2796 cc_conf.s7i. 2797 - The program esc2qte.c has been improved to avoid generating output 2798 with a newline character inside a quoted part. 2799 - The function readChar has been renamed to readCharChkCtrlC and 2800 moved from fil_rtl.c to fil_unx.c and fil_win.c. 2801 - The function readCharFromTerminal has been added to fil_rtl.c. 2802 This function allows to re-enter the input, when a program is 2803 resumed after a ctrl-c. 2804 - The functions doLineRead and doWordRead have been removed from 2805 fil_rtl.c. The content of this functions has been moved to 2806 filLineRead respectively filWordRead. 2807 - The function fltSqrt has been added to flt_rtl.c. This function 2808 checks for negative arguments. This avoids a bug of MinGW-w64 where 2809 sqrt(-2.0) returns -2.0 instead of NaN. 2810 - The configuration value SQRT_FUNCTION_OKAY has been added to 2811 cc_conf.s7i. 2812 - The compiler (s7c) has been improved to use fltSqrt when 2813 SQRT_FUNCTION_OKAY is FALSE. 2814 - The functions sqlCpyDbGeneric, sqlCpyStmtGeneric, 2815 sqlCreateDbGeneric, sqlCreateStmtGeneric, sqlDestrDbGeneric and 2816 sqlDestrStmtGeneric have been added to sql_rtl.c. 2817 - The function suspendInterpreter has been added to exec.c. 2818 - The function uncaught_exception has been added to runerr.c. 2819 - In executl.c the functions old_do_create, do_create, do_destroy, 2820 old_do_copy and do_copy have been improved. Now the functions write 2821 a message about an uncaught exception, when the function fails and 2822 exception tracing is switched on. 2823 - The file stat_drv.h has been improved to optionally define the 2824 st_mode macros and the struct stati64Ext. 2825 - In stat_win.c the function fstati64Ext has been improved to use 2826 os_fstat_orig or for work without os_fstat_orig. 2827 - In chkccomp.c the code that searches for the MySql include file 2828 has been fixed. 2829 - The program chkccomp.c has been improved to define the macros 2830 likely, unlikely, NORETURN, INTPTR_T_DEFINED, FLOAT_ZERO_DIV_ERROR, 2831 FREXP_INFINITY_NAN_OKAY and LIMITED_CSTRI_LITERAL_LEN always. 2832 - The program chkccomp.c has been improved to define the macro 2833 DIGRAPH_SEQUENCES_ARE_REPLACED. 2834 - The file config.h has been changed to define the macros 2835 WITH_STRI_CAPACITY, ALLOW_STRITYPE_SLICES, ALLOW_BSTRITYPE_SLICES, 2836 WITH_LIST_FREELIST, WITH_NODE_FREELIST, WITH_FILE_FREELIST, 2837 STACK_LIKE_ALLOC_FOR_OS_STRI, FLOATTYPE_DOUBLE, 2838 MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS, FORBID_DRIVE_LETTERS and 2839 EMULATE_ROOT_CWD always. 2840 - At several places #ifdef has been replaced by #if to adopt to the 2841 macros that are always defined. 2842 - Documentation comments have been added or improved in big_rtl.c, 2843 con_cap.c, con_con.c, con_cur.c, con_dos.c, con_rtl.c, con_tcp.c, 2844 intlib.c, asn1.s7i and wildcard.s7i. 2845 2846 20170305: 2847 - The performance of the function bigIPow in big_rtl.c has been 2848 improved by a factor of 15 (measured with gcc and valgrind when 2849 bitLength(123456789_**123456) is computed). Now Karatsuba 2850 multiplication and Karatsuba squaring is used to compute the power. 2851 - The performance of the function uBigMult in big_rtl.c has been 2852 improved by 22% (measured with gcc and valgrind). 2853 - The compiler has been improved to optimize expressions like: 2854 stri := stri & .... 2855 stri := stri[pos ..]; 2856 stri := lower(stri); 2857 stri := upper(stri); 2858 The optimization avoids an unnecessary copy of the string result of 2859 the right hand side expression. 2860 - The code generated by the compiler for the action STR_FOR has been 2861 improved. Now correct code is generated, when the for-statement 2862 loops over a string expression. 2863 - The library seed7_05.s7i has been improved to support if-statements 2864 with omitted statement after the keyword 'then'. 2865 - The functions getFile and putFile have been added to osfiles.s7i. 2866 - The bas7.sd7 (basic interpreter) example program has been improved. 2867 Support for the commands FILES and LOAD has been added. 2868 - Test cases for the power operator (**) and the operators div, rem, 2869 mdiv and mod have been added to chkbig.sd7. 2870 - Test cases for the new string optimizations done by the compiler 2871 have been added to chkstr.sd7. 2872 - Interpreter and compiler have been improved to support the action 2873 PRC_IF_NOOP. 2874 - The new library http_response.s7i has been added. It contains 2875 support for HTTP responses. 2876 - The comanche webserver has been improved to work with the new 2877 library http_response.s7i. 2878 - In big_rtl.c the functions bigIPow and bigIPowN have been improved 2879 to use uBigSquareK and uBigMultK instead of uBigSquare and 2880 uBigMultIntoHelp. 2881 - In big_rtl.c an improved version of uBigDigitMult has been added and 2882 an older deactivated (but faster) version of uBigMult has been 2883 reactivated. 2884 - In str_rtl.c the function strHeadTemp has been improved to avoid a 2885 heap corruption for the strange corner case that shrinking a memory 2886 area fails. Additionally this can only happen with the new compiler 2887 optimization that generates the expression: 2888 aString = strHeadTemp(aString, anIndex); 2889 - The functions uBigMultIntoHelp and uBigSquare have been removed from 2890 big_rtl.c 2891 - In flt_rtl.c the functions fltDgts and fltSci have been improved to 2892 work correct, when printf() does not have a fixed maximum for the 2893 float precision. 2894 - The program chkccomp.c has been changed such that several test 2895 programs link with SYSTEM_LIBS, when wide variants of system file 2896 functions are tested. 2897 - The test programs of chkccomp.c, which determine BOOLTYPE, 2898 FLOAT_ZERO_DIV_ERROR, PRINTF_FMT_E_MAXIMUM_FLOAT_PRECISION and 2899 PRINTF_FMT_F_MAXIMUM_FLOAT_PRECISION have been improved. 2900 - The test programs of chkccomp.c, which determine database include 2901 files have been improved to use something from the include file. 2902 This way the correct include file is selected when a C compiler just 2903 warns about a missing include file instead of flagging an error. 2904 2905 20170129: 2906 - The new library filesys.s7i has been added. It defines the interface 2907 fileSys. Files of TAR, ZIP and JAR archives and files from FTP and 2908 the operating system can be accessed via the fileSys interface. The 2909 file system changes are work in progress. 2910 - The libraries tar.s7i, zip.s7i, ftp.s7i and osfiles.s7i have been 2911 adjusted to implement the new interface fileSys. 2912 - Definitions of the types fileType, filePermission and fileMode have 2913 been moved from osfiles.s7i to the new library filesys.s7i. 2914 - A definition of the file system osFiles has been added to 2915 osfiles.s7i. 2916 - In ftp.s7i the interface ftpFileSys has been added. This interface 2917 extends fileSys with the functions listDir, getActiveMode, 2918 setActiveMode, getAsciiTransfer and setAsciiTransfer. 2919 - The functions retrieve and store have been removed from ftp.s7i and 2920 the function open (to open a file) has been added. 2921 - The new library ftpserv.s7i has been created. This library allows, 2922 that the back end of an FTP server is also a file system. Most of 2923 the contents of ftpserv.s7i has been moved from ftpserv.sd7. 2924 - The functions setUpHead, tarTell, tarXtract and tarCreate have been 2925 moved from tar.s7i to the new library tar_cmds.s7i. 2926 - The conversion functions bin32 and float have been added to 2927 bin32.s7i. This functions convert values between single precision 2928 float and bin32. 2929 - The conversion functions bin64 and float have been added to 2930 bin64.s7i. This functions convert values between double precision 2931 float and bin64. 2932 - The functions getBitLsb and getBitsLsb have been added to 2933 bitdata.s7i. This functions read bits from a file in the direction 2934 from LSB (least significant bit) to MSB (most significant bit). 2935 - The operator |:= has been added to the libraries bitsetof.s7i and 2936 bitset.s7i. 2937 - The type void has been improved to allow writing a void value. 2938 This allows that calc7.sd7 can execute procedures. 2939 - The new library inflatefile.s7i has been added. It allows to 2940 uncompress data from a file with the Inflate algorithm. In contrast 2941 to inflatefile.s7i the functions from inflate.s7i assume that the 2942 compressed data is in a string. 2943 - A test of the tar header checksum has been added to tar.s7i. 2944 - A support for long link paths has been added to tar.s7i. 2945 - The function readMinimumOfHead has been added to tar.s7i. With this 2946 function opening a tar archive can be done faster. 2947 - The functions fileMode and getMTime in zip.s7i have been improved 2948 to recognize modes and times from different operating systems. 2949 - In zip.s7i the function rposOfMagic has been improved to work with 2950 one call of seek() and one gets(). This way the function is faster, 2951 when the file is not a ZIP file. 2952 - In zip.s7i the functions get_local_header, get_central_header and 2953 get_end_of_central_directory have been improved to read the fixed 2954 size part of the header with one statement and to convert the data 2955 afterwards. This improves the performance of get_central_header by 2956 about 10%. 2957 - In zip.s7i a map of extra header fields has been introduced. 2958 - In zip.s7i the function getContent has been renamed to getFile. 2959 Additionally the function has been improved to work when the local 2960 header does not contain the compressed size. In this case the new 2961 library inflatefile.s7i is used. 2962 - The function timestamp1601ToTime has been added to time.s7i. 2963 - A test for the operator |:= has been added to chkset.sd7. 2964 - The function filGets in fil_rtl.c has been improved to recognize a 2965 request to read zero characters earlier. This improves this special 2966 case a little bit, without a negative effect on the normal case. 2967 - The function uintCard has been added to int_rtl.c. 2968 - The computation of the mode in the function fileAttr2UnixMode in 2969 stat_win.c has been improved. 2970 - The program ftp7.sd7 has been improved to work with the new 2971 ftpFileSys interface. 2972 - The program ftpserv.sd7 has been improved to work with the new 2973 library ftpserv.s7i. 2974 - In seed7_05.s7i the function to convert an integer to a string with 2975 a given base has been improved. 2976 - Interpreter and compiler have been improved to support the actions 2977 BIN_CARD, SET_UNION_ASSIGN and STR_FOR. 2978 - In the compiler (s7c) the generation of inline code for the actions 2979 STR_RANGE and STR_SUBSTR has been improved. When some parameters are 2980 constant checks can be done at compile-time instead of run-time. 2981 - In drw_x11.c the function redraw() has been improved and the new 2982 function setupBackup() has been added. This changes have been done 2983 to handle EXPOSE events correctly, when backing store has the value 2984 WhenMapped. 2985 - In runerr.c the functions continue_question, run_error, empty_value 2986 and var_required have been changed to allow the replacement of the 2987 current exception with a new one. 2988 - The function str_for has been added to strlib.c. 2989 2990 20161231: 2991 - The function toArray has been added to the libraries bitset.s7i, 2992 bitsetof.s7i and hashsetof.s7i. This function creates an array 2993 with all values from a given set. 2994 - Experimental functions to access TAR and ZIP archives as file system 2995 have been added to tar.s7i and zip.s7i. This is work in progress, so 2996 the API might change. 2997 - The compiler has been improved to work correctly with a C++ compiler 2998 back end (Now it uses strRaiseError instead of intRaiseError) for the 2999 code generated for BIN_RADIX and INT_RADIX. 3000 - The compiler has been improved to use sigaction(), when available 3001 (HAS_SIGACTION is TRUE). 3002 - The compiler has been improved to reactivate the signal handler, 3003 when necessary (SIGNAL_RESETS_HANDLER is TRUE). 3004 - Test cases for the parse function with whitespace and control 3005 characters have been added to chkbig.sd7. 3006 - in big_gmp.c the functions bigParse and bigParseBased have been 3007 improved, to raise RANGE_ERROR when whitespace characters are in the 3008 string. 3009 - The configuration values HAS_SIGACTION and SIGNAL_RESETS_HANDLER 3010 have been added to cc_conf.s7i. 3011 - The program chkccomp.c has been improved to define 3012 SIGNAL_RESETS_HANDLER. 3013 - The function checkMoveDirectory has been removed from chkccomp.c. 3014 - In several files the literal 8 has been replaced by CHAR_BIT, when 8 3015 refers to the number of bits is a char. 3016 - Several integer literals have been replaced by defined constants. 3017 - Documentation comments have been added or improved in bitset.s7i, 3018 bitsetof.s7i, hashsetof.s7i, cc_conf.s7i, ftp.s7i, tar.s7i, zip.s7i, 3019 arrlib.c, arr_rtl.c, big_rtl.c, conlib.c, dll_unx.c, dll_win.c, 3020 fillib.c, fil_rtl.c, heaputl.c, hshlib.c, hsh_rtl.c, numlit.c, 3021 numutl.c, pcs_unx.c, pcs_win.c, pol_dos.c, pollib.c, pol_sel.c, 3022 pol_unx.c, sctlib.c, setlib.c, set_rtl.c, str_rtl.c and typlib.c. 3023 3024 20161204: 3025 - A description, how compiler optimizations can reduce the potential 3026 of integer overflow, has been added to the manual. 3027 - Documentation comments have been improved in cc_conf.s7i, 3028 integer.s7i, int_rtl.c, stat_win.c and tim_win.c. 3029 - The compiler has been improved to optimize expressions, where 3030 several terms are added or subtracted in combination with the 3031 functions succ or pred. It is possible to combine adjacent constant 3032 terms at compile time. This simplifies overflow checks. 3033 - The compiler has been improved to optionally generate programs, 3034 that trace function calls. This is activated with the option -tf. 3035 - Checks have been added to chkint.sd7, where several terms are added 3036 in combination with the functions succ or pred. 3037 - The functions wstati64Ext (in stat_win.c) and alternate_utime (in 3038 tim_win.c) have been improved to avoid the strange time adjustments 3039 of windows for Daylight Saving Time: For the same file different 3040 times are retrieved respectively set in summer and winter. Now the 3041 times do not depend on the time when they are retrieved or set. 3042 - In stat_win.c a check for wildcards in a path has been removed from 3043 wstati64Ext. 3044 - The performance of dirRead in dir_rtl.c has been improved by 10% 3045 (measured with gcc and valgrind). A smarter check for the 3046 directories . and .. reduces the CPU time used. 3047 - In cmd_rtl.c the functions remove_dir and copy_dir have been 3048 improved with a smarter check for the directories . and .. to 3049 reduce the CPU time used. 3050 - The function getSearchPath in cmd_rtl.c has been improved to work 3051 correctly, when there is no environment variable named PATH. 3052 - Definitions of macros to check the st_mode field of struct stat 3053 (e.g. S_ISDIR, S_ISREG, etc.) have been moved from fil_rtl.h to 3054 stat_drv.h. 3055 - The program chkccomp.c has been improved to work correct, when 3056 C compiler options are separated by linefeeds (\n). In this case the 3057 linefeeds are replaced by spaces. The linefeeds are used in 3058 cc_conf.s7i to allow the definition of SYSTEM_DB_LIBS as an array of 3059 database libraries. 3060 - In sudo.c the call of ShellExecute() has been replaced by a call of 3061 ShellExecuteA(). 3062 - A definition of FMT_T, a printf format for time_t values, has been 3063 added to common.h. 3064 - The makefile mk_clangw.mak has been improved to use the library 3065 extension ".lib". 3066 - Calls of logFunction and logError have been added or improved in 3067 cmd_rtl.c, cmd_win.c, gkb_win.c, flt_rtl.c, int_rtl.c, pcslib.c, 3068 reflib.c, rfllib.c, stat_win.c and tim_win.c. 3069 - In dir_rtl.c the function readVolumeName has been improved to 3070 consider only directories as volumes. 3071 - In int_rtl.c the functions uint_mult, uint2_mult and uint2_add 3072 have been renamed to uintMult, uint2Mult and uint2Add respectively. 3073 - In stat_win.c the functions filetime_to_unixtime and 3074 fileattr_to_unixmode have been renamed to fileTime2UnixTime and 3075 fileAttr2UnixMode respectively. 3076 - In tim_win.c the function alternate_utime has been improved to 3077 avoid calling os_utime_orig, because the utime functions of Windows 3078 do different time adjustments for the same time in summer and 3079 winter. 3080 3081 20161031: 3082 - The examples about multiple dispatch in the FAQ and in the manual 3083 have been changed. 3084 - In dir_win.c the functions opendir and wopendir have been improved 3085 to work correctly, when a volume is empty. FindFirstFile returns 3086 INVALID_HANDLE_VALUE, when the path refers to an empty volume 3087 (a directory that does not contain the . and .. directories). 3088 After FindFirstFile fails GetFileAttributesEx is used to recognize 3089 empty volumes. 3090 - In stat_win.c the function wstati64Ext has been improved to 3091 recognize empty volumes correctly. Now GetFileAttributesEx is used 3092 instead of FindFirstFile to get information about a file. 3093 - The function openVolumeList has been moved from cmd_win.c and 3094 cmd_unx.c to dir_win.c. 3095 - The definition of volumeListType has been moved from cmd_drv.h to 3096 dir_win.h. 3097 - In str_rtl.c the function strAppendN has been improved to work 3098 correctly, when an appended string is identical to the destination 3099 or a slice of it. There was already code to handle this case, but 3100 this code could access freed memory in rare situations. 3101 - The makefiles mk_nmake.mak and mk_msvc.mak have been changed to 3102 include the file 'macros' before the macro SYSTEM_DB_LIBS is used. 3103 - Rand functions have been added to bin32.s7i and bin64.s7i. 3104 - The compiler has been improved to optimize the float shift 3105 operators << and >> . 3106 - Documentation comments have been improved in float.s7i, 3107 integer.s7i, osfiles.s7i, big_gmp.c, big_rtl.c, bstlib.c and 3108 bst_rtl.c. 3109 3110 20161002: 3111 - Definitions of float shift operators << and >> have been added to 3112 float.s7i (A << B is equivalent to A * 2.0 ** B and A >> B is 3113 equivalent to A / 2.0 ** B). 3114 - Checks for the operators << and >> have been added to chflt.sd7. 3115 - Interpreter and compiler have been improved to support the primitiv 3116 actions FLT_LSHIFT and FLT_RSHIFT. 3117 - The example program find7.sd7 has been added. This program is an 3118 utility to search for files and file contents. 3119 - Documentation comments have been added to arrlib.c, biglib.c, 3120 blnlib.c, bstlib.c, fillib.c, pcslib.c, prclib.c, prglib.c and 3121 strlib.c. 3122 3123 20160831: 3124 - The Seed7 runtime library has been improved to allow paths longer 3125 than PATH_MAX (260) characters under Windows. 3126 - The program sydir7.sd7 has been improved. Now it is avoided to copy 3127 a file, when source and destination differ only by date. The 3128 option -c has been added. With -c the source is copied and files 3129 that are missing in the source are removed from the destination. 3130 - The function readVolumeName in dir_rtl.c has been improved to allow 3131 extended length paths (This paths exist under Windows and have a 3132 prefix of \\?\ ). 3133 - The functions opendir and wopendir in dir_win.c have been improved 3134 to allow paths longer than 260. 3135 - In the library seed7_05.s7i the undocumented function xalloc has 3136 been removed. 3137 - The function printArgv has been added to arr_rtl.c to improve the 3138 logging. 3139 - The program chkccomp.c has been improved to write settings to 3140 always use the directory functions from dir_win.c under Windows. 3141 - The function adjustCwdForShell has been added to cmd_rtl.c. This 3142 function sets the current working directory to something acceptable 3143 by cmd.exe. 3144 - In stat_win.c the function wstati64 has been renamed to wstati64Ext 3145 and improved to call the original stat function, when possible. 3146 - The new file stat_drv.h has been added. In this file a prototype 3147 of wstati64Ext is defined when necessary. 3148 - The program wrdepend.c has been improved to work correctly, when 3149 the INCLUDE_OPTIONS macro contains newline characters. 3150 - Calls of logFunction have been added to arr_rtl.c, cmd_rtl.c, 3151 dir_rtl.c, executl.c, fil_rtl.c, pcs_win.c, runerr.c, sctlib.c, 3152 sigutl.c, stat_win.c and striutl.c. 3153 - Calls of logError have been added to arrlib.c, blnlib.c, cmd_rtl.c, 3154 conlib.c, dir_win.c, drwlib.c, enulib.c, fil_rtl.c, itflib.c, 3155 lstlib.c, prclib.c, reflib.c and striutl.c. 3156 3157 20160731: 3158 - The bas7.sd7 (basic interpreter) example program has been improved. 3159 Support for CVD, CVDMBF, CVS, CVSMBF, HPLOT, MKD$, MKDMBF$, MKS$,
3160   MKSMBF$, PLOT, SCREEN, SHARED and VARPTR$ has been improved.
3161   Creating Cga, Ega and Vga images from arrays has been improved to
3162   work also for float and double arrays.
3163 - The functions bin32, compare, hashCode, float2Bits, bits2Float,
3164   float2MbfBits and mbfBits2Float have been added to bin32.s7i. The
3165   functions fourBytesLeToBin32 and fourBytesBeToBin32 have been
3166   removed (The new function bin32 can be used instead).
3167 - The functions bin64, compare, hashCode, float2Bits, bits2Float,
3168   float2MbfBits and mbfBits2Float have been added to bin64.s7i. The
3169   functions eightBytesLeToBin64 and eightBytesBeToBin64 have been
3170   removed (The new function bin64 can be used instead).
3171 - The program chkbin.sd7 has been added. This program checks the
3172   correctness of the functions float2Bits, bits2Float, float2MbfBits,
3174 - Checks for the function decompose have been added to chkflt.sd7.
3175 - The compiler has been improved to optimize expressions where several
3176   terms are added or subtracted. It is possible to combine adjacent
3177   constant terms at compile time. This simplifies overflow checks.
3178 - The compiler has been improved to store NaN values as bin64
3179   literals.
3180 - The calc7 example program has been improved to support bin32 and
3181   bin64 functions.
3182 - The function decompose and the type floatElements have been added
3183   to the library float.s7i. The function decompose splits a float into
3184   a normalized fraction and an integral exponent for 2. The result
3185   of decompose uses the type floatElements.
3186 - The function integer (it converts a string to an integer) has been
3188 - In the library seed7_05.s7i the undocumented function xalloc has
3189   been replaced by the function create.
3190 - The functions uintCmp and uintCmpGeneric have been added to
3191   int_rtl.c.
3192 - The configuration value FREXP_INFINITY_NAN_OKAY has been added to
3193   cc_conf.s7i.
3194 - The primitive action FLT_A2TAN has been renamed to FLT_ATAN2 in
3195   interpreter, compiler and runtime library.
3196 - Documentation comments have been improved in bitdata.s7i, arrlib.c,
3197   binlib.c, bstlib.c, bst_rtl.c, fillib.c, kbdlib.c, literal.c.
3198 - Interpreter and compiler have been improved to support the primitiv
3199   actions BIN_CMP, FLT_BITS2DOUBLE, FLT_BITS2SINGLE, FLT_DECOMPOSE,
3200   FLT_DOUBLE2BITS and FLT_SINGLE2BITS.
3201 - The program chkccomp.c has been improved to define
3202   FREXP_INFINITY_NAN_OKAY and to work for PostgreSQL version 9.5.
3203
3204 20160630:
3205 - The bas7.sd7 (basic interpreter) example program has been improved.
3206   Support for CVSMBF, CVDMBF, FLASH, FRE, GR, HGR, HOME, HTAB,
3207   INVERSE, NORMAL, TEXT, PR# and VTAB has been added. Support for
3208   CLEAR, COLOR, GET, INPUT, LOG, SQR and RUN has been improved.
3209   Some keywords can now be used as label.
3210 - Documentation comments have been added or improved in several files.
3211 - Definitions of the operator @:= have been added to bitset.s7i,
3212   bitsetof.s7i and hashsetof.s7i.
3213 - The compiler has been improved optimize expressions like
3214   factor*base**exponent when the base is a power of two.
3215 - In x509cert.s7i the constant stdCertificate has been improved to
3216   have a new validity (until end of 2017).
3217 - In drw_win.c the function privateConsole has been improved to
3218   determine a private console window (A cmd.exe console that was
3219   invoked implizit when the program started) more reliable. This
3220   avoids that an already existing console (from which the program was
3221   started) is accidentally hidden.
3222 - The function redraw in drw_x11.c has been improved to ignore NULL
3223   windows (EXPOSE events can arrive after a window has been freed).
3224 - The function drwFree in drw_x11.c has been improved to free also the
3225   backup pixmap.
3226 - Compiler and interpreter have been improved to support the action
3227   REF_ALLOC_INT.
3228 - Checks for factor*base**exponent when the base is a power of two
3229   have been added to chkflt.sd7.
3230 - Checks with several summands in a chain and checks of the
3231   subtraction of integer.first have been added to chkint.s7i.
3232 - First steps have been done for a compiler optimization of adding
3233   and subtracting several summands in a chain.
3234 - Occurrences of nodeValue and MDULEOBJECT have been removed from
3235   interpreter and runtime library.
3236 - The function prg_find has been removed from prglib.c.
3237 - The function ref_find has been removed from reflib.c.
3238 - The support for the actions PRG_FIND and REF_FIND has been removed
3239   from the interpreter.
3240 - Function and variable definitions in setpaths.c and wrdepend.c have
3241   been changed to static definitions.
3242
3243 20160531:
3244 - Documentation comments have been added or improved in many files.
3245 - The compiler (s7c) has been improved to start C compiler and linker
3246   direct and not via a shell (except when the compiler must be started
3247   with a script).
3248 - The program chkccomp.c has been improved to use consecutive numbers
3249   for test program files.
3250 - The program chkccomp.c has been improved to show the progress of the
3251   tests done.
3252 - The experimental function startProcess, with files to redirect, has
3254 - The functions childStdIn, childStdOut and childStdErr have been
3256 - The function shellParameters has been added to shell.s7i.
3257 - The function noEmptyStrings has been added to seed7_05.s7i.
3258 - A conv operator to convert an interface object to a specific
3259   implementation type has been added to seed7_05.s7i.
3260 - The compiler (s7c) has been improved to support the new conv
3261   operator defined in seed7_05.s7i.
3262 - In cc_conf.s7i the configuration values CC_OPT_DEBUG_INFO,
3264   SYSTEM_DRAW_LIBS and SYSTEM_DB_LIBS have been changed to be arrays
3265   of strings instead of strings.
3266 - In cc_conf.s7i the configuration values CALL_C_COMPILER_FROM_SHELL,
3267   CC_ERROR_FILDES, REDIRECT_FILDES_1, REDIRECT_FILDES_2 and
3269 - In cc_conf.s7i the configuration value REDIRECT_C_ERRORS has been
3270   removed.
3271 - Interpreter and compiler have been improved to support the actions
3272   PCS_CHILD_STDERR, PCS_CHILD_STDIN, PCS_CHILD_STDOUT, FIL_PIPE and
3273   FIL_OPEN_NULL_DEVICE.
3274 - The function analyzeProg in analyze.c has been improved to have less
3275   usages of the global variable prog.
3276 - The functions in chkccomp.c have been changed to static functions.
3277 - The program chkccomp.c has been improved to define
3278   POPEN_SUPPORTS_CLOEXEC_MODE, FOPEN_SUPPORTS_CLOEXEC_MODE,
3279   HAS_FCNTL_SETFD_CLOEXEC and HAS_PIPE2.
3280 - The function filPipe has been added to fil_unx.c and fil_win.c.
3281 - In fil_rtl.c the functions filOpen and filPopen have been improved
3282   to open files with the CLOEXEC flag, when possible.
3283 - The function filOpenNullDevice has been added to fil_rtl.c.
3284 - The functions init_findid, init_entity and init_sysvar have been
3285   changed to use a progType parameter.
3286 - The functions pcsStart in pcs_unx.c and pcs_win.c have been improved
3287   to have parameters for stdin, stdout and stderr.
3288 - The functions pcsChildStdErr, pcsChildStdIn and pcsChildStdOut have
3290 . The functions pcs_childStdErr, pcs_childStdIn and pcs_childStdOut
3291   have been added to pcslib.c.
3292 - In src/read_me.txt descriptions of SEARCH_PATH_DELIMITER.
3293   REDIRECT_FILDES_1, REDIRECT_FILDES_2, NULL_DEVICE, REDIRECT_C_ERRORS
3294   and CC_ERROR_FILDES have been improved.
3295 - The functions find_sysvar and concat_path have been renamed to
3296   findSysvar and concatPath respectively.
3297
3298 20160430:
3299 - The makefile mk_clangw.mak has been improved, such that compilation
3300   with newer versions of clang under Windows works better.
3301 - Tests for integer parse have been added to chkexc.sd7.
3302 - The function doRemove in chkccomp.c has been improved to write
3303   nothing to the console.
3304 - The function showErrors has been added to chkccomp.c.
3305 - In actutl.c the functions searchAction and findAction have been
3306   improved to use fewer parameters and the function getActIllegal
3308 - In chkccomp.c the function writeReadBufferEmptyMacro has been
3309   improved to optionally use _get_stream_buffer_pointers() to define
3311 - The operator 'char conv' has been improved to check if the integer
3312   fits in a character.
3313 - Documentation comments have been improved in float.s7i, poll.s7i,
3314   actlib.c actutl.c, big_gmp.c, big_rtl.c, bln_rtl.c, bst_rtl.c,
3315   chr_rtl.c, cmd_rtl.c, dir_dos.c, dir_win.c, drw_rtl.c, fltlib.c,
3316   flt_rtl.c, int_rtl.c, pcs_rtl.c, pollib.c, pol_sel.c, pol_unx.c,
3317   prg_comp.c, rfl_data.c, setlib.c, set_rtl.c and str_rtl.c.
3318 - Calls of logFunction have been added to cmdlib.c and flt_rtl.c.
3319 - Calls of logError have been added to functions in actlib.c,
3320   biglib.c, bstlib.c, chrlib.c, cmdlib.c, drwlib.c, fillib.c,
3321   fltlib.c, hshlib.c, intlib.c, pcslib.c, pollib.c, prglib.c,
3322   rfl_data.c, rfllib.c, sctlib.c, setlib.c, strlib.c and typlib.c.
3323
3324 20160330:
3325 - The makefile mk_clangw.mak has been added. This makefile supports
3326   compilation under Windows with the clang compiler.
3327 - The experimental function parentDir has been added to osfiles.s7i.
3328 - The experimental function getServerCertificate has been added to
3329   tls.s7i.
3330 - The compiler (s7c) has been improved to use the function
3331   strAppendN, when two or more strings are appended to a string.
3332 - Tests for string append (operator &:= ) have been added to
3333   chkstr.sd7.
3334 - The function strAppendN has been added to str_rtl.c.
3335 - The function strCopy in str_rtl.c has been simplified.
3336 - The program chkccomp.c has been improved to write a definition of
3337   CHAR_BIT, when it is not defined in limits.h.
3338 - Several files have been changed to use CHAR_BIT instead of the
3339   literal 8.
3340 - in chkccomp.c several string literals have been changed to wide
3341   string literals (e.g. L"abc" instead of "abc").
3342 - In several files integer literals have been replaced by constants
3343   or #define macros.
3344 - The function __mulodi4 has been added to int_rtl.c. This function
3345   is used by clang under Windows, but unfortunately is not part of
3346   the runtime library. This situation is recognized by chkccomp.c and
3347   the function __mulodi4 in int_rtl.c is used instead.
3348
3349 20160229:
3350 - The function fltCmp in flt_rtl.c has been improved to work correct
3351   in the case that isnan returns neither 0 nor 1 (Many thanks go to
3352   Arnel L. for reporting this problem).
3353 - The function determineGetaddrlimit in chkccomp.c has been improved
3354   to include <sys/types.h> before <sys/resource.h>. FreeBSD needs
3355   that to work correctly (Many thanks go to Pietro Cerutti for
3356   providing a fix and explaining the background.
3357 - The function getOsCwd has been added to cmd_rtl.c. With this
3358   function it is possible to read (e.g. under Linux) a current
3359   working directory that is longer than PATH_MAX.
3360 - Documentation comments have been improved in encoding.s7i.
3361 - The program chkccomp.c has been improved to write definitions of
3362   USE_DIRENT, USE_DIRWIN, OS_WIDE_DIR_INCLUDE_DIR_H, os_DIR,
3364   INCLUDE_SYS_UTIME, os_utimbuf_struct, USE_ALTERNATE_UTIME,
3365   os_utime_orig, os_utime, os_chdir, OS_GETCWD_MAX_BUFFER_SIZE,
3366   os_getcwd, os_mkdir, os_rmdir, OS_CHMOD_INCLUDE_IO_H, os_chmod,
3367   os_remove, os_rename, os_system, os_fopen, os_popen, os_pclose,
3368   DEFINE_WGETENV, os_getenv
3369 - The functions keys_helem and values_helem in hshlib.c and
3370   hsh_rtl.c have been improved to use a loop instead of a tail
3371   recursion. For compilers that don't recognize the tail recursion
3372   this results in a speed improvement (Gcc recognizes tail
3373   recursions so there is no speed improvement).
3374 - The functions free_helem and free_hash in hsh_rtl.c have been
3375   improved to stop searching for helems as soon as the last helem
3376   has been freed.
3377 - The functions helem_data_to_list and helem_key_to_list have been
3378   improved to use a loop instead of a tail recursion (see above).
3379
3380 20160130:
3381 - A code page for pdf doc encoding has been added to charsets.s7i.
3382 - An optimization for the length of concatenated strings has been
3383   added to the compiler (in file str_act.s7i).
3384 - Checks for the string length function have been added to
3385   chkstr.sd7.
3386 - The checks for the string operators := and &:= have been rewritten
3387   to use one line for each test case.
3388 - The example program rever.sd7 has been improved to allow a level
3389   of 10.
3390 - The compiler has been improved to create code that raises the
3391   exception ACTION_ERROR, when at runtime no implementation function
3392   is found for an interface function.
3393 - The performance of the hash table functions keys (which returns
3394   all keys) and values (which returns all values) has been improved
3395   in interpreted and compiled programs. For an average test case
3396   hshKeys() (in hsh_rtl.c) now uses only 27% of the previous runtime
3397   (measured with gcc and valgrind).
3398 - In hshlib.c the performance of the functions free_hash,
3399   keys_helem, keys_hash, values_helem, values_hash, for_helem,
3400   for_hash, for_key_helem, for_key_hash, for_data_key_helem and
3401   for_data_key_hash has been improved.
3402 - In hsh_rtl.c the performance of the functions free_hash,
3403   keys_helem, keys_hash, values_helem and values_hash has been
3404   improved.
3405 - In listutl.c the performance of the functions helem_data_to_list,
3406   hash_data_to_list, helem_key_to_list and hash_keys_to_list has
3407   been improved.
3408 - Several functions in cmd_rtl.c have been improved to work
3409   correctly, when logError is activated (os_path is freed now after
3410   its last use in logError).
3411
3412 20151216:
3413 - A compiler bug, triggered with a nested function and an array
3414   parameter, has been fixed. Many thanks go to "rfnbs" for providing
3415   an excellent bug report. The bug was fixed by changing the type of
3416   the global variable 'prog' and by saving and restoring the 'prog'
3417   variable in the functions get_create_call_obj and
3418   get_destroy_call_obj.
3419 - The functions toAscii85 and fromAscii85 have been added to the
3420   library encoding.s7i.
3421 - Definitions of for-each-loops, which have an until condition and
3422   loop over the characters of a string, have been added to the
3423   library forloop.s7i.
3424 - The function gzcompress has been added to the library gzip.s7i.
3425 - The type of the global variable 'prog' has been changed from
3426   progRecord to progType (pointer to progRecord).
3427 - Changes have been done in analyze.c, atom.c, blockutl.c, dcllib.c,
3428   doany.c, entutl.c, error.c, exec.c, expr.c, findid.c, findid.h,
3429   match.c, name.c, parser.c, prclib.c, prg_comp.c, prglib.c,
3430   reflib.c, runerr.c, s7.c, sctlib.c, syntax.c, syvarutl.c,
3431   syvarutl.h, traceutl.c and type.c to reflect that the type of the
3432   variable 'prog' changed from struct to pointer to struct.
3433 - The functions get_create_call_obj and get_destroy_call_obj in
3434   executl.c have been changed to save, set and restore the variable
3435   'prog'.
3436 - In chkccomp.c all functions, which have a name starting with
3437   'detemine', have been renamed such that the name starts with
3438   'determine'.
3439
3440 20151129:
3441 - The library bitdata.s7i, which provides functions to read and
3442   write bits to and from strings, has been added.
3443 - The libraries deflate.s7i and inflate.s7i have been changed to use
3444   functions from bitdata.s7i.
3445 - The undocumented function reverseBits has been moved from
3446   deflate.s7i to bitdata.s7i. The meaning of the two parameters has
3447   been changed.
3448 - The constant array reverseBits has been added to bitdata.s7i.
3449   All calls of the function reverseBits have been removed.
3450 - Calls of the function reverseBits in deflate.s7i have been
3451   replaced by usages of the array reverseBits.
3452 - In inflate.s7i two loops have been replaced by usages of the array
3453   reverseBits.
3454 - The library lzw.s7i, which provides support for Lempel-Ziv-Welch
3455   compression and decompression, has been added.
3456 - The function gzuncompress has been added to gzip.s7i. This
3457   function decompresses a string that was compressed with zlib
3458   (RFC 1950).
3459 - The function literal(in char: ch) in seed7_05.s7i has been changed
3460   to write character literals with the new numeric escape sequence.
3461 - In the function detemineOdbcDefines (file chkccomp.c) the test
3462   program, that verifies the linker option for the static lib, has
3463   been improved to work correctly under Windows.
3464 - Definitions for SQLGetData() have been added to db_odbc.h and
3465   sql_odbc.c.
3466 - Support to read a CLOB (Character large object) from an ODBC
3467   database has been added to sql_odbc.c.
3468
3469 20151110:
3470 - The program toutf8.sd7 has been improved to accept byte order
3471   marks for the encodings UTF-16BE and UTF-16LE.
3472 - Documentation comments have been improved in bigint.s7i,
3473   integer.s7i, big_gmp.c, big_rtl.c, bst_rtl.c, flt_rtl.c,
3474   int_rtl.c, pcs_rtl.c, rfl_data.c, set_rtl.c, str_rtl.c and
3475   typ_data.c.
3476 - In analyze.c and prg_comp.c function names and parameter names
3477   have been changed to use camel case.
3478 - The global variable programPath and the function
3479   relativeToProgramPath have been removed. They were only used when
3480   the makefile setting PATHS_RELATIVE_TO_EXECUTABLE was active (this
3481   setting was not used by any makefile for years).
3482 - All explanations related to PATHS_RELATIVE_TO_EXECUTABLE has been
3483   removed from the FAQ and from src/read_me.txt.
3484 - The functions hsh_incl and hsh_update in hshlib.c have been
3485   changed to raise RANGE_ERROR when cmp_func is NULL.
3486
3487 20151029:
3488 - The explanation in the FAQ, how Seed7 programs can be debugged
3489   with Eclipse, has been improved.
3490 - The function commandPath in process.s7i has been improved to
3492 - The functions processOptions and printOptions in s7.c have been
3493   improved to use a parameter instead of a global variable.
3494 - Calls of logFunction have been added to hsh_rtl.c, listutl.c,
3495   match.c and rfl_data.c.
3496 - In striAsUnquotedCStri and bstriAsUnquotedCStri (file striutl.c)
3497   the size of the static char buffer is computed at compile-time
3499 - Several numeric literals have been replaced by defined constants.
3500 - The makefile mk_freebsd.mk has been changed to use numutl.c
3502 - To improve the readability the maximum line length in several C
3503   source files has been reduced.
3504
3505 20151012:
3506 - The program setpaths.c has been changed to work correctly when
3507   the binary release (for Windows) is used.
3508 - Errors in the bigInteger operators +:= and -:= have been fixed.
3509   This errors were triggered with expressions like A +:= A; when the
3510   value of A has a value in a specific range. Thanks go to Fausto C.
3511   for reporting this problem.
3512 - The example program ide7.sd7 has been improved to start programs
3513   as process and to allow their termination.
3514 - The chapter about errors in the manual has been improved.
3515 - The picture terminate_pic has been added to pic16.s7i and
3516   pic32.s7i.
3517 - Checks for +:=, -:= and *:= have been added to chkbig.sd7.
3519   bin32.s7i, bin64.s7i, complex.s7i, des.s7i and tdes.s7i.
3520 - Errors in the functions bigAddAssign and bigSbtrAssign have been
3521   fixed. Now the check for a negative delta is done before the
3522   variable is changed. This fixes the errors with A +:= A; and
3523   A -:= A; .
3524 - The makefile mk_mingc.mak has been improved such that it can be
3525   called without the parameters S7_LIB_DIR and SEED7_LIBRARY.
3526 - The program chkccomp.c has been improved to check if pow() works
3527   correct when the exponent is the maximum odd value that fits in
3528   a float respectively double.
3529 - A buffer in a test program used by chkccomp.c has been enlarged
3530   to avoid a possible buffer overflow.
3531 - Calls of logFunction have been added to big_gmp.c, big_rtl.c and
3532   traceutl.c.
3533 - The definition of CATCH_SIGNALS has been removed from the
3534   makefiles. Now signal handlers are used when one of the functions
3535   sigaction() and signal() is available.
3537   this function is used instead of bstriAsUnquotedCStri(), to write
3539 - The function printParameters() has been added to pcs_unx.c and
3540   pcs_win.c. In log functions this function is now used to print
3541   parameter lists.
3543   from bin64.s7i, binlib.c, binlib.h and primitiv.c.
3544
3545 20150927:
3546 - The library cgidialog.s7i, which provides dialogs that are shown
3547   with a web browser, has been added.
3548 - The example program ide7.sd7 has been added. This program is a
3549   cgi dialog demo program.
3550 - The library browser.s7i, which opens a web browser and provides a
3551   connection to it, has been added.
3552 - The chapter about types in the manual has been improved.
3553 - The compiler has been improved to create code for the action
3554   FLT_DIV_ASSIGN in a way that works with icc (icc has problems
3555   when */ precedes /= ).
3556 - The program chkccomp.c has been improved to write definitions of
3557   OVERFLOW_SIGNAL and PRINTF_SUPPORTS_VARIABLE_FORMATS.
3558
3559 20150914:
3560 - The FAQ has been improved to explain the support for Unicode names
3561   and how Unicode names are activated with a pragma.
3562 - The heap management for strings has been improved to determine the
3563   maximum length of the free lists automatically at run-time. This
3564   improves the runtime, when the compiler (s7c) compiles itself, by
3565   2.7% (measured with gcc and valgrind). In many other situations
3566   this optimization has also a positive effect.
3567 - The interpreter has been improved to allow experimental support
3568   for case statements with a string decision expression.
3569 - The compiler has been improved to use the functions abs()
3570   respectively labs() for the absolute value of an integer (when
3571   overflow checking is switched off).
3572 - Tests for abs have been added to chkint.sd7.
3573 - The example program raytrace.sd7 has been improved to use result
3574   variables with descriptive names.
3575 - The configuration values LONG_SIZE and BOOLTYPE have been added to
3576   cc_conf.s7i.
3577 - Interpreter and compiler have been changed to use the type _Bool
3578   or bool for boolean values, when one of them is available. This
3579   allows some optimizations by the C compiler, since the possible
3580   values are restricted to 0 and 1.
3581 - The deprecated functions open_utf8, open_utf16, open_echo,
3582   open_line, open_tee, open_more, open_upper, open_lower,
3583   open_reverse, open_window and open_field have been removed.
3584   The replacement functions are openUtf8, openUtf16, openEcho,
3585   openLine, openTee, openMore, openUpper, openLower, openReverse,
3586   openWindow and openField.
3587 - The deprecated function removeAnyFile has been removed. The
3588   replacement function is removeTree.
3589 - The macros 'likely' and 'unlikely' have been added to functions in
3590   analyze.c, arrlib.c, biglib.c, bstlib.c, chrlib.c, cmdlib.c,
3591   dcllib.c, drw_win.c, drw_x11.c, fillib.c, fil_unx.c, fil_win.c,
3592   numutl.c, pollib.c, prclib.c, sql_lite.c, sql_my.c, sql_oci.c,
3593   sql_odbc.c, sql_post.c and ut8_rtl.c.
3594 - The definition of the macro logFunction in common.h has been
3595   improved to write the file name.
3596 - Calls of logFunction have been added to arrlib.c, prclib.c,
3597   big_gmp.c, cmd_unx.c cmd_win.c dir_dos.c, dir_win.c, drw_win.c,
3598   set_rtl.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c, sql_post.c
3599   and sql_rtl.c.
3600 - Checks for err_info != OKAY_NO_ERROR have been replaced by checks
3601   for pointer variables being NULL in sql_lite.c, sql_my.c,
3602   sql_oci.c, sql_odbc.c and sql_post.c. Since the address of
3603   err_info is used this variable cannot be placed into a register.
3604 - Several variables have been changed to constants.
3605 - Several calls of strlen() have been replaced with calls of the
3606   macro STRLEN() (STRLEN() computes the string size of a literal at
3607   compile-time).
3608 - The files drw_win.c and tim_win.c have been improved to reduce the
3609   number of C compiler warnings.
3610 - The function setupFiles in fil_win.c has been improved to set only
3611   redirected files to _O_BINARY mode. Real console files are left in
3612   _O_TEXT mode. This way the ENTER key is translated to '\n'.
3613 - The function freelistStatistic has been added to heaputl.c.
3614 - Several definitions have been changed to use a static storage
3615   class.
3616
3617 20150823:
3618 - The example program raytrace.sd7 has been added. This program is a
3619   raytracing demo.
3620 - The library vector3d.s7i, which supports 3D vectors, has been
3622 - The compiler s7c has been improved to create code to manage free
3623   lists for struct data. This avoids many calls of malloc() and
3624   free(). The maximum length of the free lists is determined
3625   automatically at run-time.
3626 - In color.s7i the elements of the type color have been renamed to
3627   redLight, greenLight and blueLight. The files mahjong.sd7 and
3628   draw.s7i have been changed to use the new element names of the
3629   type color.
3630 - The functions doubleToCharBuffer, fltDgts and fltSci in flt_rtl.c
3631   have been improved to work without calls of strlen().
3632 - The function bigHexCStri in big_rtl.c has been improved to use
3633   fewer calls of memmove() and strlen().
3634 - The function process_pragma() in analyze.c has been improved to
3635   use fewer calls of strlen().
3636 - The function opendir in dir_dos.c and dir_win.c has been improved
3637   to work without calls of strcat().
3638 - The functions striAsUnquotedCStri and bstriAsUnquotedCStri in
3639   striutl.c have been improved to use fewer calls of strlen().
3640 - The function cp_to_command in striutl.c has been improved to use
3641   fewer calls of os_stri_strlen.
3642 - The function getcaps in trm_cap.c has been improved to use fewer
3643   calls of strcat().
3644 - The function fix_capability in trm_inf.c has been improved to use
3645   fewer calls of strcat().
3646 - The function strLit in str_rtl.c has been improved to work without
3647   calls of strlen().
3648 - The functions calculate_output_length and print_stri in error.c
3649   have been improved to use fewer calls of strlen().
3650 - The function prot_os_stri has been removed from traceutl.c.
3651 - The macros 'likely' and 'unlikely' have been added to functions in
3652   act_comp.c, analyze.c, arr_rtl.c, big_gmp.c, big_rtl.c, chr_rtl.c,
3653   cmd_rtl.c, cmd_unx.c, cmd_win.c, con_win.c, hshlib.c, hsh_rtl.c,
3654   soc_rtl.c, striutl.c and traceutl.c.
3655 - Checks for err_info != OKAY_NO_ERROR have been replaced by checks
3656   for pointer variables being NULL in cmd_win.c, dir_rtl.c,
3657   fil_rtl.c, pcs_unx.c, pcs_win.c, striutl.c. Since the address of
3658   err_info is used this variable cannot be placed into a register.
3659   The pointer variables used now can be placed into a register.
3660 - Variables in big_rtl.c, dir_rtl.c and striutl.c have been changed
3661   to constants.
3662
3663 20150802:
3664 - An explanation, how Seed7 programs can be debugged with Eclipse,
3665   has been added to the FAQ.
3666 - Checks for the operators << and >> have been added to chkbig.sd7.
3667 - Checks for string comparisons  ( < <= > >= ) and the operator
3668   'mult' have been added to chkstr.sd7.
3669 - The functions bigLShift, bigLShiftAssign, bigRShift and
3671   avoid a signed integer overflow, when the shift count is the most
3672   negative integer.
3673 - The compiler has been improved to optimize code for bigInteger
3674   shifts and compares.
3675 - The compiler has been improved to create inline code for some
3676   string comparisons ( < <= > >= ) and the operator 'mult'.
3677 - In int_rtl.c the function intLpad0 has been improved to avoid a
3678   signed integer overflow when the number is the most negative
3679   integer.
3680 - In numlit.c the functions decimalValue, basedValue, readBigBased,
3681   basedInteger, intExponent and lit_number have been changed to
3682   work with unsigned integers.
3683 - Calls of logFunction have been added to atom.c, doany.c,
3684   entutl.c, exec.c, executl.c, expr.c, findid.c, libpath.c, name.c,
3685   object.c, parser.c, syntax.c, token.c and type.c.
3686 - The type of digit_value elements has been changed to uintType.
3687 - The function drwImage in drw_win.c has been improved to avoid
3688   a multiplication in the inner loop.
3689
3690 20150720:
3691 - The chapter about errors in the manual has been improved.
3692 - In seed7_05.s7i parameter declarations without parameter name
3693   (which use the keyword 'param') have been changed to parameter
3694   declarations with parameter name.
3695 - The compare functions in rational.s7i and bigrat.s7i have been
3696   improved.
3697 - The compiler has been improved to use inline code for the integer
3698   compare function.
3699 - Checks for the compare function have been added to chkint.sd7.
3700 - Checks for hash tables with bigInteger, rational and bigRational
3701   keys have been added to chkhsh.sd7.
3702 - Calls of logError have been added to pcs_unx.c, pcs_win.c and
3703   ref_data.c.
3704 - Calls of logFunction have been added to big_rtl.c, blockutl.c,
3705   drw_win.c, flistutl.c, gkb_win.c, gkb_x11.c, heaputl.c, hshlib.c,
3706   identutl.c, infile.c, listutl.c, pcs_unx.c, pcs_win.c, ref_data.c,
3707   tim_dos.c, tim_unx.c, tim_win.c, trm_inf.c, typ_data.c, typeutl.c
3708   and typlib.c.
3709 - In cc_conf.s7i, flt_act.s7i, cmd_rtl.c and common.h the
3710   configuration value MAX_INTEGER_IN_FLOATTYPE has been renamed to
3711   INT_RANGE_IN_FLOATTYPE_MAX.
3713   str_rtl.c.
3714
3715 20150705:
3716 - The chapters describing statements and object orientation in the
3717   manual have been improved.
3718 - The library tls.s7i has been improved to use explicit
3719   initialization vectors (IVs) for block ciphers, when the TLS
3720   version is 1.1 or higher.
3721 - The library tls.s7i has been improved to avoid raising exceptions,
3722   when the handshake fails.
3723 - The list of supported ciphers in tls.s7i has been changed.
3724 - The functions round and trunc in float.s7i have been improved to
3725   raise RANGE_ERROR, when the float value cannot be represented as
3726   integer.
3727 - The function log2 has been added to the library math.s7i.
3728 - Checks for the functions str, round, trunc and log2 and for the
3729   power operator (**) have been added to chkflt.sd7.
3730 - The comanche webserver has been improved to continue without
3731   exception, when the client closes the socket.
3732 - The comanche webserver now accepts parameters with drive letters.
3733 - The program chkccomp.c has been improved to write definitions of
3734   HAS_LOG2, HAS_CBRT, HAS_EXP, HAS_EXP2, HAS_EXP10,
3735   POW_OF_NAN_OKAY, POW_OF_ZERO_OKAY, POW_OF_ONE_OKAY,
3736   POW_EXP_NAN_OKAY and POW_EXP_MINUS_INFINITY_OKAY.
3737 - The configuration values HAS_LOG2 and HAS_CBRT have been added to
3738   cc_conf.s7i.
3739 - In config.h the configuration macros DO_HEAPSIZE_COMPUTATION,
3740   DO_HEAP_STATISTIC, DO_HEAP_CHECK and CHECK_INT_OVERFLOW have been
3741   changed to have a value of 0 or 1.
3742 - Documentation comments have been improved in cc_conf.s7i,
3743   float.s7i, fltlib.c, str_rtl.c and ut8_rtl.c.
3744 - Calls of logFunction and logError have been added to actutl.c,
3745   fltlib.c, literal.c, sql_rtl.c, striutl.c and ut8_rtl.c.
3746 - The macros 'likely' and 'unlikely' have been added to functions in
3747   arr_rtl.c, int_rtl.c, ref_data.c, rfl_data.c, set_rtl.c, sql_my.c,
3748   sql_rtl.c and strlib.c.
3749 - The definition of ERROR_INFORMATION in soc_rtl.h has been changed
3750   to contain the name of the error variable. Usages of this macro in
3751   pol_sel.c, pol_unx.c and soc_rtl.c have been adjusted.
3752 - The performance of filGets for large files has been improved by
3753   2% (measured with gcc and Valgrind).
3754 - In various Seed7 libraries (*.s7i) parameter declarations without
3755   parameter name (which use the keyword 'param') have been changed
3756   to parameter declarations with parameter name.
3757
3758 20150614:
3759 - The exponentiation operator for float values has been improved to
3760   work correct, when the base is negative zero, one or NaN (not a
3761   number).
3762 - The chapter describing float exponentiation in the manual has been
3763   improved.
3764 - The parse operator for integers has been improved to recognize,
3765   when there is no digit after the sign.
3766 - The makefile mk_msvc.mak has been improved to work without calling
3767   vcvars32 before.
3768 - The function isPositiveZero has been added to float.s7i.
3769 - Checks for the exponentiation with integer and float exponent have
3771 - Checks for the parse operator have been added to chkbig.sd7 and
3772   chkint.sd7.
3773 - Checks for the operators div, rem, mdiv and mod have been added to
3774   chkint.sd7.
3776   fltlib.c and flt_rtl.c.
3777 - The configuration values NAN_COMPARISON_OKAY, POW_FUNCTION_OKAY,
3778   HAS_EXP2, HAS_EXP10, INT_MIN, INT_MAX and MAX_INTEGER_IN_FLOATTYPE
3779   have been added to cc_conf.s7i
3780 - The function intParse in int_rtl.c has been improved to recognize
3781   when there is no digit after the sign.
3782 - Calls of logFunction and logError have been added to analyze.c,
3783   arr_rtl.c, cmd_rtl.c, flt_rtl.c infile.c, numlit.c, numutl.c
3784 - The function defineTempVariable has been added to
3785   comp/expr_util.s7i.
3786 - The functions process_const_flt_ipow and process_const_flt_pow
3787   have been added to comp/flt_act.s7i.
3788 - The function process_const_int_mdiv in comp/int_act.s7i has been
3789   improved.
3790 - The function bigIntToDouble in numutl.c has been improved to use
3791   a right shift instead of a division by two.
3792 - In numutl.c and numutl.h the prototypes of the functions
3793   getDecimalInt, getDecimalBigInt, getDecimalBigRational and
3794   getDecimalFloat have been changed to use ustriType instead of
3795   void *.
3796 - The function getDecimalInt in numutl.c has been improved to do the
3797   conversion without calling intParse.
3798 - The macros logFunctionX and logErrorX have been added to common.h.
3799   This allows the activation of selected logging functions by adding
3800   X.
3801 - In str_rtl.c macro definitions for strelem_memcmp and
3802   search_strelem have been added. The macros are defined, when the
3803   functions wmemcmp respectively wmemchr are available and when they
3804   work with 32-bit data elements.
3805 - The macros 'likely' and 'unlikely' have been added to functions in
3806   striutl.c.
3807 - The files sql_util.c and sql_util.h have been renamed to numutl.c
3808   respectively numutl.h
3809 - The program chkccomp.c has been improved to write definitions of
3810   CAST_INT_TO_FLOAT_OKAY, HAS_EXP2, HAS_EXP10, NAN_COMPARISON_OKAY,
3811   FLOAT_ZERO_TIMES_INFINITE_OKAY, NAN_MULTIPLICATION_OKAY,
3812   NAN_DIVISION_OKAY, POWER_UNDERFLOW_WITH_SIGN, POWER_OF_ZERO_OKAY,
3813   POWER_OF_ONE_OKAY, POWER_OF_NAN_OKAY, PRINTS_NEGATIVE_ZERO,
3814   MAX_INTEGER_IN_FLOAT, MAX_INTEGER_IN_DOUBLE, HAS_WMEMCMP,
3815   HAS_WMEMCHR and HAS_WMEMSET.
3816 - Definitions of C_COMPILER_SCRIPT and GET_CC_VERSION_INFO_OPTIONS
3817   have been added to mk_msvc.mak. This definitions are used by the
3818   program setpaths.c to write definitions of the macros C_COMPILER
3819   and GET_CC_VERSION_INFO to version.h
3820
3821 20150601:
3822 - Interpreter and compiler have been improved to work correctly, when
3823   the function body (the part between 'begin' and 'end') consists of
3824   one symbol (e.g.: begin test end; ).
3825 - The parse operator for float values has been improved to work like
3826   the corresponding function that reads literals in a Seed7 program.
3827 - The parse operator for float values has been changed to forbid
3828   hex literals (that the underlying C function might allow).
3829 - In cli_cmds.s7i the copy and move commands have been fixed to work
3830   correctly, when the target file is specified.
3831 - Checks for division by zero (with div, mdiv, mod and rem) have been
3832   added to chkbig.sd7 and chkint.sd7.
3833 - Checks for log2 and log10 with negative argument have been added to
3834   chkbig.sd7 and chkint.sd7.
3835 - Checks if RANGE_ERROR is raised by the operators parse, digits, and
3836   sci have been added to chkflt.sd7
3837 - Checks for the sci operator have been added to chkflt.sd7.
3838 - Checks for factorial with negative numbers have been added to
3839   chkint.sd7.
3840 - Checks if RANGE_ERROR is raised by the parse operator have been
3842 - In chkbig.sd7 the functions chkGrow, chkShrink and chkMultCopy have
3843   been renamed to chkAddAssign, chkSubtractAssign and chkMultAssign
3844   respectively.
3845 - The function defineTempVariable has been added to
3846   lib/comp/expr_util.s7i and used in several compiler files.
3847 - Changes to avoid signed unsigned mismatches in comparisons have
3848   been done in actIConv (act_comp.c), act_iconv (actlib.c) and
3849   bigParseBased2To36 (big_rtl.c)
3850 - Explicit casts to void (document that a function result is ignored)
3851   have been added to chrCLitToBuffer (chr_rtl.c) and bigLog10
3852   (big_rtl.c).
3853 - The functions getEnvironment and freeEnvironment have been added to
3854   cmd_win.c.
3855 - The file con_emc.c has been added. This file contains a (dummy)
3856   driver for emcc (JavaScript) console access.
3857 - The file stat_win.c has been added. This file defines the functions
3858   wstati64() and fstati64().
3859 - The program chkccomp.c has been improved to write definitions of
3860   os_isnan, os_isinf, DOUBLE_MIN_EXP10, MIN_PRINTED_EXPONENT_DIGITS,
3861   MAX_PRINTED_EXPONENT_DIGITS, STRTOD_ACCEPTS_HEX_NUMBERS,
3862   ATOF_ACCEPTS_HEX_NUMBERS, STRTOD_ACCEPTS_DENORMAL_NUMBERS,
3864 - The config value ISNAN_WITH_UNDERLINE has been removed. Instead the
3865   macro os_isnan has been defined.
3867 - In match.c the function match_symbol() has been added and used in
3868   match_object().
3869 - The function dllSym has been renamed to dllFunc. The function
3870   dllFunc returns a function pointer instead of a void pointer.
3871   This silences warnings issued by some C compilers.
3872   The sql_*.c drivers have been changed to use dllFunc.
3873 - Calls of logError have been added or improved in act_comp.c,
3874   arr_rtl.c, big_gmp.c, big_rtl.c, bst_rtl.c, cmd_rtl.c, cmd_win.c,
3875   dir_rtl.c, fil_rtl.c, fil_unx.c, fil_win.c, flt_rtl.c, hsh_rtl.c,
3876   intlib.c, pcs_unx.c, set_rtl.c and stat_win.c.
3877 - Calls of logFunction have been added or improved in arr_rtl.c,
3878   big_rtl.c, chr_rtl.c, cmd_rtl.c, dir_rtl.c, fil_rtl.c, fil_unx.c,
3879   fil_win.c, flt_rtl.c, gkb_win.c, int_rtl.c, s7.c, set_rtl.c,
3880   stat_win.c, tim_rtl.c
3881
3882 20150517:
3883 - Error messages in cli_cmds.s7i have been improved.
3884 - The function getHttp with a httpLocation parameter has been added
3885   to gethttp.s7i.
3886 - The structure httpRequest in httpserv.s7i has been improved to
3887   contain a field for the header.
3889   getAttrValue, getAttributes, getSubNodes and getContent in
3890   xmldom.s7i.
3891 - The function readXml with a string parameter has been added to
3892   xmldom.s7i.
3893 - The comanche webserver has been improved to respond with 405
3894   (Method Not Allowed), when the request method is unknown.
3895 - The check for phaser energy in startrek.sd7 has been improved.
3896 - The function fltSci in flt_rtl.c has been improved to check for
3897   PRINTF_FMT_E_MAXIMUM_FLOAT_PRECISION.
3898 - Declarations of sqlite3_db_handle() and sqlite3_errmsg() have been
3899   added to db_lite.h and sql_lite.c.
3900 - The functions assertCompAndLnk and assertCompAndLnkWithOptions
3901   have been added to chkccomp.c.
3902 - The function numericProperties in chkccomp.c has been improved
3903   to determine more values from test programs.
3904 - The makefiles have been changed to define the linker options for
3905   libraries before chkccomp is executed.
3906 - The macro safe_fileno has been added to os_decls.h. This macro
3907   is used in logging functions to avoid a segmentation violation,
3908   when a FILE is NULL.
3909 - Calls of logFunction and logError have been added to big_gmp.c,
3910   big_rtl.c, drw_rtl.c, drw_win.c, drw_x11.c, fil_rtl.c, flt_rtl.c,
3911   gkb_win.c, gkb_x11.c, int_rtl.c, prg_comp.c, str_rtl.c and
3912   ut8_rtl.c.
3913
3914 20150503:
3915 - The example program cat.sd7 has been added. The program
3916   concatenates and prints files. Thanks go to Brian Callahan for
3917   providing it.
3918 - The makefile mk_emccw.mak has been added. This makefile supports
3919   compiling with the emcc C compiler from Emscripten. The support of
3921 - Documentation comments have been improved in osfiles.s7i, utf8.s7i,
3922   cmd_rtl.c and ut8_rtl.c.
3923 - Various changes have been done in chkccomp.c. Many configuration
3924   settings are now always defined and have a value of 0 or 1. The
3925   corresponding #ifdef directives in the C source files have been
3926   changed to #if directives.
3927 - The library comp/int_act.s7i has been changed to use only
3928   ccConf.CHECK_INT_REM_BY_ZERO for the operators 'rem' and 'mod'.
3929 - In cmd_rtl.c the function cmdFileType has been changed to return
3931 - In fil_rtl.c the functions seekFileLength(), offsetTell() and
3932   offsetSeek() have been improved to fail for terminal devices such
3933   as stdin. Under OpenBSD fseek() and ftell() succeeded in this case.
3934 - In drw_x11.c the functions drwPut() and drwSetTransparentColor()
3935   have been changed to consider a pixmap with a window of 0 as empty.
3936 - Calls of logFunction and logError have been added to fil_rtl.c,
3937   soc_rtl.c, str_rtl.c, tim_unx.c and ut8_rtl.c.
3938
3939 20150419:
3940 - The library httpserv.s7i, which supports HTTP server and HTTP
3942 - The comanche webserver has been changed to use the library
3943   httpserv.s7i.
3944 - The example program which.sd7 has been added. This program locates
3945   in which directory a command is found.
3946 - In shell.s7i the modes used for popen and popen8 have been changed.
3947   Now a pipe can be opened with the binary modes "r" (read) and
3948   "w" (write), or with the text modes "rt" (read) and "wt" (write).
3949 - Variants of the functions popen and popen8, which use an array of
3950   parameters, have been added to shell.s7i.
3951 - In tls.s7i the function gets has been changed to return as soon as
3952   data is available. This behavior corresponds to the gets function
3953   in socket.s7i.
3954 - Checks for the radix operator have been added to chkbig.sd7 and
3955   chkint.sd7.
3956 - Interpreter and compiler have been improved such that the files
3957   STD_IN, STD_OUT and STD_ERR are in binary mode.
3958 - The function doRemove in chkccomp.c has been improved to check for
3959   the presence of the file before it is removed.
3960 - The function checkPopen has been been added to chkccomp.c.
3961 - The function cmdShellEscape in cmd_rtl.c has been improved. Now all
3962   characters except '\0;', '\n' and '\r' can be escaped ('\r' can be
3963   escaped under Linux/Unix/BSD).
3964 - Now there are two versions of cmdShellEscape and the define
3965   variable ESCAPE_SHELL_COMMANDS decides which one is used.
3966 - The function filPopen has been changed, to open a pipe in binary or
3967   text mode.
3968 - In fil_rtl.c the function read_and_alloc_stri has been changed to
3969   read the data into a list of buffers. Afterwards the string is
3970   allocated, the data is copied and the buffer list is freed. This
3971   improves the performance, when the file is a pipe.
3972 - In fil_rtl.c the function doGetsFromTerminal has been changed to
3973   check for a negative length.
3975   function reads the data into a list of buffers. Afterwards the
3976   string is allocated, the data is copied and the buffer list is
3977   freed.
3978 - In soc_rtl.c the function socGets has been improved to use
3979   read_and_alloc_stri, when the requested length is larger than 1 MB.
3980 - In soc_rtl.c the function socWrite has been improved to call send()
3981   again, when not all data has been written.
3982 - In prclib.c the functions prc_block_catch_all and
3983   prc_block_otherwise have been improved to free the fail_stack.
3984   This way the call stack that is written, when an exception
3985   terminates the program, is always correct.
3986 - The function escape_command in striutl.c has been improved.
3987 - Verbose exceptions have been added to big_rtl.c, fil_rtl.c,
3988   pol_sel.c, pol_unx.c and soc_rtl.c.
3989 - The logging of C functions in big_rtl.c, cmd_rtl.c, fil_rtl.c,
3990   hsh_rtl.c, int_rtl.c, pcs_rtl.c, pcs_unx.c, pcs_win.c, prg_comp.c,
3991   soc_rtl.c, str_rtl.c, tim_dos.c, tim_rtl.c, tim_unx.c and tim_win.c
3992   has been changed to use the macro logFunction.
3993 - The definition of the macro logError has been removed from various
3994   C files. The new definition of logError is in common.h.
3995 - Trace output has been added to fil_rtl.c.
3996 - Documentation comments have been improved in process.s7i shell.s7i,
3997   socket.s7i, big_rtl.c, fillib.c
3998
3999 20150405:
4000 - A cache for client sessions has been added to tls.s7i. This allows
4001   that a TLS connection can be resumed (without a new negotiation of
4002   the security parameters).
4003 - The comanche webserver has been improved to keep connections open
4004   for 15 seconds.
4005 - The functions compare and hashCode for the type socketAddress have
4007 - A new variant of openServerTls, with a certAndKey parameter, has
4009 - The functions validityType, createX509Cert, certAndKey and
4010   selfSignedX509Cert have been added to x509cert.s7i.
4011 - The constant stdRsaKeyPair has been added to pkcs1.s7i.
4013   socket.s7i.
4014 - In duration.s7i the functions YEARS, MONTHS, DAYS, HOURS, MINUTES,
4015   SECONDS and MICRO_SECONDS have been improved to normalize the
4016   duration value.
4017 - The functions sendGet (gethttp.s7i) and sendHttpResponse
4018   (comanche.sd7) have been change to send the request/response with
4019   one write statement.
4020 - The library tls.s7i has been improved to accept client-hello and
4021   server-hello messages with extensions.
4022 - The functions openTlsSocket and openServerTls (in tls.s7i) have
4023   been improved to avoid exceptions, when an alert message is
4024   received or a socket is closed.
4025 - In tls.s7i the function write has been changed to send long strings
4026   with several messages.
4027 - Tests for the operators parse and radix and for the function
4028   bigInteger have been added to chkbig.sd7.
4029 - The functions openHttpSession, closeHttpSession, processHttpRequest
4030   and cleanSessions have been added to comanche.sd7.
4031 - Trace output and verbose exceptions have been added to various
4032   functions in big_rtl.c, soc_rtl.c, int_rtl.c and str_rtl.c.
4033 - The functions striAsUnquotedCStri and bstriAsUnquotedCStri have
4035 - In traceutl.c the functions prot_stri_unquoted and prot_bstri have
4036   been changed to use striAsUnquotedCStri and bstriAsUnquotedCStri
4037   respectively.
4038 - Interpreter and compiler have been improved to support the actions
4041
4042 20150322:
4043 - The program chkchr.sd7 has been added. This program checks the
4044   correctness of the functions isLetter and width. Thanks go to
4045   Arkady Kuleshov for providing chkchr.sd7.
4046 - Interpreter and compiler have been improved to allow Unicode names.
4047   This functionality is inspired by patches from Arkady Kuleshov.
4048   Unicode names are switch off by default. They must be activated
4049   with the pragma: names unicode; 4050 - The library smtp.s7i, with support for SMTP (simple mail transfer 4051 protocol), has been added. 4052 - Interpreter and compiler have been changed to write an error 4053 message, when a deprecated string escape sequence (e.g.: "\7\") 4054 is used instead of a new escape sequence (e.g.: "\7;"). 4055 - The function getHttpLocation in gethttp.s7i has been improved to 4056 handle IPv6 addresses correctly. 4057 - In cli_cmds.s7i error messages have been added to doCopyCmd and 4058 doMoveCmd. 4059 - Documentation comments have been added or improved in console.s7i, 4060 ftp.s7i and cli_cmds.s7i. 4061 - Checks for the function bigInteger have been added to chkbig.sd7. 4062 - Checks for the integer for-loop have been added to chkprc.sd7. 4063 - In big_rtl.c the functions bigParseBasedPow2 and bigParseBased2To36 4064 have been improved to raise RANGE_ERROR when a digit is too big. 4065 - The program chkccomp.c has been changed to use test programs for 4066 various settings. This has been done to allow that chkccomp.c can 4067 be compiled with any compiler (not just the one that is to be 4068 tested). 4069 - The function write_position_info has been added to runerr.c. 4070 - In runerr.c the function write_call_stack has been improved to 4071 catch the signal SIGSEGV. 4072 - The function scan_symbol_utf8 has been added to scanner.c. 4073 - The functions prot_cstri8 and prot_string have been added to 4074 traceutl.c. 4075 - The function escape_sequence in literal.c has been changed to write 4076 an error when a deprecated string escape sequence is used. 4077 - The function utf8_char in literal.c has been changed to save the 4078 UTF-8 sequence. 4079 - The function basedValue in numlit.c has been changed to write the 4080 error ILLEGALBASEDDIGIT with the correct digit. 4081 - In prclib.c the functions prc_for_downto, prc_for_downto_step, 4082 prc_for_to and prc_for_to_step have been changed such that the 4083 loop variable has a defined value after the loop. After the 4084 for-loop the loop variable must be beyond the upper bound (or below 4085 the lower bound for for-downto-loops). 4086 - In doany.c the functions do_flush, do_wrnl and do_wrstri have been 4087 changed to allow that outfile is from a different program. 4088 4089 20150308: 4090 - The compile time error messages have been improved. Now Unicode 4091 characters in the error line are displayed correctly. Before they 4092 have been displayed as question marks (?). When the error line is 4093 written to a console the encoding of the operating system is used. 4094 When stdout has been redirected to a file the error line is encoded 4095 with UTF-8. Thanks go to Arkady Kuleshov for triggering this 4096 improvement. The patch proposed by Arkady is based on stdout and 4097 UTF-8. The actual implementation uses a different approach via the 4098 console driver con_drv.h. The console driver uses UTF-16 under 4099 Windows (unless stdout has been redirected) and UTF-8 under 4100 Linux/Unix/BSD. 4101 - The function getBinary has been added to bin64.s7i. This function 4102 returns 64 bits from a bitset starting with a given bit number. 4103 - The compiler has been changed to use the function getBinary to 4104 generate bitset literals. 4105 - Interpreter and compiler have been improved to support the actions 4106 BIN_GET_BINARY_FROM_SET, PRC_FOR_DOWNTO_STEP and PRC_FOR_TO_STEP. 4107 - The compiler function AppendWithDiagnostic has been renamed to 4108 appendWithDiagnostic. 4109 - The function appendWithDiagnostic in comp/debug.s7i has been 4110 improved to add #line directives only when they are missing. 4111 - The function defineTempConstant has been added to expr_util.s7i. 4112 - The functions process_const_bin_radix and process_bin_radix in 4113 comp/bin_act.s7i have been improved to use uintRadix() and 4114 uintRadixPow2() for the actions BIN_radix and BIN_RADIX. 4115 - The generation of for-loops in comp/prc_act.s7i has been improved. 4116 - A definition of an integer for-loop with step has been added to 4117 forloop.s7i. Before integer for-loops with step were defined with 4118 the template FOR_STEP_DECLS. 4119 - The functions prc_block, prc_block_catch_all, prc_block_otherwise, 4120 prc_repeat and prc_while in prclib.c have been improved to check 4121 for fail_flag with the macro unlikely(). 4122 - The functions check_for_int_to and check_for_int_downto in 4123 chkprc.sd7 have been improved. 4124 - The program err.sd7 has been improved. 4125 - The program chkccomp.c has been changed to write the version 4126 information to stdout when no file name has been provided as 4127 argument. 4128 - A definition of the macro chrStrMacro has been added to chr_rtl.h. 4129 - The function utf8_char in literal.c has been changed to call 4130 next_character() before reporting the errors CHAR_ILLEGAL, 4131 OVERLONG_UTF8_ENCODING, UTF16_SURROGATE_CHAR_FOUND and 4132 CHAR_NOT_UNICODE. 4133 - The functions read_ustri8_line, ustri8_buffer_to_stri, 4134 calculate_output_length, print_stri and read_and_print_line have 4135 been added to error.c 4136 4137 20150216: 4138 - The functions isLetter and width have been added to the library 4139 char.s7i. Compiler and interpreter have been changed to support 4140 this functions. Thanks go to Arkady Kuleshov for providing a patch. 4141 - The library unionfnd.s7i and the program percolation.sd7 have been 4142 added. Thanks go to Arkady Kuleshov for providing them. 4143 - The makefile mk_icc.mak has been added. This makefile supports 4144 compiling with the icc C compiler. 4145 - The library bin64.s7i, a 64-bit binary value support library, has 4146 been added. 4147 - The functions fourBytesLeToBin32, fourBytesBeToBin32, 4148 bin32AsFourBytesLe and bin32AsFourBytesBe have been added to 4149 bin32.s7i. 4150 - The functions bigAsEightBytesLe and bigAsEightBytesBe have been 4151 added to bytedata.s7i 4152 - Interpreter and compiler have been improved to support the actions 4153 BIN_STR, BIN_radix, BIN_RADIX, BIN_AND, BIN_OR, BIN_XOR, 4154 BIN_LSHIFT, BIN_RSHIFT, BIN_LSHIFT_ASSIGN, BIN_RSHIFT_ASSIGN, 4155 BIN_AND_ASSIGN, BIN_OR_ASSIGN, BIN_XOR_ASSIGN, CHR_IS_LETTER and 4156 CHR_WIDTH. 4157 - The support for the actions INT_AND, INT_AND_ASSIGN, INT_OR, 4158 INT_OR_ASSIGN, INT_ULSHIFT, INT_ULSHIFT_ASSIGN, INT_URSHIFT, 4159 INT_URSHIFT_ASSIGN, INT_XOR and INT_XOR_ASSIGN has been removed 4160 from interpreter and compiler. 4161 - The compiler library comp/bin_act.s7i has been added. 4162 - The functions isConstantCall and isPureFunction in comp/const.s7i 4163 have been improved. 4164 - The functions uintRadix, uintRadixPow2 and uintStr have been added 4165 to int_rtl.c. 4166 - The function bld_binary_temp has been added to objutl.c. 4167 4168 20150201: 4169 - The option -p of the interpreter (Specify a protocol file, for 4170 trace output) has been documented in FAQ, s7.1 and in the help 4171 function of the interpreter. 4172 - The behavior of a Seed7 program, when it receives a signal, has 4173 changed. Now a program is terminated, when it receives a signal. 4174 The old behavior, that asks for RETURN or '*', is used when 4175 interpreter or compiler are called with the option -ts. 4176 - The option -ts of interpreter and compiler (Trace signals) has 4177 been documented in FAQ, s7.1, s7c.1 and in the help functions of 4178 the programs. 4179 - Documentation comments in integer.s7i, bigint.s7i and char.s7i have 4180 been improved. 4181 - The runtime of the function bitsetElemAsHex (in comp/set_act.s7i) 4182 has been improved by a factor of 7 (measured with gcc and 4183 Valgrind). 4184 - The operator sci has been improved in integer.s7i and bigint.s7i. 4185 - The function check_sci, which checks the sci operator, has been 4186 added to chkint.sd7. 4187 - The function check_str, which checks the str function, has been 4188 added to chkset.sd7. 4189 - The function doRemoveCmd in cli_cmds.s7i has been improved to write 4190 a message when the operation is not permitted. 4191 - The compiler has been improved to generate better code for the 4192 action STR_MULT. 4193 - The function check_string_mult, which checks string 4194 multiplications, has been added to chkstr.sd7. 4195 - The function bitsetNonZero has been added to set_rtl.c. This 4196 function uses loop unrolling inspired by Duff's device. 4197 - The function setNext (in set_rtl.c) has been changed to call 4198 bitsetNonZero. This improves the speed of setNext by a factor of 2 4199 (measured with gcc and Valgrind). 4200 - The function strMult in str_rtl.c has been improved to use a binary 4201 method for string multiplication. This improves the speed of 4202 strMult by a factor of 2 (measured with gcc and Valgrind). 4203 - The function drwEmpty has been added to drw_x11.c drw_win.c and 4204 drw_dos.c. 4205 4206 20150118: 4207 - The performance of the function bytes2Int in bytedata.s7i has been 4208 improved by 10% (measured with gcc and valgrind). An intermediate 4209 function has been removed and a boolean parameter has been omitted 4210 from the underlying C function . 4211 - The function check_string_concat, which contains checks for string 4212 concatenation, has been added to chkstr.sd7. 4213 - Improvements have been done in gethttp.s7i and tls.s7i to avoid 4214 blocking and exceptions, when a socket is closed or unexpected data 4215 is read. 4216 - Several optimizations in the compiler (s7c) have been done: 4217 - The function optimize_str_cat has been added to comp/str_act.s7i. 4218 This function optimizes sequences of string concatenations. 4219 - The flag prefer_result_expr has been added to the struct 4220 expr_type in comp/expr.s7i. With this flag it can be requested 4221 that a parameter is preferred as result_expr (the value is 4222 allocated at the heap). 4223 - The function process_int_str has been added to int_act.s7i. 4224 This function is used for INT_STR and for the radix operator 4225 when the base is 10. 4226 - The program chk_all.sd7 has been changed to ignore the exception 4227 FILE_ERROR, when it is raised by some calls of removeFile. 4228 - In int_rtl.c the functions intBytesBe2Int and intBytesLe2Int have 4229 been changed to convert only signed values (in twos-complement 4230 representation). The parameter isSigned has been removed. 4231 - The functions intBytesBe2UInt and intBytesLe2UInt have been added 4232 to int_rtl.c. This functions convert unsigned values. 4233 - The function write_place in error.c has been fixed to write the 4234 correct file name and line. This error has been introduced in 4235 version 2014-09-07, when the function write_place has been added. 4236 - A definition and calls of the macro logError have been added to 4237 fil_rtl.c and soc_rtl.c. 4238 - A version of the function alloc has been added to progs.s7i. This 4239 version allocates a string object. 4240 - The functions prot_params and prot_name in traceutl.c have been 4241 improved to write syntax with keywords at the beginning and at the 4242 end correctly. 4243 - In ref_data.c the functions refAlloc, refArrMaxIdx, refArrMinIdx, 4244 refArrToList, refBody, refCategory, refFile, refHshDataToList, 4245 refHshKeysToList, refIsVar, refItfToSct, refLine, refLocalConsts, 4246 refLocalVars, refNum, refParams, refResini, refResult, 4247 refSctToList, refStr, refType, actValue, bigValue, blnValue, 4248 bstValue, chrValue, drwValue, filValue, fltValue, intValue, 4249 pcsValue, polValue, prgValue, refValue, rflValue, setValue, 4250 strValue and typValue have been changed to use const parameters. 4251 - The actions INT_BYTES_BE and INT_BYTES_LE have been replaced by 4252 INT_BYTES_BE_SIGNED, INT_BYTES_BE_UNSIGNED, INT_BYTES_LE_SIGNED and 4253 INT_BYTES_LE_UNSIGNED. 4254 - The actions INT_BYTES_BE_2_UINT, INT_BYTES_LE_2_UINT and 4255 REF_ALLOC_STRI have been added. 4256 4257 20150104: 4258 - In sql_post.c the function swap64 has been renamed to swapUInt64. 4259 Thanks go to Brian Callahan for reporting that OpenBSD already has 4260 a function called swap64(). 4261 - The library aes.s7i with AES (Advanced Encryption Standard) cipher 4262 support has been added. 4263 - The library tls.s7i has been improved to allow encoding with AES. 4264 - The functions fileType and fileTypeSL have been added to ftp.s7i. 4265 - The handling of the command ls -l in the program ftp7.sd7 has been 4266 improved to write the file type. 4267 - The compilation of the action ARR_IDX in the compiler (file 4268 arr_act.s7i) has been improved. 4269 - In des.s7i and tdes.s7i all occurrences of subkey have been renamed 4270 to subKey. 4271 - In sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c the 4272 function setupFuncTable has been changed to use count.sql_func 4273 (defined in heaputl.h). 4274 4275 20141223: 4276 - The chapter about primitive actions in the manual has been 4277 improved. 4278 - The compiler optimization of bigInteger divisions and 4279 multiplications by -1 has been improved. 4280 - Tests of bigInteger divisions and multiplications have been added 4281 to chkbig.sd7. 4282 - The functions fltDgts and fltSci have been improved to allow a 4283 precision greater than 1000. 4284 - Tests of the operators digits and sci with large precision values 4285 have been added to chkflt.sd7. 4286 - In drw_x11.c the functions drwHeight and drwWidth have been 4287 improved to avoid a call of XGetGeometry, when the window is a 4288 pixmap. This significantly improves the writing with Seed7 fonts 4289 under Mac OS X. 4290 - The compiler has been improved to limit the length of generated C 4291 float literals to 100 characters. The length of a float literal 4292 accepted by the cl C compiler from msvc is limited. 4293 - The function doubleToCharBuffer in flt_rtl.c has been improved to 4294 work correctly for numbers with big and small exponents. 4295 - Tests of float to string conversions have been added to chkflt.sd7. 4296 The tested float values have exponents from the allowed range. 4297 - The function bigAddAssignSignedDigit (former bigGrowSignedDigit) in 4298 big_rtl.c has been changed to mask the delta value with 4299 BIGDIGIT_MASK. 4300 - The functions numericSizes and deteminePostgresDefines in 4301 chkccomp.c have been improved. Now the macros INT32_SUFFIX, 4302 UINT32_SUFFIX, INT32TYPE_LITERAL_SUFFIX, INT32TYPE_FORMAT, 4303 INT64_SUFFIX, UINT64_SUFFIX, INT64TYPE_LITERAL_SUFFIX and 4304 INT64TYPE_FORMAT are written by chkccomp.c instead of being defined 4305 in common.h. 4306 - The function findPgTypeInclude has been added to chkccomp.c. 4307 - The check for the function __builtin_expect in chkccomp.c has been 4308 improved. 4309 - The actions BIG_GROW, BIG_SHRINK, FLT_GROW, FLT_SHRINK, INT_GROW 4310 and INT_SHRINK have been renamed to BIG_ADD_ASSIGN, 4311 BIG_SBTR_ASSIGN, FLT_ADD_ASSIGN, FLT_SBTR_ASSIGN, INT_ADD_ASSIGN 4312 and INT_SBTR_ASSIGN respectively. 4313 - In big_rtl.c and big_gmp.c the functions bigGrowSignedDigit, 4314 bigGrow and bigShrink have been renamed to bigAddAssignSignedDigit, 4315 bigAddAssign and bigSbtrAssign respectively. 4316 - A check for DEFAULT_DECIMAL_PRECISION in sql_odbc.c has been 4317 corrected. 4318 4319 20141210: 4320 - The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c 4321 and sql_post.c have been improved to select a shared library / DLL 4322 from a list of candidates. 4323 - The program chkccomp.c has been improved to configure database 4324 drivers with a list of shared libraries / DLLs. 4325 - The makefiles mk_bcc32.mak, mk_bccv5.mak, mk_msvc.mak, mk_msys.mak, 4326 mk_mingc.mak, mk_mingw.mak and mk_nmake.mak have been improved to 4327 write definitions of the C macros MYSQL_DLL, SQLITE_DLL and 4328 POSTGRESQL_DLL to the file chkccomp.h. 4329 - The chapters about integer, rational and exceptions in the manual 4330 have been improved. 4331 - In bigint.s7i the performance of the binomial coefficient operator 4332 (infix operator symbol: ! ) has been improved by 17% (measured with 4333 gcc and valgrind). 4334 - The optimization of constant expressions in the compiler has been 4335 improved. 4336 - The program esc2qte.c has been added. This program searches for 4337 backslash escaped spaces and quotes the string instead. It is used 4338 by mk_nmake.mak to process the file depend. 4339 - Documentation comments in integer.s7i have been improved. 4340 - The recognition of integer formats in chkccomp.c has been improved 4341 (the test programs now include <string.h>). 4342 - The makefiles mk_msys.mak and mk_nmake.mak have been improved to 4343 use wrdepend.exe to determine the dependencies. 4344 - The program wrdepend.c has been changed to include config.h (this 4345 way the macro MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS is available). 4346 - A cast has been added to sudo.c. 4347 4348 20141207: 4349 - The paragraph in src/read_me.txt, that describes the compilation 4350 under Mac OS X, has been improved. 4351 - The function bigIPow1 in big_rtl.c has been changed to call 4352 bigLog2BaseIPow instead of bigLShiftOne when the base is a power of 4353 two. This avoids an integer overflow when the shift count is 4354 computed. 4355 - The function fltIPow in flt_rtl.c has been changed to avoid a 4356 division by zero when CHECK_FLOAT_DIV_BY_ZERO has been defined. 4357 - The function fltIPow in flt_rtl.c has been improved to return 4358 -Infinity for (-0.0) ** n when n is negative. 4359 - The function uint_rand (in int_rtl.c) has been renamed to uintRand 4360 and changed to omit the initialization of the random seed. 4361 - The function setupRand has been added to int_rtl.c. This function 4362 initializes the random seed of uintRand. 4363 - The function uintRandLimited has been added to int_rtl.c. 4364 - The runtime of the integer random number generator has been reduced 4365 to 45%. 4366 - The compiler has been improved to generate optimized code for 4367 special cases of the action INT_RAND. For special cases the 4368 functions uintRand and uintRandLimited are used instead of intRand. 4369 - The compiler has been improved to optimize the binomial coefficient 4370 operator (infix operator symbol: ! ). 4371 - Tests for the binomial coefficient (infix operator symbol: ! ) have 4372 been added to chkint.sd7 and chkovf.st7 4373 - Tests for the integer random number generator have been added to 4374 chkint.sd7. 4375 - Tests for powers of negative zero have been added to chkflt.s7i. 4376 - The database interface headers db_lite.h, db_my.h, db_oci.h, 4377 db_odbc.h and db_post.h have been added. This include files are 4378 used when the original database include files are not available. 4379 - The functions decimalValue and basedValue in numlit.c have been 4380 improved to use an unsigned integer value and a simplified test for 4381 the maximum value of a literal. The change reduces the runtime of 4382 decimalValue by 6% (measured with gcc and valgrind). 4383 - The function intBinom (in int_rtl.c) has been improved to work 4384 correctly as long as the result is representable in an integer of 4385 type intType. When the result is not representable in an integer 4386 the exception OVERFLOW_ERROR is raised. 4387 - The function uintBinomNoChk has been added to int_rtl.c. This 4388 special case function is used by the compiler, when n_number is 4389 less than a limit. 4390 - The function intSafeMult has been renamed to intMultOvfChk. 4391 - The makefile mk_osxcl.mak has been added. This makefile supports 4392 compilation under Mac OS X with the clang compiler. 4393 - The file sql_ite.c has been renamed to sql_lite.c. 4394 - The makefiles have been improved to write additional macros to 4395 chkccomp.h. This macros are used by chkccomp.c to do the database 4396 investigation. 4397 - The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c 4398 and sql_post.c have been improved. 4399 - The configuration program chkccomp.c has been improved: 4400 - Now it writes definitions of INT8TYPE and INT16TYPE to version.h. 4401 - Now it adds /opt/X11/include to the include path, when 4402 /usr/include/X11 does not exist. This is required for Mac OS X. 4403 - The functions that write define macros for databases have been 4404 improved to take the new database interface headers (db_*.h) into 4405 account. 4406 4407 20141116: 4408 - The type process has been added to the library process.s7i. The 4409 type process is used to manage child processes. 4410 - The functions compare, hashCode, str, exitValue isAlive, 4411 startProcess, kill and waitFor have been added to process.s7i. 4412 - Support for the actions CMD_PIPE2, CMD_PTY and CMD_START_PROCESS 4413 has been removed from interpreter and compiler. 4414 - Support for the actions PCS_CMP, PCS_CPY, PCS_EQ, PCS_EXIT_VALUE, 4415 PCS_HASHCODE, PCS_IS_ALIVE, PCS_KILL, PCS_NE, PCS_PIPE, PCS_PTY, 4416 PCS_START, PCS_STR, PCS_VALUE and PCS_WAIT_FOR has been added to 4417 interpreter and compiler. 4418 - The files pcs_rtl.c, pcs_rtl.h, pcs_unx.c, pcs_win.c, pcs_drv.h, 4419 pcslib.c, pcslib.h and pcs_act.s7i have been added. 4420 - The functions freeArgVector, genArgVector have been moved from 4421 cmd_unx.c to pcs_unx.c. 4422 - The function prepareCommandLine has been moved from cmd_win.c to 4423 pcs_win.c. 4424 - The makefiles have been improved to consider the files necessary 4425 for process support. 4426 4427 20141102: 4428 - The files to generate man pages for Seed7 interpreter and compiler 4429 (files doc/s7.1 and doc/s7c.1) have been improved. 4430 - Functions have been moved from make.s7i and makedata.s7i to the new 4431 library cli_cmds.s7i (Emulate CLI commands from UNIX and DOS). 4432 - Support for the commands mkdir and md has been added to 4433 cli_cmds.s7i. 4434 - The library makedata.s7i has been improved to support the functions 4435 dir, notdir, suffix, basename, addprefix, addsuffix, filter, 4436 filter-out, foreach, call, sort and shell. 4437 - The libraries makedata.s7i and make.s7i have been improved to 4438 support pattern rules with equal patterns. 4439 - The configuration program chkccomp.c has been improved to set the 4440 POSTGRESQL_POSTGRES_H and POSTGRESQL_PG_TYPE_H in more situations. 4441 - The function exec_call in exec.c has been improved to raise the 4442 exception ILLEGAL_ACTION, when it is called for a FORWARDOBJECT. 4443 - The compiler has been improved to issue an error, when a forward 4444 defined function is called. 4445 - The function prg_eval in prglib.c has been improved to call 4446 raise_with_arguments instead of raise_exception. 4447 - The function nameOfBufferType in sql_post.c has been improved to 4448 use PGNODETREEOID, INT2ARRAYOID, OIDARRAYOID and FDW_HANDLEROID 4449 only when they have been defined. 4450 4451 20141019: 4452 - The compiler s7c has been improved to process the semicolon 4453 operator with reduced stack usage. Thanks go to Pietro Cerutti for 4454 pointing out problems with the available stack size under FreeBSD. 4455 - In drw_x11.c the function redraw has been improved to ignore expose 4456 events when backing store is active. Thanks go to Brian Callahan 4457 for reporting problems with activated backing store under OpenBSD. 4458 - The library makedata.s7i has been improved. Now conditional 4459 makefile parts with ifdef and ifndef are allowed. Now it is 4460 possible to use the ?= operator to assign a value to a variable. 4461 Now the value of a variable is taken from the environment, when it 4462 has not been defined in the makefile. 4463 - The function setupStack has been moved from cmd_rtl.c to heaputl.c. 4464 - The self extracting Seed7 installer for Windows has been improved 4465 to allow downloading the latest Seed7 release. 4466 - Tabs in various files have been replaced with spaces. 4467 4468 20141005: 4469 - The example program sql7.sd7 has been improved to write help 4470 information, when it is called with the option -? . 4471 - The configuration program chkccomp.c has been improved to accept 4472 the #define macros MYSQL_INCLUDE_OPTIONS, SQLITE_INCLUDE_OPTIONS, 4473 POSTGRESQL_INCLUDE_OPTIONS, ODBC_INCLUDE_OPTIONS, 4474 OCI_INCLUDE_OPTIONS, MYSQL_LIBRARY_PATH, SQLITE_LIBRARY_PATH, 4475 POSTGRESQL_LIBRARY_PATH, ODBC_LIBRARY_PATH and OCI_LIBRARY_PATH. 4476 - The makefile mk_freebsd.mk has been improved to allow database 4477 connections under FreeBSD. 4478 - The makefiles mk_mingw.mak, mk_msvc.mak, mk_bcc32.mak and 4479 mk_bccv5.mak have been improved to support the SQLite database. 4480 - The database driver sql_ite.c has been improved such that it can 4481 also work with a DLL that is loaded at runtime. 4482 - Tracing statements have been added to drw_x11.c. 4483 4484 20140921: 4485 - Access to MySql/MariaDb, SQLLite, PostgreSQL, Oracle and ODBC 4486 databases has been added. 4487 - The library sql_base.s7i has been added. This library provides 4488 functions to connect to a database, to prepare statements, to bind 4489 variables to prepared statements, to execute prepared statements, 4490 to fetch data from the database and to get individual columns from 4491 fetched data. 4492 - A paragraph about the compilation of Seed7 with database 4493 connections has been added to the FAQ. 4494 - The example program sql7.sd7 has been added. This program connects 4495 with a database, reads SQL commands and sends them to the database. 4496 - The example program chkdb.sd7 has been added. This program checks 4497 SQL statements with several databases. The database login data in 4498 chkdb.sd7 must be adjusted to allow that opening the databases 4499 succeeds. 4500 - The library ftp.s7i and the program ftp7.sd7 have been improved to 4501 accept connection strings of the form user:password@hostName . 4502 - Interpreter and compiler have been improved to support databases. 4503 - The compiler now adds parentheses around comma expressions when 4504 they are used as index. This changes have been done in the files 4505 arr_act.s7i, bst_act.s7i and str_act.s7i. 4506 - Database drivers consisting of the files dll_drv.h, dll_unx.c, 4507 dll_win.c, sql_drv.h, sql_ite.c, sql_my.c, sql_oci.c, sql_odbc.c, 4508 sql_post.c, sql_rtl.c, sql_rtl.h, sql_util.c, sql_util.h, sqllib.c 4509 and sqllib.h have been added. 4510 - The program wrdepend.c has been added. This program is used to 4511 write C header dependencies to the file depend. It calls the C 4512 compiler with -I options. The -I options come from the macro 4513 INCLUDE_OPTIONS, which is defined in the file version.h. 4514 - Database driver files have been added to makefiles. 4515 4516 20140907: 4517 - The function setSearchPath has been added to the library 4518 process.s7i. 4519 - The compiler has been improved to write an error message, when the 4520 sets of a case-statement overlap. Until now this situation was only 4521 recognized by the C compiler. 4522 - The interpreter has been improved to raise an exception, when the 4523 current value of a case-statement is element of two sets. 4524 - There have been changes in the libraries makedata.s7i and make.s7i. 4525 - The macro expansion in makedata.s7i has been changed. Now all macro 4526 expansions (except the expansions of internal macros) are done with 4527 the function applyMacros. 4528 - In makedata.s7i the function applyMacros has been improved to 4529 process the makefile macro functions wildcard, error and warning. 4530 - The functions evalFunction and getMacro, that where used to do 4531 macro expansion when the makefile is read, have been removed. 4532 - The code to read the definition of recursively expanded variables 4533 has been changed to do no macro expansion. This macros are expanded 4534 when they are used. 4535 - The library make.s7i has been improved to read the parameters 4536 for the commands rm, cp, and mv as Unix shell parameters (with the 4537 function getUnixCommandParameter). 4538 - The library make.s7i has been improved to read the parameters 4539 for the commands del, copy, xcopy and move as Dos/Windows batch 4540 parameters (with the function getDosCommandParameter). 4541 - Interpreter and compiler have been improved to support the action 4542 CMD_SET_SEARCH_PATH. 4543 - The batch file bin/call_gcc.bat has been changed to work correctly, 4544 when it is called from any directory. 4545 - Writing error messages in error.c has been changed to use prot_... 4546 functions instead of printf. 4547 4548 20140817: 4549 - The chapter about files in the manual has been improved. 4550 - Variants of the for-each-loop with an until condition have been 4551 added to array.s7i. 4552 - The parse operator for characters has been improved to accept only 4553 strings with a length of 1. 4554 - The function trimValue has been introduced. This function trims a 4555 string such that it can be converted to a specified type. 4556 - The exception handlers for RANGE_ERROR have been removed from the 4557 functions read and readln in enable_input.s7i. The functions read 4558 and readln now raise range RANGE_ERROR when the conversion to the 4559 target type fails. 4560 - Occurrences of io_ok, io_error, io_empty and io_filled have been 4561 removed from the libraries. This undocumented feature was not used 4562 for years. The function succeeds and the functions read and readln 4563 with default value are better suited for error checking, when data 4564 is read. 4565 - The exception handlers in interpreter and compiler have been 4566 improved to allow an otherwise part. 4567 - The function succeeds has been introduced. This function executes 4568 a statement and returns TRUE when no exception occurs. 4569 - The example programs nicoma.sd7 and savehd7.sd7 have been improved 4570 to use the new function succeeds. 4571 - The parse operator for float has been changed to raise RANGE_ERROR 4572 when leading whitespace is found. 4573 - The library make.s7i has been improved to accept the commands 4574 erase, xcopy, mv, move and rem. 4575 - The library makedata.s7i has been improved to accept the macro 4576 functions subst and patsubst. 4577 - The reading of rules in makedata.s7i has been improved to read 4578 commands without macro substitution. The macros in commands are 4579 substituted just before the commands are executed. 4580 - The make functions in make.s7i have been changed to raise 4581 FILE_ERROR when a command fails. 4582 - The function applyMacros in makedata.s7i has been improved to 4583 accept macro functions and the shorthands of patsubst. 4584 - The function replaceSuffixes in makedata.s7i has been improved to 4585 accept pattern substitution with the % character. 4586 - In the library make.s7i the logging has been removed from the 4587 functions doRm, doCp, doPwd, doEcho, doCd, doMake, doOneCommand, 4588 doCommands and processCommand. 4589 - The program chkflt.sd7 has been adjusted to work with the strict 4590 parse operator for float. 4591 - Interpreter and compiler have been improved to support the actions 4592 PRC_BLOCK_CATCH_ALL and PRC_BLOCK_OTHERWISE. 4593 - The program sudo.c has been improved to work without upper limit 4594 for the parameter length. 4595 - The functions checkIfOutsideRange and negate have been added to 4596 int_act.s7i. 4597 4598 20140803: 4599 - The handling of ctrl-c has been changed to work better under 4600 Windows. 4601 - The runtime of the function intPowOvfChk in int_rtl.c has been 4602 reduced to 57% (measured with gcc and valgrind). 4603 - The generation of code in the compiler for the action INT_POW has 4604 been improved. When the base is a negative power of two the 4605 exponentiation is done with a shift instead of a call of intPow 4606 (respectively intPowOvfChk). 4607 - The overflow checking for INT_POW in the compiler has been 4608 improved. When base or exponent is known the overflow checking is 4609 done with inline code and intPow is called instead of intPowOvfChk. 4610 - Documentation comments have been added to bitsetof.s7i 4611 - Tests for ** have been added to chkint.sd7 and chkovf.st7 4612 - The tests for * and *:= in chkovf.st7 have been reorganized. 4613 - An interrupt_flag has been introduced in the interpreter. This flag 4614 is used for exception handling and for signal handling. Exceptions 4615 set interrupt_flag and fail_flag (with the macro set_fail_flag). 4616 Signals set only the interrupt_flag (file sigutl.c). The 4617 interrupt_flag is handled in exec_action (file exec.c). 4618 - The functions signal_name, handle_signals, handle_segv_signal, 4619 handle_term_signal and activate_signal_handlers in sigutl.c have 4620 been improved. 4621 - The functions continue_question, write_curr_position and 4622 show_signal in runerr.c have been improved. 4623 - The functions handle_int_signal, readChar, doGetcFromTerminal, 4624 doGetsFromTerminal, doLineRead, doLineReadFromTerminal, doWordRead, 4625 doWordReadFromTerminal, filGetcChkCtrlC, filGetsChkCtrlC, 4626 filHasNextChkCtrlC, filLineReadChkCtrlC and filWordReadChkCtrlC 4627 have been added to fil_rtl.c. This functions support reading from 4628 a terminal with a check for ctrl-c. This functions are used by the 4629 interpreter (file intlib.c). 4630 - Tracing has been added to functions in int_rtl.c. 4631 - Configuration defines for CTRL_C_SENDS_EOF, 4632 SIGNAL_HANDLER_CAN_DO_IO and INT64TYPE_NO_SUFFIX_BUT_CAST have been 4633 added to makefiles. 4634 4635 20140720: 4636 - The compiler has been improved to generate overflow checking code 4637 by default. The generation of overflow checking code can be 4638 switched off with the option -so. 4639 - The exception OVERFLOW_ERROR has been introduced. It is raised by 4640 the interpreter and by compiled programs when an integer overflow 4641 occurs. 4642 - A paragraph about integer overflow and the installation of Seed7 4643 has been added to the FAQ. 4644 - The chapter about exceptions in the manual has been improved. 4645 - The program chkovf.sd7, which checks the recogition of integer 4646 overflows, has been added. 4647 - Checks for +, -, *, rem, mod, <<, +:=, -:=, *:=, succ, pred, incr 4648 and decr have been added to chkint.sd7. 4649 - Checks for the lpad operator have been added to chkstr.sd7. 4650 - The compiler option -r has been replaced by the option -sr. 4651 - The program calc7.sd7 has been improved to report MEMORY_ERROR and 4652 OVERFLOW_ERROR. 4653 - The library make.s7i has been improved such that make7.sd7 accepts 4654 echo (and echo.) statements without parameters. 4655 - The function eof has been defined for the type tlsFile in tls.s7i. 4656 - The function gets in tls.s7i has been improved. 4657 - The function getHttp in gethttp.s7i has been improved to avoid an 4658 endless loop when eof has been reached. 4659 - The function memcpy_from_strelem has been added to striutl.c. This 4660 function uses loop unrolling inspired by Duff's device and a trick 4661 with a binary or (|=) to check for allowed values. 4662 - The functions filWrite, socWrite and bstParse have been changed 4663 to use memcpy_from_strelem. The reduction in runtime has been 4664 measured with gcc and valgrind. The runtime of filWrite, socWrite 4665 and bstParse has been reduced to 53%, 61% and 56% respectively. 4666 - Documentation comments have been added to integer.s7i, bin32.s7i, 4667 intlib.c and striutl.c. 4668 - The compiler has been improved to generate overflow checking code 4669 for *, <<, >>, *:=, <<:= and >>:= . 4670 - The generation of overflow checking code for the operators rem and 4671 mod has been improved. 4672 - Checks for overflow, division by zero, numeric error and index out 4673 of bounds in compiled programs now use the macros ovfChk, divChk, 4674 numChk and idxChk. This macros inform the C compiler about the 4675 unlikeliness of an exception. 4676 - The function fltIPow has been improved to avoid a signed integer 4677 overflow, when the exponent is the most negative integer. 4678 - The primitive actions INT_ULSHIFT and INT_ULSHIFT_ASSIGN have been 4679 added and supported in interpreter and compiler. 4680 - A version of the function uint_rand, which uses 128-bit integers, 4681 has been added to int_rtl.c. 4682 - The function raise_error3 in runerr.c has been renamed to 4683 interprRaiseError. 4684 - The configuration values INT128TYPE, UINT128TYPE and MACRO_DEFS 4685 have been added to cc_conf.s7i. The configuration value 4686 SIGILL_ON_OVERFLOW has been replaced with OVERFLOW_SIGNAL. 4687 - The functions constValueIsEqual, checkRangeFromZero, 4688 process_const_int_lshift, process_const_int_lshift_assign, 4689 process_const_int_rshift_assign, process_const_int_mult, 4690 process_const_int_mult_assign, process_const_int_ulshift_assign, 4691 process_const_int_ulshift and process_const_int_urshift_assign 4692 have been added to int_act.s7i. 4693 - The function intExpr in chkbig.sd7, chkexc.sd7, chkint.sd7 and 4694 chkstr.sd7 has been changed to make sure that the C compiler 4695 cannot evaluate it at compile time. 4696 - The runtime of the functions str_lpad, strLpad and strLpadTemp has 4697 been improved. 4698 4699 20140706: 4700 - The interpreter has been improved to recognize integer overflow. 4701 Now the exception NUMERIC_ERROR is raised, when a program triggers 4702 an integer overflow. The checks for overflow are done in software, 4703 but the overhead is small. With overflow checks the interpreter 4704 needs 0.5% (zero point five percent) more run-time to execute the 4705 program chkint.sd7 (verified with gcc and valgrind). 4706 - A chapter about the Seed7 Structured Syntax Description (S7SSD) 4707 has been added to the manual. 4708 - The for-until-loops in bitset.s7i and bitsetof.s7i have been 4709 improved such that the for-variable has the correct value, when it 4710 is used in the until-condition. 4711 - The function replaceN has been added to string.s7i. This function 4712 does replacements until no occurrence of the target string is left. 4713 This function is used by toStdPath to replace multiple occurrences 4714 of a character by one occurrence (replace("/a///b////c", "//", "/") 4715 returns "/a/b/c"). 4716 - The program calc.sd7 has been renamed to calc7.sd7. 4717 - The program calc7.sd7 has been changed to accept the commands 4718 'quit' and 'exit'. This commands can be used to exit the program. 4719 The possibility to leave the program with an empty input line has 4720 been removed. 4721 - The program calc7.sd7 has been improved to write the name of the 4722 exception, when it has been raised. 4723 - The compiler has been improved to allow the generation of overflow 4724 checking code. Overflow checking code can be generated for the 4725 operators +, -, **, +:= and -:= and the functions abs, succ, pred, 4726 incr and decr. Until the rest of the functions is implemented and 4727 enough tests have been added to chkint.sd7 the functionality is 4728 switched off. 4729 - The template FOR_UNTIL_DECLS has been added to forloop.s7i. This 4730 template defines for-loops with a condition. 4731 - The function abs has been moved from the library math.s7i to the 4732 library float.s7i. 4733 - Checks for addition, subtraction, multiplication, power and abs 4734 have been added to chkint.sd7. 4735 - In the compiler the statements to write the C prototypes have been 4736 moved from s7c.sd7 to functions in the files comp/xxx_act.s7i 4737 (xxx is the abbreviation for the corresponding primitive type). 4738 - The functions getReference and getParameterAsReference have been 4739 added to comp/expr_util.s7i. 4740 - The function isit_bool from objutl.c has been replaced by the macro 4741 isit_bool (defined in objutl.h). This improves the speed of the 4742 interpreter. 4743 - The function set_card has been improved to call setCard, which 4744 computes the cardinality of a set much quicker. 4745 4746 20140615: 4747 - The makefile mk_freebsd.mk has been changed to work with the new 4748 version of chkccomp.c. Thanks go to Pietro Cerutti for pointing out 4749 the problem. 4750 - The self extracting Seed7 package for Windows has been improved to 4751 use gcc version 4.8.1 instead of 4.5.0. 4752 - The new function removeTree, which removes a directory tree, has 4753 been introduced in osfiles.s7i. The function removeAnyFile, which 4754 has been used for the same purpose, is deprecated. Deprecated 4755 functions will be removed in a future version. 4756 - Checks for hash tables with character keys have been added to 4757 chkhsh.sd7. 4758 - The test program "chkcmd.sd7" has been added. This program checks 4759 functions that copy, move and remove files. Note that Windows has 4760 race conditions when files are copied, moved and removed quickly in 4761 succession. This bug of Windows cannot be fixed in a runtime 4762 library. 4763 - The function temp_name_in_dir has been added to striutl.c. 4764 - The typedef of socketType in common.h has been changed such that 4765 socketType is always int. 4766 - Functions in soc_rtl.c, pol_sel.c and pol_unx.c have been changed 4767 to use the type os_socketType. 4768 - Tracing statements in hsh_rtl.c, cmd_rtl.c, drw_win.c and drw_x11.c 4769 have been changed to use the FMT_ strings from common.h. This way 4770 the tracing is more portable. 4771 - Under Windows the functions cmdRemoveFile and cmdRemoveTree now 4772 rename a file before it is removed. When the renaming fails the 4773 directory is left intact. This avoids half removed directory trees 4774 under Windows, when a process has the current working directory 4775 somewhere in the directory that is to be removed. The renaming also 4776 lowers the probability of race conditions under Windows, but they 4777 still can happen. 4778 - The function checkMoveDirectory has been added to chkccomp.c. 4779 - The target make7 has been added to the makefiles. With 'make make7' 4780 an executable of the make7 program is generated and placed in 4781 seed7/bin. 4782 4783 20140601: 4784 - The compiler has been refactored. Code has been moved from s7c.sd7 4785 to several compiler libraries. The compiler libraries are licensed 4786 with the GPL and can be found in seed7/lib/comp. The refactored 4787 compiler is the first compiler of the 3.0 series. 4788 - The chapter in the manual about the foreign function interface has 4789 been improved. 4790 - Checks for parse and str have been added to chkflt.sd7 and 4791 chkint.sd7. 4792 - In chkccomp.c code has been moved from main() to the new functions 4793 numericSizes and numericProperties. 4794 - Usages of the macro logError have been added to cmd_rtl.c and 4795 cmd_unx.c. 4796 - The stack size defined in mk_mingc.mak, mk_mingw.mak, mk_msys.mak 4797 and mk_nmake.mak has been changed from 4194304 to 8388608. 4798 - The function cstri_buf_to_stri has been added to striutl.c. 4799 - The generation of float literals in the compiler has been improved 4800 to avoid that precision is lost. 4801 - Interpreter and compiler have been improved to support the actions 4802 BLN_EQ and BLN_NE. 4803 4804 20140518: 4805 - Errors in con_wat.c and drw_dos.c have been fixed (thanks to 4806 "Rugxulo" for the help to fix them). 4807 - The function str in duration.s7i has been improved to work for 4808 negative durations. 4809 - The library tar.s7i has been improved to work with the old file 4810 format that does not use the magic value "ustar". 4811 - The function bigToInt16 has been added to big_rtl.c and big_gmp.c. 4812 - The macros with format strings in common.h have been renamed. 4813 Now the macros have shorter names (starting with FMT_ and F_). 4814 The macros define formats for various integer sizes. This formats 4815 are independent from the actual C compiler and C runtime library. 4816 - The function bigLog10 in big_rtl.c has been improved to work 4817 correctly when BIGDIGIT_SIZE is small. 4818 - The program chkccomp.c has been improved to define 4819 LOCALTIME_WORKS_SIGNED, when localtime can process negative times. 4820 - The program chkccomp.c has been improved to write the define 4821 directives to the file specified with the first parameter. 4822 - The function intParse in int_rtl.c has been improved to accept the 4823 most negative number. 4824 - The function timSetLocalTZ in tim_rtl.c has been changed to avoid 4825 raising an exception when LOCALTIME_WORKS_SIGNED is not defined and 4826 the time is before 1970-01-01. In this case the daylight saving 4827 time flag is set to FALSE. 4828 4829 20140504: 4830 - The answer concerning Unicode support in the FAQ has been improved. 4831 - The chapters in the manual that describe the types integer, 4832 bigInteger, rational, bigRational and float have been improved. 4833 - The function log10 has been added to the libraries integer.s7i and 4834 bigint.s7i. This function computes the truncated base 10 logarithm. 4835 - The operator sci has been added to the libraries integer.s7i, 4836 bigInteger.s7i, bigrat.s7i and rational.s7i. This operator converts 4837 a number to a string in scientific notation. Halfway cases are 4838 rounded away from zero. 4839 - The function round10 has been added to the libraries rational.s7i 4840 and bigrat.s7i. It rounds halfway cases away from zero. 4841 - The function str has been improved in the libraries rational.s7i 4842 and bigrat.s7i. Now the function converts to a string with a 4843 decimal representation (e.g.: "1.25"). When repeating decimals are 4844 recognizend they are enclosed in parentheses. 4845 - The operator digits has been improved in the libraries rational.s7i 4846 and bigrat.s7i. Now the operator rounds halfway cases away from 4847 zero. 4848 - Documentation comments have been improved in bigint.s7i, float.s7i, 4849 rational.s7i, bigrat.s7i, char.s7i, big_gmp.c and fltlib.c. 4850 - Definitions of the constants integer.first and integer.last have 4851 been added to integer.s7i. 4852 - In bigrat.s7i and rational.s7i the function reduce has been 4853 improved to accept Infinity and NaN. 4854 - The function strDateTime has been added to time.s7i. 4855 - A definition of INTTYPE_DECIMAL_SIZE has been added to s7c.sd7 and 4856 common.h. 4857 - The function bigGcd in big_rtl.c has been improved to make sure 4858 that the greatest common divisor is positive or zero. 4859 - Checks for log10, **, +:= and -:= have been added to chkbig.sd7. 4860 - The checks for log2 have been improved and checks for log10 have 4861 been added to chkint.sd7. 4862 - Checks for the function str have been added to chkflt.sd7. 4863 - The compiler has been improved to use the functions 4864 bigIPowSignedDigit and bigGrowSignedDigit to optimize the operators 4865 **, +:= and -:= for bigInteger operands. 4866 - The compiler has been improved to support the actions INT_LOG10 and 4867 BIG_LOG10. 4868 - The function isPureFunction in the compiler has been improved. 4869 - The functions bigGrowSignedDigit and bigLog10 have been added to 4870 big_rtl.c and big_gmp.c. 4871 - The program chkccomp.c has been improved to write definitions of 4872 the macros isinf, DOUBLE_DECIMAL_EXPONENT_DIGITS, FLOAT_STR_FORMAT, 4873 FLOAT_STR_LARGE_NUMBER, DOUBLE_STR_FORMAT, DOUBLE_STR_LARGE_NUMBER, 4874 FLOAT_MANTISSA_FACTOR, FLOAT_MANTISSA_SHIFT, DOUBLE_MANTISSA_FACTOR 4875 and DOUBLE_MANTISSA_SHIFT. 4876 - The functions fltDgts and fltSci in flt_rtl.c have been changed to 4877 raise RANGE_ERROR when the precision is negative. 4878 - The function fltStri in flt_rtl.c has been improved to write a 4879 reasonable number of fractional digits. 4880 - The functions getMantissaAndExponent, setMantissaAndExponent and 4881 doubleToCharBuffer have been added to flt_rtl.c. 4882 - The function intLog10 has been added to int_rtl.c. 4883 - The function stri_to_wstri has been renamed to stri_to_utf16. 4884 - The functions stri_to_wstri_buf and wstri_buf_to_stri have been 4885 added to striutl.c. 4886 4887 20140420: 4888 - The chapter in the manual about the foreign function interface has 4889 been improved. 4890 - A paragraph about regular expressions and lexical scanner functions 4891 has been added to the FAQ. 4892 - The handling of the actions CHR_CLIT and INT_STRI in the compiler 4893 has been improved. The string buffers for chrCLitToBuffer and 4894 intStrToBuffer use the correct alignment now. 4895 - In big_rtl.c the functions bigParseBasedPow2 and bigParseBased2To36 4896 have been added and bigParseBased has been changed to call them. 4897 This improves the conversion of a string to a bigInteger, when the 4898 base is a power of two. Valgrind measurements of the function 4899 bigParseBased in chkbig.sd7 show a speed improvement with a factor 4900 of 239. 4901 - The macros memcpy_to_strelem and memset_to_strelem (defined in 4902 striutl.h) have been turned into functions (defined in striutl.c). 4903 - The unrolling in memcpy_to_strelem and memset_to_strelem has been 4904 changed from 8 times to 32 times. This improves the performance 4905 for big data amounts by 16% (Measured with valgrind and gcc). 4906 - Usages of the macros memcpy_to_strelem and memset_to_strelem in 4907 bst_rtl.c, fil_rtl.c, soc_rtl.c and str_rtl.c have been turned into 4908 usages of the corresponding functions. 4909 - Calls of cstri_expand, ustri_expand, cstri_expand2 and 4910 ustri_expand2 in analyze.c, chr_rtl.c, flt_rtl.c, infile.c, 4911 str_rtl.c and striutl.c have been turned into calls of 4912 memcpy_to_strelem. 4913 - The functions (macros) cstri_expand, ustri_expand, cstri_expand2 4914 and ustri_expand2 have been removed from striutl.c and striutl.h. 4915 - The functions doCompileAndLink, compileAndLinkWithOptionsOk, 4916 compileAndLinkOk, appendToFile and detemineDatabaseDefines have 4917 been added to chkccomp.c. The function compilationOkay has been 4918 replaced by compileAndLinkOk. 4919 4920 20140406: 4921 - The chapters in the manual about primitive actions and the foreign 4922 function interface have been improved. 4923 - The names of the C types used in interpreter and runtime library 4924 have been refactored to use camel case. 4925 - The elements in the unions valueUnion (in data.h) and rtlValueUnion 4926 (in data_rtl.h and s7c.sd7) have been refactored to use names with 4927 camel case. 4928 - The library bigint.s7i has been changed to define the operators 4929 radix and RADIX with the actions BIG_radix and BIG_RADIX. This 4930 results in a significant performance improvement when large numbers 4931 are converted. 4932 - Interpreter and compiler have been improved to support the actions 4933 BIG_radix and BIG_RADIX. 4934 - Test cases for the operators radix and RADIX have been added to 4935 chkbig.sd7. 4936 - The compiler has been improved to do an optimization for the action 4937 INT_MDIV when the divisor is known at compile time. When the 4938 dividend is known to be positive or zero it is casted to an 4939 unsigned integer and the quotient is casted back to a signed 4940 integer. Dividing an unsigned integer by a constant is known to be 4941 faster than dividing a signed integer. 4942 - The functions bigRadix, bigRadixPow2, bigRadix2To36 and 4943 uBigDivideByDigit have been added to big_rtl.c 4944 - The function bigRadix has been added to big_gmp.c. 4945 - The functions stri_to_cstri8_buf and cstri8_buf_to_stri have been 4946 added to striutl.c. 4947 - In traceutl.c the function mapTraceFlags has been improved to work 4948 correctly when the parameter trace_level defines several options. 4949 - The function printTraceOptions has been added to traceutl.c. 4950 - In arr_rtl.c the definition of getArgv has been improved to use 4951 less #ifdef directives in the function body. 4952 4953 20140316: 4954 - The documentation file doc/install.txt has been improved to 4955 describe the command 'make install'. 4956 - The chapter about the foreign function interface in the manual has 4957 been improved. 4958 - In striutl.h the macros os_stri_alloc and os_stri_free have been 4959 improved to use a stack like allocation. Allocations done with 4960 os_stri_alloc must be freed with os_stri_free in the reverse 4961 order of their creation. The new macros reduce the runtime of 4962 stri_to_os_stri and cp_to_os_path to 66% of the old time. This 4963 reduces the time used by operating system calls. E.g.: The CPU time 4964 used by the program sydir7 is reduced to 83% of the old time. 4965 - The targets 'install' and 'uninstall' have been added to makefile, 4966 mk_linux.mak, mk_osx.mak, mk_clang.mak, mk_cygw.mak, mk_mingw.mak, 4967 mk_msys.mak, mk_nmake.mak, mk_msvc.mak, mk_bcc32.mak and 4968 mk_bccv5.mak. 4969 - The program setwpath.c has been added. This program sets the search 4970 path (PATH variable) under Windows. 4971 - The obsolete target 'hi' has been removed from the makefiles. 4972 - The functions initEmulatedCwd, cmdSetenv (both in cmd_rtl.c), 4973 setEmulatedCwd (in striutl.c) and freeArgVector (in cmd_unx.c) have 4974 been adjusted to work with the stack like allocation of 4975 os_stri_alloc and os_stri_free. 4976 - The functions heapAllocOsStri and heapFreeOsStri have been added to 4977 striutl.c. 4978 - Usages of MAX_SYMLINK_PATH_LENGTH in cmd_rtl.c have been replaced 4979 with MAX_OS_STRI_LEN. 4980 4981 20140302: 4982 - The function setSockOpt and the constant SO_REUSEADDR have been 4983 added to sockbase.s7i. Many thanks go to Domingo Alvarez Duarte 4984 for pointing out that this functionality was missing. 4985 - The function openInetListener in listener.s7i has been improved 4986 to succeed when the socket is reused (it calls setSockOpt with 4987 SO_REUSEADDR now). 4988 - The functions opendir and wopendir in dir_win.c and the function 4989 opendir in dir_dos.c have been improved to check for the maximum 4990 path length supported by Windows and DOS. 4991 - The functions act_string and act_okay have been removed from 4992 actutl.c. 4993 - The function exec_action in exec.c has been improved to use 4994 get_primact instead of act_okay. This results in a significant 4995 performance improvement in the case when WITH_ACTION_CHECK is 4996 defined and the option -tc is used. 4997 - The function str1Split has been removed from strlib.c. 4998 - Documentation comments have been added to arr_rtl.c, arrutl.c, 4999 cmd_unx.c, cmd_win.c, dir_dos.c, dir_rtl.c, dir_win.c, kbd_inf.c, 5000 kbd_poll.c, scanner.c and ut8_rtl.c. 5001 - Interpreter and compiler have been improved to support the action 5002 SOC_SET_OPT_BOOL. 5003 5004 20140216: 5005 - A new numeric escape sequence for string literals has been 5006 introduced. A backslash followed by an integer literal and a 5007 semicolon is interpreted as character with the specified ordinal 5008 number. E.g.: "abc\128;def". With the old numeric escape sequence 5009 this would be "abc\128\def". Terminating the escape sequence 5010 with ; instead of \ improves the readability, especially when 5011 escape sequences follow each other. Instead of "\8\\12\\7\8\9\\\" 5012 it is now possible to write "\8;\12;\7;8\9;\\" The old escape 5013 sequence is still supported, but it is deprecated and should not 5014 be used. Future versions will warn about the deprecated escape 5015 sequence. 5016 - The conversion functions 'bytes' and 'bytes2Int' in bytedata.s7c 5017 have been improved to support all combinations of signedness and 5018 endianness. 5019 - The functions bStriBe and bStriLe have been removed from 5020 bstring.s7i. The function 'bytes' in bytedata.s7c can be used as 5021 replacement. 5022 - Checks for lowestSetBit and UNSIGNED conversions with the 5023 functions 'bytes' and 'bytes2Int' have been added to chkint.sd7. 5024 - Checks for UNSIGNED conversions with the functions 'bytes' and 5025 'bytes2BigInt' have been added to chkbig.sd7. 5026 - Checks for the function rand have been added to chkset.sd7. 5027 - The parser has been improved to write error messages when the 5028 source file contains unexpected UTF-8 continuation bytes, solitary 5029 UTF-8 start bytes, extended control codes from the C1 set or an 5030 UTF-16 byte order mark. 5031 - In tar.s7i the functions getoct, putspc and putoct have been 5032 improved. The computation of the size of padding data has also 5033 been improved. 5034 - The compiler has been improved to optimize string initializations 5035 with the function strZero. StrZero creates a string of arbitrary 5036 length with '\0;' (zero) bytes. 5037 - The compiler has been improved to optimize integer exponentiation 5038 (action INT_POW). Now the multiplication pattern is determined at 5039 compile time and the number of multiplications is reduced. 5040 - The performance of the function setCard in set_rtl.c has been 5041 improved by a factor of 2.5. 5042 - The performance of the function setRand in set_rtl.c has been 5043 improved by a factor of 2.3. 5044 - Loop unrolling inspired by Duff's device has been introduced in 5045 striutl.h. The unrolling is used for tight loops which copy byte 5046 data to Seed7 strings in fil_rtl.c, soc_rtl.c and bst_rtl.c. The 5047 performance improvement has been verified with gcc and valgrind. 5048 - The example program err.sd7, which checks compile time error 5049 messages, has been improved. 5050 - The old way to store the data of constant bigIntegers has been 5051 removed from compiler and runtime library. 5052 - The buffers used in intRadix and intRadixPow2 (file int_rtl.c) have 5053 been enlarged to fit for the most negative number with a base of 2. 5054 - In itflib.c the functions itf_cpy and itf_cpy2 have been fixed to 5055 work correctly, when the destination is converted from a struct to 5056 an interface. 5057 - In traceutl.c the tracing of characters has been improved in the 5058 functions prot_char, prot_os_stri, prot_stri_unquoted and 5059 prot_bstri. 5060 - In ut8_rtl.c the function ut8Getc has been improved to use smarter 5061 checks for ranges of characters. 5062 - The deprecated variant of the function str, which has a second 5063 parameter to specify a numeric base, has been removed. The 5064 operators radix and RADIX can be used instead. 5065 - Interpreter and compiler have been improved to support the new 5066 actions INT_BYTES_BE, INT_BYTES_LE, INT_BYTES_BE_2_INT and 5067 INT_BYTES_LE_2_INT. The functions intBytesBe, int_bytesBe, 5068 intBytesLe, int_bytesLe, intBytesBe2Int, int_bytesBe2Int, 5069 intBytesLe2Int and int_bytesLe2Int have been added. 5070 - Support for the actions BIG_CLIT, INT_TO_BSTRI_BE, INT_TO_BSTRI_LE, 5071 INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT has been removed from 5072 interpreter and compiler. The functions bigImport, bigCLit, 5073 big_clit, intToBStriBe, int_toBStriBe, intToBStriLe, int_toBStriLe, 5074 intBytesBe2UInt, int_bytes_be_2_uint, intBytesLe2UInt and 5075 int_bytes_le_2_uint have been removed. 5076 5077 20140202: 5078 - The manual chapter describing the foreign function interface has 5079 been improved. 5080 - The handling of Unicode in the console has been improved. Cursor 5081 positioning and writing Unicode strings to the desired position 5082 works now also under Linux. 5083 - A strict checking of all strings, that are passed to C functions, 5084 has been introduced. Zero bytes and non Unicode characters in the 5085 original string raise the exception RANGE_ERROR now. 5086 - The performance of several loops in the runtime library has been 5087 improved. Now the loops use indices instead of pointer increments 5088 and they work downward towards an index of zero. This allows C 5089 compilers to do more optimizations (verified with gcc and 5090 valgrind). 5091 - The enumeration types signedness and endianness have been added to 5092 bytedata.s7c. 5093 - The conversion functions bytes, bytes2Int and bytes2BigInt have 5094 been added to bytedata.s7c. The new function allow conversions 5095 to and from signed and unsigned byte strings with big- and 5096 little-endian byte order. This functions replace the less flexible 5097 functions bytesLe2Int, bytesBe2Int, bytesLe and bytesBe. 5098 - The functions bStriBe, bStriLe, bStriBe2BigInt and bStriLe2BigInt 5099 have been moved from bytedata.s7c to bstring.s7i. 5100 - The performance of the functions int16AsTwoBytesLe, 5101 int32AsFourBytesLe, int64AsEightBytesLe int16AsTwoBytesBe, 5102 int32AsFourBytesBe and int64AsEightBytesBe has been improved. 5103 - Documentation comments have been added or improved in cc_conf.s7i, 5104 bytedata.s7i, environment.s7i, sockbase.s7i, actutl.c, big_rtl.c, 5105 big_gmp.c, biglib.c cmd_rtl.c, con_inf.c, con_win.c, con_wat.c, 5106 int_rtl.c, intlib.c, soc_rtl.c, striutl.c and syvarutl.c. 5107 - The program chk_all.sd7 has been improved to check several 5108 compiler options and to allow that the output of interpreted and 5109 compiled compiler differs. The difference of the generated C code 5110 is okay, when the execution of the compiled programs results in 5111 the same output. 5112 - The compiler (s7c) has been improved to do more optimizations for 5113 the action BIG_REM (operator rem). 5114 - The compiler has been improved to count inserted and suppressed 5115 range checks. 5116 - Interpreter, compiler and runtime library have been improved to 5117 allow bstrings with slices. This is used by the compiler to 5118 reduce the memory used for constant bstrings. 5119 - The compiler has been improved to store the data of constant 5120 bigIntegers in bstrings. 5121 - Checks for div, rem, mdiv and mod have been added to chkbig.sd7. 5122 - Checks for float division by zero have been added to chkexc.sd7. 5123 - Checks for float parse have been added to chkflt.sd7. 5124 - In con_inf.c, con_win.c and con_wat.c the function conText has 5125 been replaced by conWrite. ConWrite takes an UTF-32 string and 5126 writes it to the console. If stdout is redirected an UTF-8 string 5127 is written to the destination file. 5128 - The function gen_act_ptr_table has been added to actutl.c. This 5129 function creates act_ptr_table and removes double entries from it. 5130 - The functions intBytesBe2UInt and intBytesLe2UInt have been added 5131 to int_rtl.c. 5132 - Interpreter and compiler have been improved to support the new 5133 actions INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT. 5134 - Checks for the function sigaction() and for integer division and 5135 remainder have been added to chkccomp.c. 5136 - The configuration values ALLOW_BSTRITYPE_SLICES, 5137 CHECK_INT_REM_BY_ZERO and CHECK_INT_REM_ZERO_BY_ZERO have been 5138 added to cc_conf.s7i, chkccomp.c, cmd_rtl.c and s7c.sd7. 5139 - Several versions of timAwait in tim_unx.c have been improved to 5140 restart calls of poll(), ppoll() and select(). 5141 - A check for the character '=' in the environment variable name has 5142 been added to the function cmdSetenv (in cmd_rtl.c). 5143 - In striutl.c the functions stri_compress, stri_export_utf8 and 5144 cp_to_cstri8 have been improved and renamed to conv_to_cstri 5145 conv_to_cstri8 and stri_to_cstri8 respectively. Interpreter and 5146 runtime library have been improved to use the new function names. 5147 - The function stri_to_cstri and the macro free_cstri8 have been 5148 added to striutl.c. 5149 - The functions conv_to_cstri, conv_to_cstri8, stri_to_cstri8 and 5150 stri_to_bstri have been improved to use an err_info parameter. 5151 5152 20140119: 5153 - The library tdes.s7i with TDES (Triple DES respectively 3DES) 5154 cipher support has been added. 5155 - The library tls.s7i has been improved to allow encoding with TDES 5156 (3DES) and to accept the handshake message CertificateRequest. 5157 - The function drwGetImage has been added to drw_dos.c (thanks to 5158 "Rugxulo" for pointing out, that it was missing). 5159 - Checks for mdiv and mod have been added to chkbig.sd7. 5160 - The compiler (s7c) has been improved to do more optimizations for 5161 the action BIG_MOD (operator mod). Now the functions bigLowerBits 5162 and bigLowerBitsTemp are used when the divisor is a power of two. 5163 - The compiler has been improved to optimize if-statements, when the 5164 condition is constant. 5165 - The compiler has been improved to optimize the action BIG_MDIV 5166 (operator mdiv) correctly, when the divisor is a negated power of 5167 two (e.g. n div -8). The generated code now corresponds to the 5168 Seed7 expression -dividend >> log(-divisor). 5169 - New functions to open files have been introduced in various 5170 libraries. The new functions are openUtf8, openUtf16, openEcho, 5171 openLine, openTee, openMore, openUpper, openLower, openReverse, 5172 openWindow and openField. The new functions have been added as 5173 replacement for the functions open_utf8, open_utf16, open_echo, 5174 open_line, open_tee, open_more, open_upper, open_lower, 5175 open_reverse, open_window and open_field. The old functions are 5176 still supported, but they are deprecated and should not be used. 5177 Deprecated functions will be removed in a future version. 5178 - The example programs have been changed to use the new functions 5179 to open files. 5180 - Documentation comments have been added or improved in cipher.s7i, 5181 clib_file.s7i, external_file.s7i, shell.s7i, utf8.s7i, utf16.s7i, 5182 unicode.s7i, bytedata.s7i, big_gmp.c, biglib.c, big_rtl.c, 5183 cmdlib.c, cmd_rtl.c, fillib.c, fil_rtl.c, intlib.c, int_rtl.c, 5184 strlib.c, str_rtl.c and entutl.c. 5185 - The functions bigLowerBits and bigLowerBitsTemp have been added 5186 to big_rtl.c and big_gmp.c. 5187 - The free list management in big_rtl.c and big_gmp.c has been 5188 improved to allow the configuration of a maximum free list length. 5189 - The function bigMultAssign1 has been added to big_rtl.c. This 5190 function is used by bigMultAssign when the factor is just one 5191 bigdigit. 5192 - The function bigLog2BaseLShift has been renamed to 5193 bigLog2BaseIPow in big_rtl.c, big_gmp.c and s7c.sd7. 5194 - The function getValue for boolean values has been added to 5195 progs.s7i. Interpreter, compiler and runtime library have been 5196 improved to support it. 5197 - the management of types in the runtime library has been improved. 5198 Now they are attached to the corresponding program. This way they 5199 can be freed by prgDestr(). 5200 5201 20140105: 5202 - The library des.s7i with DES (Data Encryption Standard) cipher 5203 support has been added. 5204 - The library tls.s7i has been improved to support block ciphers 5205 and encoding with DES. 5206 - The functions blockSize and decode have been added to cipher.s7i 5207 and arc4.s7i. 5208 - The the functions str, rotLeft and rotRight and the operators 5209 radix, RADIX, ~ and ><:= have been added to bin32.s7i. 5210 - Support to write bin32 values has been added to bin32.s7i. 5211 - The new library unicode.s7i, with functions to convert between 5212 Unicode encodings, has been added. 5213 - The functions utf16beToStri, utf16leToStri, utf7ToStri and 5214 replaceUtf16SurrogatePairs have been improved and moved from 5215 charsets.s7i to unicode.s7i. The functions striToUtf8 and 5216 utf8ToStri have been moved from string.s7i to unicode.s7i. The 5217 functions striToUtf16be and striToUtf16le have been added to 5218 unicode.s7i. 5219 - The actions FLT_MINUS, INT_MINUS and BIG_MINUS have been renamed 5220 to FLT_NEGATE, INT_NEGATE and BIG_NEGATE respectively. 5221 - The library gethttps.s7i has been improved to accept links to 5222 HTTP. 5223 - The operator symbols ~ and ><:= have been added to syntax.s7i. 5224 - Checks for -, mdiv, << and >> have been added to chkbig.sd7. 5225 - The compiler (s7c) has been improved to do more optimizations for 5226 the actions BIG_DIV, BIG_LSHIFT, BIG_RSHIFT, BIG_MDIV, BIG_MULT, 5227 BIG_NEGATE and CHR_CLIT. 5228 - The function charLiteral has been added to the compiler. 5229 - The compiler has been improved to avoid the generation of long 5230 lines for bigInteger literals. 5231 - The function bigMinus has been renamed bigNegate and the function 5232 bigNegateTemp has been added to big_gmp.c and big_rtl.c. 5233 - A check for the keyword 'restrict' has been added to chkccomp.c. 5234 - The function chrCLitToBuffer has been added to chr_rtl.c. 5235 - Interpreter, compiler and runtime library have been improved to 5236 support the action INT_XOR_ASSIGN. 5237 - The functions utf8_char (literal.c), utf8_to_stri (striutl.c), 5238 utf8_bytes_missing (striutl.c), strUtf8ToStri (str_rtl.c) and 5239 ut8Getc (in ut8_rtl.c) have been improved to check for ranges 5240 of characters instead of bit patterns. This improves the 5241 performance of UTF-8 conversions by up to 6%. 5242 - The functions freeArgVector and genArgVector have been added to 5243 cmd_unx.c. 5244 5245 20131222: 5246 - Consecutive calls of write in bas7.sd7 have been combined into 5247 single calls of write respectively writeln. 5248 - Several links have been added to the FAQ. 5249 - The types cardSuit and cardRank and the functions cardPixmap and 5250 cardBackside have been added to the library cards.s7i. 5251 - The library cards.s7i has been improved to use functions from 5252 pic_util.s7i. 5253 - The program carddemo.sd7 has been improved to use the new types 5254 and functions from cards.s7i. 5255 5256 20131208: 5257 - Explanations how Seed7 compares to Java and about an elegant way 5258 to initialize data have been added to the FAQ. 5259 - The functions pipe2, pty, startProcess and getSearchPath have been 5260 moved from shell.s7i to the new library process.s7i. 5261 - The function commandPath has been added to process.s7i. 5262 - Under Windows removeFile can trigger an error, when an executable 5263 is removed shortly after it was executed. It was not possible to 5264 correct this failure of Windows in the Seed7 runtime library. To 5265 avoid the Windows error the program chk_all.sd7 has been improved 5266 to catch the raised exception. 5267 - The pictures execute_pic, seed7_include_pic, seed7_source_pic, 5268 clear_pic and save_as_pic have been added to pic16.s7i and 5269 pic32.s7i. 5270 - In pic16.s7i and pic32.s7i the pictures exit_pic, load_pic and 5271 save_pic have been improved. 5272 - The function cmdPty in cmd_unx.c has been improved to free memory 5273 correctly. 5274 - The function cmdPipe2 in cmd_win.c has been improved to open stdin 5275 and stdout in text mode. 5276 - The function filInputReady in fil_unx.c and fil_win.c has been 5277 improved to return TRUE after a hang up respectively a broken 5278 pipe. 5279 5280 20131124: 5281 - The new library pic_util.s7i has been added. It contains utility 5282 functions for pictures. A picture is a simple way to describe 5283 graphic images as readable text. A picture is an array of strings, 5284 where every character describes the color of a pixel. 5285 - The programs castle.sd7, mahjong.sd7, pairs.sd7, panic.sd7, 5286 shisen.sd7, sokoban.sd7 and sudoku7.sd7 have been adjusted to use 5287 pic_util.s7i. 5288 - The pictures in pic16.s7i and pic32.s7i have been adjusted to be 5289 useable by pic_util.s7i. 5290 - The pictures cancel_pic, folder_pic and reset_pic have been added 5291 to pic16.s7i and pic32.s7i. 5292 - A function to convert a pixmap image to BMP format has been added 5293 to draw.s7i. 5294 - The function getPixelColor has been added to draw.s7i. 5295 - In the example programs all usages of the function clear without 5296 parameters have been replaced with clear(black). The function 5297 clear without parameters is deprecated. 5298 - Interpreter and compiler have been improved to support the actions 5299 DRW_GETIMAGE and DRW_GETIMAGEPIXEL. 5300 - The performance of the function strCLit in str_rtl.c has been 5301 improved by a factor of 10. 5302 - The function init_bstri_constants in s7c.sd7 has been improved to 5303 use the function c_literal instead of cCharLiteral. This way it 5304 cannot happen that a sequence like ??( is interpreted as trigraph 5305 sequence. As a side effect the performance has been improved also. 5306 - The function init_win_constants in s7c.sd7 has been improved to 5307 call getImage instead of getPixel. This improves the performance 5308 dramatically. 5309 - The functions prc_return and prc_return2 in prclib.c have been 5310 improved to avoid using block_body when it is NULL. 5311 - Spelling errors in chlog.txt, faq.htm, faq.txt, install.txt, 5312 manual.htm, manual.txt, problems.txt read_me.txt, src/read_me.txt, 5313 flistutl.c, flistutl.h, heaputl.c, heaputl.h and striutl.c have 5314 been fixed. 5315 - The function drwGetImage has been added to drw_x11.c and 5316 drw_win.c. 5317 - The function drwGetImagePixel has been added to drw_rtl.c. 5318 - The program chkccomp.c has been improved to write defines for 5319 NO_EMPTY_STRUCTS, HAS_SYMLINKS and HAS_FIFO_FILES to version.h. 5320 5321 20131110: 5322 - Compiler and runtime library have been improved to work on Sparc 5323 64-bit machines under OpenBSD. Thanks go to Brian Callahan, for 5324 his support and for providing access to his Sparc 64-bit machine. 5325 - The FAQ explanation concerning portability has been improved. 5326 - The new library cc_conf.s7i has been added. This library manages 5327 configuration values for C compiler and runtime. 5328 - The compiler has been improved to use the library cc_conf.s7i. 5329 - The chapter about the defines used in version.h has been improved 5330 in src/read_me.txt. 5331 - The type rtlGenerictype has been renamed to generictype in the 5332 files of the runtime library. Now compiler and runtime library 5333 both use the name generictype. 5334 - The function checkForLimitedStringLiteralLength, a check for 5335 trigraph sequences and checks for the presence of getrlimit() 5336 and siglongjmp() have been added to chkccomp.c. 5337 - The function setupStack has been added to cmd_rtl.c. This function 5338 tries to raise the stack limit to STACK_SIZE. 5339 - Usages of USE_SIGSETJMP have been renamed to HAS_SIGSETJMP. 5340 - The table key_code has been improved in kbd_inf.c and kbd_poll.c. 5341 Now the erase char of the terminal interface (VERASE) is always 5342 returned as backspace (KEY_BS respectively '\8\'). This improves 5343 the behavior under Cygwin. 5344 - The function utf8_init has been changed in kbd_inf.c and 5345 kbd_poll.c to assume UTF-8 mode when no locale environment 5346 variable is set. 5347 - The function msgDigest in msgdigest.s7i has been changed to use 5348 in-parameters. 5349 - The function configValue has been moved from osfiles.s7i to 5350 cc_conf.s7i. 5351 - The macro REALLOC_STRI_SIZE_SMALLER has been added to heaputl.h. 5352 Several usages of REALLOC_STRI_SIZE_OK in the runtime library have 5353 been changed to usages of REALLOC_STRI_SIZE_SMALLER. 5354 - The compiler has been improved to initialize boolean and 5355 enumeration elements of structs with the values value.boolvalue 5356 respectively value.enumvalue. This is necessary to work correctly 5357 on big-endian systems. 5358 - Interpreter and compiler have been improved to support the actions 5359 ACT_EQ and ACT_NE. 5360 5361 20131027: 5362 - Compiler and runtime library have been improved to support 5363 big-endian systems. Thanks go to Brian Callahan, for his support 5364 and for providing access to his PowerPC Macintosh under OpenBSD. 5365 - The list of source files and the chapter about the defines used in 5366 version.h have been improved in src/read_me.txt. 5367 - The library tls.s7i has been improved to avoid raising an 5368 exception, when the remote side closes the socket. 5369 - The program chkccomp.c has been improved to write defines for 5370 CHECK_INT_DIV_BY_ZERO, INT_DIV_BY_ZERO_SIGNALS and 5371 DO_SIGFPE_WITH_DIV_BY_ZERO to version.h. 5372 - Documentation comments have been added or improved in fillib.c, 5373 int_rtl.c, soclib.c, tim_dos.c, tim_unx.c, tim_win.c, ut8lib.c, 5374 ut8_rtl.c, tls.s7i and bytedata.s7i. 5375 - The generic compare functions bigCmpGeneric, bstCmpGeneric, 5376 chrCmpGeneric, intCmpGeneric, rflCmpGeneric, setCmpGeneric, 5377 strCmpGeneric and typCmpGeneric have been improved to work 5378 endianness neutral. Now they work correct on little- and 5379 big-endian systems. 5380 - The generic create functions bigCreateGeneric, bstCreateGeneric, 5381 drwCreateGeneric, rflCreateGeneric, setCreateGeneric, 5382 strCreateGeneric and itfCreateGeneric have been improved to work 5383 endianness neutral. Now they work correct on little- and 5384 big-endian systems. 5385 - The new generic copy functions bigCpyGeneric, bstCpyGeneric, 5386 drwCpyGeneric, fltCpyGeneric, rflCpyGeneric, setCpyGeneric and 5387 strCpyGeneric have been added. This functions work endianness 5388 neutral. 5389 - The new generic destroy functions bigDestrGeneric, 5390 drwDestrGeneric, rflDestrGeneric, setDestrGeneric and 5391 strDestrGeneric have been added. This functions work endianness 5392 neutral. 5393 - The functions uintCmpGeneric, intCreateGeneric and intDestrGeneric 5394 have been renamed to genericCmp, genericCreate respectively 5395 genericDestr. 5396 - The functions genericCpy, ptrCmp, ptrCmpGeneric, ptrCpyGeneric and 5397 ptrCreateGeneric have been added to int_rtl.c. 5398 - The function cmdConfigValue in cmd_rtl.c has been improved to 5399 support the config value DO_SIGFPE_WITH_DIV_BY_ZERO. 5400 - The handling of the option -l in processOptions (file s7.c) has 5401 been improved to work endianness neutral. 5402 - Several functions have been optimized: 5403 In infile.c: get_file_name and get_file_name_ustri 5404 In prg_comp.c: prgSyobject 5405 In rfllib.c: rfl_elemcpy and rfl_idx 5406 In rfl_data.c: rflElemcpy, rflIdx and rflTail 5407 - The function get_ident and the macro IDENT_TABLE have been changed 5408 to have an additional progtype argument. 5409 - The function typNum in typ_data.c has been improved to use a 5410 hashtable. 5411 - In typlib.c the functions typ_num and typ_str have been improved 5412 to call typNum respectively typStr. 5413 - Support for the actions ACT_ICONV and ACT_ORD has been added to 5414 interpreter, compiler and runtime library. 5415 - The function id_string2 has been added to datautl.c, and used in 5416 ref_data.c and typ_data.c. 5417 5418 20131013: 5419 - Libraries for TLS (Transport Layer Security), SSL (Secure Sockets 5420 Layer) and HTTPS (HyperText Transfer Protocol Secure) support have 5421 been added. The new libraries are: arc4.s7i, asn1.s7i, cipher.s7i, 5422 gethttps.s7i, hmac.s7i, pkcs1.s7i, tls.s7i and x509cert.s7i. 5423 - Comparison operators for < (proper subset) and > (proper superset) 5424 have been added to hashsetof.s7i. 5425 - The type digestAlgorithm and the functions msgDigest, blockSize 5426 and digestSize have been added to msgdigest.s7i. 5427 - The function hex has been added to bytedata.s7i. 5428 - The example program castle.sd7 has been improved to avoid, that 5429 an item can be dropped on an illegal place. 5430 - The library make.s7i has been improved to accept the option -p for 5431 the cp command. 5432 - Documentation comments have been added to sockbase.s7i, 5433 socket.s7i, atom.c, entutl.c, soclib.c, soc_rtl.c and striutl.c. 5434 - The padding in the message digest functions of msgdigest.s7i has 5435 been corrected. Now the functions pad nothing instead of 64 bytes, 5436 when the message length is 55 (mod 64). 5437 - The function getHttp in gethttp.s7i has been improved to use 5438 a case-insensitive comparison for HTTP header field names. 5439 - In exec.c the functions eval_arg_list and dump_arg_list have been 5440 improved to avoid reading from freed memory. This occurred in very 5441 rare cases. 5442 - The functions find_action (in actutl.c), fltParse (in flt_rtl.c), 5443 cmdConfigValue (in cmd_rtl.c) and find_sysvar (in syvarutl.c) 5444 have been improved to use the macros MAX_STRI_EXPORT_LEN and 5445 max_utf8_size. 5446 - Interpreter and runtime library have been improved to ignore the 5447 signal SIGPIPE. Writing to a broken pipe or socket raises the 5448 exception FILE_ERROR instead. 5449 - The functions bln_and and bln_or in blnlib.c have been improved 5450 to return either SYS_TRUE_OBJECT or SYS_FALSE_OBJECT. 5451 - The program chkccomp.c has been improved to determine the 5452 alignment used by malloc and whether an access to unaligned memory 5453 succeeds. 5454 - Usages of ALLOC_CHUNK in flistutl.h have been improved to allocate 5455 aligned memory the same way as malloc returns aligned memory. 5456 - The program chkccomp.c has been improved to define the macro 5457 'inline', when the C compiler does not support the keyword inline. 5458 - Occurrences of 'INLINE' have been replaced with 'inline' in the 5459 files analyze.c, atom.c, big_gmp.c, big_rtl.c, chr_rtl.c, exec.c, 5460 findid.c, infile.c, int_rtl.c, numlit.c, parser.c, rfl_data.c, 5461 scanner.c, striutl.c, strlib.c, str_rtl.c, syntax.c and ut8_rtl.c. 5462 5463 20130929: 5464 - The functions bStriLe, bytesLe, bStriBe and bytesBe have been 5465 added to bytedata.s7i. This functions convert an integer to a 5466 sequence of bytes. 5467 - The compiler has been improved to generate inline code for the 5468 action STR_PUSH. This action is used when a character is appended 5469 to a string (with the operator &:= ). 5470 - The function sendGet has been added to gethttp.s7i. 5471 - The functions str_yy_mm_dd and str_hh_mm_ss have been added to 5472 time.s7i. 5473 - Checks for +:= and -:= have been added to chkbig.sd7. 5474 - Checks for bytesBe and bytesLe have been added to chkint.sd7. 5475 - Checks for & and &:= have been added to chkstr.sd7. 5476 - The function doLocalDeclsOfStatement has been added to the 5477 compiler. This function is used to simplify the processing 5478 of various statements. 5479 - The functions that process the statement actions BIG_GROW, 5480 BIG_LSHIFT_ASSIGN, BIG_MULT_ASSIGN, BIG_RSHIFT_ASSIGN, 5481 BIG_SHRINK, BLN_CPY, CHR_CPY, CHR_GROW, CHR_SHRINK, ENU_CPY, 5482 FIL_CPY, FLT_CPY, FLT_DIV_ASSIGN, FLT_GROW, FLT_MULT_ASSIGN, 5483 FLT_SHRINK, INT_AND_ASSIGN, INT_CPY, INT_GROW, INT_LSHIFT_ASSIGN, 5484 INT_MULT_ASSIGN, INT_OR_ASSIGN, INT_RSHIFT_ASSIGN, INT_SHRINK, 5485 INT_URSHIFT_ASSIGN, REF_CPY, RFL_INCL, SET_EXCL, SET_INCL, 5486 SOC_CPY, STR_PUSH and TYP_CPY in the compiler have been 5487 simplified. 5488 - The functions int_toBStriBe and int_toBStriLe have been added to 5489 intlib.c. 5490 - The functions intToBStriBe and intToBStriLe have been added to 5491 int_rtl.c 5492 - In big_rtl.c and big_gmp.c the functions bigFromBytesBe and 5493 bigFromBytesLe have been renamed to bigFromByteBufferBe 5494 respectively bigFromByteBufferLe. 5495 - The performance of the functions bst_cmp (in bstlib.c), bstCmp 5496 (in bst_rtl.c) and strMult (in str_rtl.c) has been improved. 5497 - The macro 'unlikely' has been added to functions in bst_rtl.c. 5498 5499 20130908: 5500 - The compiler has been improved to use charvalue instead of 5501 intvalue, when characters are initialized. Thanks go to Brian 5502 Callahan, for reporting the bug. Btw.: Brian Callahan created an 5503 openBSD port for Seed7. 5504 - The makefile mk_freebsd.mk has been added to support compilation 5505 under freeBSD. Thanks go to Pietro Cerutti, for providing it. 5506 - The makefiles mk_clang.mak and mk_freebsd.mk have been improved 5507 to use the options -ffunction-sections, -fdata-sections and 5508 -Wl,--strip-debug. 5509 - The functions bStriLe2BigInt, bytesLe2BigInt, bStriBe2BigInt, 5510 bytesBe2BigInt, bStriLe, bytesLe, bStriBe and bytesBe have been 5511 added to bytedata.s7i. This functions convert between sequences 5512 of bytes and bigInteger numbers. 5513 - In bytedata.s7i the functions bytesLeAsInt and bytesBeAsInt have 5514 been renamed to bytesLe2Int respectively bytesBe2Int. 5515 - Parameter names have been added to seed7_05.s7i, graph_file.s7i, 5516 graph.s7i, reference.s7i, pac.sd7, tetg.sd7, tet.sd7 and wiz.sd7. 5517 - Checks for the Karatsuba multiplication and the functions bytesBe, 5518 bytesLe, bytesBe2BigInt and bytesLe2BigInt have been added to 5519 chkbig.sd7. 5520 - Checks for set membership in character sets have been added to 5521 chkset.sd7. 5522 - The readability of the bitset initialization in the compiler (s7c) 5523 has been improved. 5524 - Interpreter and compiler have been improved to support the new 5525 actions BIG_FROM_BSTRI_BE, BIG_FROM_BSTRI_LE, BIG_TO_BSTRI_BE and 5526 BIG_TO_BSTRI_LE. 5527 - The functions bigFromBytesBe, bigFromBytesLe, bigFromBStriBe, 5528 bigFromBStriLe, bigToBStriBe and bigToBStriLe have been added to 5529 both, big_gmp.c and big_rtl.c. 5530 - In big_gmp.c and big_rtl.c the function bigImport has been 5531 rewritten to use bigFromBytesBe. 5532 - The readability of the function uint2_mult in int_rtl.c has been 5533 improved. 5534 - The program chkccomp.c has been improved to check for a ones 5535 complement inttype and if casting can be used to get the element 5536 of a union. 5537 - Several makefiles have been adjusted to use 'cp -p' instead of 5538 'cp -a'. The cp command of openBSD does not support -a. 5539 - The function bigRand in big_rtl.c has been improved to avoid that 5540 a random number is outside the required range. 5541 5542 20130820: 5543 - The library sha1.s7i has been renamed to msgdigest.s7i. 5544 - The message digest and secure hash functions md4, md5, sha224 and 5545 sha256 have been added to msgdigest.s7i. 5546 - The new library propertyfile.s7i, which defines functions to 5547 read a property file into a hash table, has been added. 5548 - The performance of the random number generator has been improved. 5549 The function uint2_mult in int_rtl.c is now defined as inline 5550 function. The macro 'unlikely' has been added to describe that the 5551 initialization of the random number generator is unlikely. 5552 - The function uint_mult has been added to int_rtl.c and used in 5553 big_rtl.c. 5554 - The macro 'unlikely' has been added to functions in flt_rtl.c. 5555 - The function bytesLeAsInt has been added to the library 5556 bytedata.s7i. 5557 - In bytedata.s7i the function int64AsBytesBytesLe has been renamed 5558 to int64AsEightBytesLe. 5559 - A variant of the function skipWhiteSpace has been added to the 5560 library scanfile.s7i. 5561 5562 20130805: 5563 - The functions hashCode in complex.s7i, duration.s7i, rational.s7i 5564 and time.s7i have been improved to avoid an integer overflow. 5565 Thanks to Pietro Cerutti, for reporting this problem. 5566 - The description of the Seed7 installation in doc/install.txt has 5567 been improved. 5568 - The new library sha1.s7i, which defines a message digest with the 5569 SHA-1 secure hash algorithm, has been added. 5570 - Definitions of the operators &:= and |:= have been added to 5571 bin32.s7i. 5572 - The functions int64AsBytesBytesLe, int64AsEightBytesBe and 5573 bytesBeAsInt have been added to bytedata.s7i. 5574 - Interpreter and compiler have been improved to support the actions 5575 INT_AND_ASSIGN and INT_OR_ASSIGN. 5576 - A bug in the function conText (file con_win.c) has been fixed. 5577 - Debug code has been added to kbd_inf.c and kbd_poll.c. 5578 - The makefile mk_cygw.mak has been improved to avoid problems with 5579 the console keyboard. 5580 5581 20130722: 5582 - Spelling errors in chlog.txt, faq.htm and faq.txt have been fixed. 5583 - The function conText (in con_win.c) has been improved to work 5584 correctly for long strings. The underlying function WriteConsoleW 5585 fails for string lengths above some limit between 26000 to 32000. 5586 - The functions find_window, remove_window, gkbGetc, gkbKeyPressed, 5587 gkbButtonPressed, gkbRawGetc, gkbWindow, gkbButtonXpos and 5588 gkbButtonYpos have been moved from drw_win.c to the new file 5589 gkb_win.c. 5590 - In the functions drwPCircle, drwPFCircle, drwPFEllipse and 5591 drwFPolyLine (file drw_win.c) wrong usages of inIntRange have been 5592 replaced with better code. 5593 - In con_win.c the table map_key has been improved such that kbdGetc 5594 recognizes the key F12. 5595 - In gkb_x11.c the functions find_window, enter_window and 5596 remove_window have been improved. 5597 - The makefiles mk_bcc32.mak, mk_bccv5.mak, mk_mingc.mak, 5598 mk_mingw.mak, mk_msvc.mak, mk_msys.mak and mk_nmake.mak have been 5599 changed to use the new file gkb_win.c. 5600 - The program chk_all.sd7 has been improved to call chkhsh.sd7. 5601 - The program chkhsh.sd7 has been improved. 5602 - The compiler has been improved to generate compare functions with 5603 the correct prototype. 5604 - The functions bitSize and process_generic_cmp_declaration have been 5605 added to s7c.sd7. 5606 - In flt_rtl.c the function fltCpy has been renamed to fltCpyGeneric. 5607 - The functions dump_hash and dump_helem have been added to 5608 hsh_rtl.c. 5609 - The function new_type in typeutl.c has been changed to add the new 5610 type to the parameter owningProg instead of the global prog. 5611 5612 20130704: 5613 - A wordfile for Ultraedit and a syntax definition file for Textpad 5614 has been added. Many thanks to Renato Lenzi for providing it. This 5615 files can be found also on his great italian page about Seed7. 5616 - A compilation problem with DJGPP in fil_rtl.c has been fixed 5617 (thanks to "Rugxulo" for pointing it out). 5618 - The keyboard read function getc(KEYBOARD) has been improved to 5619 accept all Unicode characters also under Linux/Unix/BSD. Up to now 5620 the function did only accept Latin-1 characters. 5621 - The keyboard read function getc(KEYBOARD) has been improved to 5622 accept usages of the mouse wheel also under Windows. 5623 - Checks for correct UTF-8 encoding of the program source have been 5624 added. Overlong UTF-8 encodings, UTF-16 surrogate characters and 5625 missing UTF-8 continuation bytes result in a compile time error. 5626 - The example program err.sd7, which checks compile time error 5627 messages, has been improved. 5628 - The FAQ explanations concerning Unicode and automatic casts have 5629 been improved. 5630 - Documentation comments have been added to gzip.s7i and make.s7i. 5631 - The example programs gkbd.sd7 and kbd.sd7 have been improved to 5632 write the character, if it is printable. 5633 - The example programs pairs.sd7, panic.sd7, tetg.sd7, sokoban.sd7, 5634 sudoku7.sd7, mandelbr.sd7 and wator.sd7 have been changed to use 5635 proportional Seed7 pixmap fonts. 5636 - Tests for the functions lower and upper with cyrillic letters have 5637 been added to chkstr.sd7. 5638 - The libraries console.s7i, pixmap_file.s7i, graph_file.s7i, 5639 file.s7i, editline.s7i, echo.s7i, null_file.s7i, external_file.s7i, 5640 strifile.s7i, stritext.s7i, tee.s7i, window.s7i, reverse.s7i, 5641 lower.s7i and upper.s7i, have been improved to work with 5642 proportional fonts. Proportional font support uses the functions 5643 moveLeft, erase, backSpace, cursorOn and cursorOff. 5644 - The vector font cronos16 has been improved to look more similar to 5645 the font cronos27. 5646 - The bitmap fonts stdFont10, stdFont12, stdFont14, stdFont16, 5647 stdFont18, stdFont20 and stdFont24 have been improved. 5648 - The vector fonts vecFont10 and vecFont18 have been adjusted to look 5649 like the corresponding bitmap fonts. 5650 - The fonts stdFont8, stdFont9 and cronos27 have been improved to use 5651 less spacing between the characters. 5652 - In graph_file.s7i the logic of a writeln after a setPosXY has been 5653 changed. Now the writeln moves one line downward relative to the 5654 position given with setPosXY. 5655 - A description of the subrange operator, which gets an array slice 5656 from a position with maximum length, has been added to the manual. 5657 - A table to map keysym values to Unicode and the function 5658 mapKeysymToUnicode, which does a binary search in this table, have 5659 been added to gkb_x11.c. 5660 - The function gkbGetc in gkb_x11.c has been improved to work without 5661 recursion, to use mapKeysymToUnicode and to recognize cursor keys 5662 in combination with ALT, NUMLOCK and SHIFT. 5663 5664 20130616: 5665 - Documentation comments have been added or improved in bigfile.s7i, 5666 char.s7i, clib_file.s7i, complex.s7i, external_file.s7i, file.s7i, 5667 float.s7i, hash.s7i, integer.s7i, shell.s7i, string.s7i, utf16.s7i, 5668 osfiles.s7i, rational.s7i, arrlib.c, blnlib.c, bstlib.c, arr_rtl.c, 5669 big_gmp.c, big_rtl.c, bst_rtl.c, chrlib.c, chr_rtl.c, cmdlib.c, 5670 cmd_rtl.c, fillib.c, fil_rtl.c, fltlib.c, flt_rtl.c, hshlib.c, 5671 hsh_rtl.c, int_rtl.c, pol_sel.c, pol_unx.c, setlib.c, set_rtl.c, 5672 strlib.c, str_rtl.c. 5673 - The functions lower and upper in string.s7i and char.s7i have been 5674 improved to use the default Unicode case mapping. In other words: 5675 conversions to lower respectively upper case works for all Unicode 5676 characters, which have a case mapping. Characters without case 5677 mapping are left unchanged. The mapping is independent from the 5678 locale. Individual character case mappings cannot be reversed, 5679 because some characters have multiple characters that map to them. 5680 - In the library deflate.s7i the performance of the deflate 5681 compression has been improved by a factor between 5 and 10. 5682 - The performance of the functions str_cmp, str_range and str_substr 5683 in strlib.c has been improved. 5684 - The performance of the functions strCompare, strRangeSlice, 5685 strRange, strSubstrSlice and strSubstr in str_rtl.c has been 5686 improved. 5687 - Tests for the string functions compare, lower and upper and for the 5688 index operations head, tail, range and substring have been added to 5689 chkstr.sd7. 5690 - The definition of the macro arrayMaxPos in common.h has been 5691 improved and usages of the macro have been added to arrlib.c and 5692 arr_rtl.c. 5693 - The compiler has been improved to support the actions HSH_IDX2 and 5694 HSH_UPDATE. 5695 - The compiler has been improved to inline code for the actions 5696 STR_HASHCODE, STR_RANGE and STR_SUBSTR. 5697 - The function intStrToBuffer has been added to int_rtl.c. This 5698 function allows conversions from integer to string, without 5699 memory allocation. 5700 - The compiler has been improved to take advantage of the function 5701 intStrToBuffer. 5702 - The functions getGenericValue, getGenericValueToResultExpr, 5703 getTempVariable, beginCastGeneric, endCastGeneric, 5704 beginCastGenericToResultExpr and endCastGenericToResultExpr have 5705 been added to the compiler. 5706 - The functions hsh_idx2 and hsh_update have been added to hshlib.c. 5707 - The functions hshIdxAddr2 and hshUpdate have been added to 5708 hsh_rtl.c 5709 - The macro hashCode has been defined in str_rtl.h and used in 5710 str_rtl.c (function strHashCode) and strlib.c (function 5711 str_hashcode). 5712 - The program chkccomp.c has been improved to write a definition of 5713 the macro INLINE to version.h 5714 - The deprecated function 'read_dir' has been removed from the 5715 library "osfiles.s7i". The replacement of 'read_dir' is 'readDir'. 5716 - The functions arrHeadTemp, arrRangeTemp and arrSubarrTemp in 5717 arr_rtl.c have been improved. 5718 5719 20130602: 5720 - The implementation of the type integer has been changed to use a 5721 64-bit value. 5722 - Documentation comments have been added to bigint.s7i, integer.s7i, 5723 string.s7i, arr_rtl.c, big_gmp.c, biglib.c, big_rtl.c, flt_rtl.c, 5724 intlib.c, int_rtl.c, set_rtl.c and str_rtl.c. 5725 - The new library bin32.s7i, which defines bit operations for 32-bit 5726 values, has been added. 5727 - The new library crc32.s7i, which supports the CRC-32 cyclic 5728 redundancy check, has been added. 5729 - The new library deflate.s7i, which supports the deflate compression 5730 algorithm, has been added. 5731 - The library binary.s7i has been renamed to bytedata.s7i. The 5732 functions get_asciiz, get_uint16_le, get_uint32_le, get_uint16_be 5733 and get_uint32_be have been renamed to getAsciiz, getUInt16Le, 5734 getUInt32Le, getUInt16Be and getUInt32Be respectively. Definitions 5735 of the functions int16AsTwoBytesLe, int32AsFourBytesLe, 5736 int16AsTwoBytesBe and int32AsFourBytesBe have been added. 5737 - The functions getBitLe, getBitsLe, getNonCompressedBlock, 5738 getLiteralOrLength, getDistance, decodeLength, decodeDistance, 5739 decodeFixedHuffmanCodes, getHuffmanValue, computeConversionTable, 5740 decodeDynamicHuffmanCodes, processCompressedBlock and inflate have 5741 been moved from gzip.s7i to the new library inflate.s7i. 5742 - The functions gzip, openGzipFile, close and write have been added 5743 to the library gzip.s7i. 5744 - The functions 'name' and 'path' have been added to the library 5745 progs.s7i. 5746 - The function openStrifile has been added to strifile.s7i. 5747 - The library tar.s7i and the example program tar7.sd7 have been 5748 improved to allow the creation of compressed archives. 5749 - The compiler has been improved to support the actions BIG_CONV, 5750 BIN_AND, BIN_OR, BIN_XOR, INT_AND, INT_OR, INT_XOR, INT_URSHIFT, 5751 INT_URSHIFT_ASSIGN, PRG_OWN_NAME and PRG_OWN_PATH. 5752 - Optional checks for integer shift operations have been added to 5753 the compiler. 5754 - The function bigFromInt64 and bigToInt64 in big_gmp.c have been 5755 improved. 5756 - Several functions in big_gmp.c have been improved to free temporary 5757 values with mpz_clear(). 5758 - The function big_conv() has been added to biglib.c. 5759 - The functions drw_image and drwRtlImage have been improved. 5760 - The functions drwImage in drw_win.c and drw_x11.c have been 5761 improved. 5762 - The meaning of the actions PRG_NAME and PRG_PATH has changed. The 5763 new actions PRG_OWN_NAME and PRG_OWN_PATH are used as replacement. 5764 - The functions strRPos2, strRIPos2 and strRepl2 have been added to 5765 str_rtl.c. This functions use a modified Boyer–Moore string search 5766 algorithm. 5767 - Usages of the macro arraySize have been added to drwlib.c, 5768 drw_rtl.c, libpath.c and prg_comp.c. 5769 - The macro arrayMaxPos has been defined in common.h and used in 5770 arrlib.c and arr_rtl.c. 5771 5772 20130519: 5773 - The support for K&R C has been removed. Now an ANSI C compiler is 5774 required to compile Seed7. For many years all officially supported 5775 C compilers have been ANSI C compilers. 5776 - The manual chapters describing rational, bigRational and the 5777 functions min and max have been improved. 5778 - The functions min and max have been added to bigint.s7i, bigrat.s7i 5779 and rational.s7i. 5780 - Addition and subtraction operators in rational.s7i and bigrat.s7i 5781 have been improved to reduce the result. 5782 - The parse operator in bigrat.s7i has been improved to process 5783 negative rational literals correctly. 5784 - The function round in bigrat.s7i has been fixed. 5785 - Documentation comments in boolean.s7i, float.s7i and integer.s7i 5786 have been improved. 5787 - A standard bitmap font, with capital height of 8, has been defined 5788 in the new library stdfont8.s7i. 5789 - Definitions of min and max have been removed from dnafight.sd7 and 5790 dna_base.s7i. 5791 - The example program ftp7.sd7 has been improved to allow linewise 5792 editing with history. 5793 - The code generation for the actions HSH_CPY and HSH_IDX in the 5794 compiler has been improved. 5795 - In arrlib.c, hshlib.c, arr_rtl.c and hsh_rtl.c several functions, 5796 which enlarge an array, have been improved to avoid overflows. This 5797 overflows could happen when the array size or the new maximum index 5798 are computed. 5799 - Definitions of the macros inLongRange, castToLong, inTimeTRange, 5800 arrayIndex, bitsetSize, bitsetSize2 and bitsetIndex have been added 5801 to common.h. 5802 - Functions in setlib.c and set_rtl.c have been improved to use the 5803 macros bitsetSize, bitsetSize2 and bitsetIndex. 5804 - Functions in drw_x11.c and drw_win.c have been improved to check 5805 for range violations and to cast parameters. 5806 - The functions to draw an image (drwImage, drw_image, drwRtlImage) 5807 in drw_dos.c, drw_win.c, drw_x11.c, drw_rtl.c and drwlib.c have 5808 been improved to use image data with int32type elements. 5809 - The function socInputReady in soc_rtl.c has been improved to take 5810 the seconds and microsecond parameter into account. 5811 - In tim_rtl.c the functions timFromTimestamp, timFromIntTimestamp, 5812 timToTimestamp and timSetLocalTZ have been improved. 5813 5814 20130505: 5815 - Functions to compare arrays (compare, <, >, <=, >=) have been added 5816 to the library array.s7i. 5817 - In seed7_05.s7i the functions hashCode and compare have been 5818 defined for enum types. 5819 - In the library bigrat.s7i the operator parse has been improved. Now 5820 the parse operator accepts decimal numbers with repeating decimals. 5821 - The function integer has been added to the library integer.s7i. 5822 This function converts a numeric string, with a specified radix, to 5823 an integer. 5824 - The function bigInteger has been added to the library bigint.s7i. 5825 This function converts a numeric string, with a specified radix, to 5826 a bigInteger. 5827 - The files encoding.s7i, gethttp.s7i, scanfile.s7i, scanstri.s7i, 5828 xml_ent.s7i and bas7.sd7 have been changed to use the new function 5829 integer instead of toInt (toInt was an undocumented internal 5830 function). 5831 - Checks for the function integer have been added to chkint.sd7. 5832 - Checks for the function bigInteger have been added to chkbig.sd7. 5833 - The operator sci has been added to to the library complex.s7i. This 5834 operator converts a complex to a string in scientific notation. 5835 - The compiler (s7c) has been improved to support the actions 5836 BIG_PARSE_BASED, TYP_CMP, ENU_CPY, ENU_CREATE and GEN_DESTR. 5837 - The memory management in the interpreter has been improved. Now it 5838 is possible that a destructor is called and the object memory is 5839 not freed. This is used to free the memory of struct objects only, 5840 when the usage_count reaches zero. 5841 - The UNUSED flag was defined in data.h and used to monitor if the 5842 object memory can be freed. 5843 - The compiler has been improved to call the destructor for local 5844 interface objects (In process_local_declaration process_destr_call 5845 is called for INTERFACEOBJECT objects). 5846 - The compiler has been improved to initialize set constants, that 5847 are part of a data structure (In walk_const_list SETOBJECT objects 5848 are added to set_const_table). 5849 - The runtime library has been improved to use the action GEN_DESTR 5850 instead of PRC_NOOP as destructor for integer and other simple 5851 data types. 5852 5853 20130421: 5854 - The FAQ explanation concerning garbage collection has been 5855 improved. 5856 - The manual chapters describing the introduction, EBNF, literals 5857 (for integer, bigInteger, float, char and string), set operations 5858 and file I/O have been improved. 5859 - Operations, to get an array slice with a specified length, have 5860 been added to the libraries array.s7i and idxarray.s7i. 5861 - Array aggregates for arrays with a given start index have been 5862 added to idxarray.s7i. 5863 - Functions for binomial coefficient and modular exponentiation have 5864 been added to the library bigint.s7i. 5865 - A definition of an empty set with the name {} has been added to 5866 bitset.s7i. 5867 - Functions to compute the minimum and maximum have been added to the 5868 libraries integer.s7i and float.s7i. 5869 - Documentations comments in keybd.s7i have been improved. 5870 - In pixmap_file.s7i the logic of a writeln after a setPosXY has been 5871 changed. Now the writeln moves one line downward relative to the 5872 position given with setPosXY. 5873 - A pound symbol has been added to several bitmap fonts. 5874 - A standard bitmap font, with capital height of 9, has been defined 5875 in the new library stdfont9.s7i. 5876 - Checks for the factorial function and the binomial coefficient have 5877 been added to chkbig.sd7. 5878 - The comanche webserver has been improved to accept cookies. 5879 - The compiler has been improved to generate better code for the 5880 allocation of array memory. 5881 - The function arrMalloc in arr_rtl.c has been improved to avoid an 5882 overflow, when the size of the memory is computed. 5883 - The functions arrSubarr and arrSubarrTemp have been added to 5884 arr_rtl.c. 5885 - Support for the action ARR_SUBARR has been added to the compiler. 5886 - The macros arraySize and arraySize2 have been defined in common.h 5887 and used in arrlib.c, arr_rtl.c, arrutl.c, cmdlib.c, cmd_unx.c and 5888 cmd_win.c. 5889 - Definitions of INT64TYPE_MIN, INTTYPE_MIN and MIN_MEM_INDEX have 5890 been added to common.h. 5891 5892 20130401: 5893 - The FAQ explanations concerning, 'in' parameters and different 5894 behavior of val and ref parameters, have been improved. 5895 - The keyboard read function getc(KEYBOARD) has been improved to 5896 support more function keys and to accept Unicode characters also 5897 under Windows. 5898 - The program calc.sd7 has been improved to accept and display 5899 Unicode characters. 5900 - The automatic memory management has been improved to work also 5901 for the files managed by pollData. 5902 - The function openEditLineLatin1 has been added to editline.s7i. 5903 Only Latin-1 characters are accepted and written to ''outFile''. 5904 Unicode characters beyond ISO Latin-1 (ISO-8859-1) are ignored. 5905 - In file.s7i the function writeln(file, string) has been defined as 5906 DYNAMIC (virtual) function. This allows that the implementation 5907 function writeln(socket, string) sends string and '\n' together. 5908 - The definition of keys in keybd.s7i have been changed such that 5909 function keys are outside the range of Unicode characters. 5910 - The new library keydescr.s7i, which defines a hash table with 5911 descriptive text for function keys, has been added. 5912 - The implementation function writeln(null_file, string) has been 5913 added to null_file.s7i. This function is used by many derived 5914 types. 5915 - An implementation function of writeln(socket, string) has been 5916 added to socket.s7i. This function sends string and '\n' together. 5917 - Definitions of writeln (without string parameter) have been removed 5918 from external_file.s7i, socket.s7i and utf8.s7i. 5919 - The example programs bas7.sd7, gkbd.sd7 and kbd.sd7 have been 5920 changed to use the hash keyDescription (defined in keydescr.s7i). 5921 - Tests for string assignment and string append (operator &:= ) have 5922 been added to chkstr.sd7. 5923 - The function bigStr in big_rtl.c has been improved to realloc the 5924 string to the correct size. 5925 - The function determineEnvironDefines in chkccomp.c has been 5926 improved. 5927 - The function itf_destr in itflib.c has been improved to cooperate 5928 with the function close_stack (defined in name.c). 5929 - The function kbdKeyPressed in kbd_inf.c has been improved to never 5930 wait for input (calls of tcsetattr() were fixed, see below). 5931 - In pol_unx.c and pol_sel.c the functions addCheck, removeCheck, 5932 polCpy, polCreate, polDestr and polClear have been improved to use 5933 the function pointers incrUsageCount and decrUsageCount from 5934 fileObjectOps. 5935 - The function initPollOperations has been added to pol_unx.c, 5936 pol_sel.c and pol_dos.c. 5937 - In str_rtl.c the functions strAppend and strCopy have been changed 5938 to use SLICE_OVERLAPPING instead of GET_SLICE_ORIGIN. 5939 - In str_rtl.c the functions strHeadSlice, strRangeSlice, 5940 strSubstrSlice and strTailSlice have been improved to avoid 5941 (mis)using the string capacity. Now the capacity of a slice is set 5942 to zero. Before the origin of a slice was stored in the capacity. 5943 - The function print_real_value in traceutl.c has been improved to 5944 print interface values with more detail. 5945 - Support for additional function keys has been added to kbd_inf.c, 5946 kbd_poll.c, cap_def.h, trm_cap.c and trm_inf.c. 5947 - The files kbd_inf.c and kbd_poll.c have been improved to use read() 5948 instead of fread(). 5949 - The files kbd_inf.c and kbd_poll.c have been improved to take a 5950 weakness of tcsetattr() into account. The function tcsetattr() may 5951 return success, although not all changes could be carried out. 5952 Now the calls of tcsetattr() are done via the new functions 5953 term_descr_equal, tcset_term_descr and tcset_vmin_vtime. 5954 - The compiler has been improved to create and use cpy_... functions 5955 for the interface assignment (action ITF_CPY). 5956 - The free list management for strings has been improved to allow 5957 different maximum list lengths for strings with different capacity. 5958 - Definitions of databasetype and sqlstmttype have been added to 5959 common.h. This are the first steps towards database support. 5960 5961 20130317: 5962 - The FAQ explanations concerning, what kind of programs can be 5963 written in Seed7 and the automatic memory management of Seed7, have 5964 been improved. 5965 - The compiler (s7c) has been improved to use the function 5966 strConcatN, when three or more strings are concatenated. 5967 - The compiler has been improved to define and use dynamic (virtual) 5968 destructors for interface types. The function itfCreate is used as 5969 constructor. 5970 - In the compiler the function init_string_constants_with_slices has 5971 been improved, to store the characters of string constants with 5972 more density. 5973 - The compiler functions prepare_typed_result, process_itf_cpy, 5974 process_itf_to_interface and process_ref_trace have been improved. 5975 - In str_rtl.c the functions strIPos2 and strPos2 have been added. 5976 This functions use a modified Boyer–Moore string search algorithm. 5977 - The performance of the function replace2 (library string.s7i) has 5978 been improved. 5979 - The example programs tetg.sd7 and tet.sd7 have been changed to 5980 abstain from using an outdated language feature. Now this programs 5981 can be compiled. 5982 - Parameter names have been added to seed7_05.s7i, pixmap_file.s7i, 5983 bitset.s7i, dialog.s7i, hash.s7i, console.s7i and string.s7i. 5984 - In sctlib.c and itflib.c the functions sct_cpy, sct_create, 5985 sct_destr, itf_cpy, itf_cpy2, itf_create, itf_create2, itf_destr 5986 and itf_to_interface have been improved to use reference counting 5987 (usage_count) for all objects of the category STRUCTOBJECT. 5988 - The support for the actions ITF_TO_HEAP and REF_BUILD has been 5989 removed from the interpreter. 5990 - Support for the action REF_GETREF has been added to interpreter and 5991 compiler. 5992 - The functions itf_to_heap (in itflib.c) and ref_build (in reflib.c) 5993 have been removed. 5994 - The function refItftosct (in ref_data.c) has been renamed to 5995 refItfToSct. The function ref_itftosct (in reflib.c) and the 5996 compiler have been changed to use the new function name. 5997 - The types smallpriortype and prior_type have been replaced by 5998 prioritytype in common.h, data.h, expr.c, expr.h, findid.h, 5999 syntax.c, token.c and token.h. 6000 - In itf_rtl.c the function itfCreate has been added and the function 6001 itfDestr has been removed. 6002 - Usages of the function stri_charpos in analyze.c and prclib.c have 6003 been replaced by calls of strChPos. 6004 - In executl.c the function crea_struct has been introduced and the 6005 function any_var_initialization has been replaced by the functions 6006 sct_elem_initialization and arr_elem_initialization. 6007 - The function prot_block has been added to traceutl.c. 6008 6009 20130303: 6010 - The library editline.s7i has been added. This library defines a 6011 file type for linewise editing with history. 6012 - The manual chapter describing types, especially the type program, 6013 has been improved. 6014 - The calc.sd7 example has been improved to allow linewise editing. 6015 - The handling of the internal program representation in interpreter 6016 and compiler has been improved to free most unused memory. 6017 - The handling of the functions prgGlobalObjects, refArrToList, 6018 refHshDataToList, refHshKeyToList, refLocalVars and refSctToList 6019 in compiler and run-time library has been improved to free unused 6020 memory. 6021 - The stack trace has been improved to display infix operators 6022 better and to write parameter names. 6023 - The compiler has been improved to support the action TYP_FUNC. 6024 - The functions copy_expression and free_expression in listutl.c 6025 have been optimized. 6026 - The function substitute_params has been added to match.c . 6027 - The functions free_params and free_name_list have been added to 6028 name.c . 6029 - The function dump_list has been added to objutl.c . 6030 - The function copy_params has been added to entutl.c . 6031 - The functions prot_float and prot_params have been added to 6032 traceutl.c . 6033 - The functions free_type and close_type have been added to 6034 typeutl.c . 6035 - The free list management has been improved to be configurable 6036 in config.h. 6037 - The memory management in heaputl.h has been improved to work with 6038 and without DO_HEAPSIZE_COMPUTATION. 6039 - The function free_file and remove_prog_files have been added to 6040 infile.c. 6041 - The functions itf_cpy and itf_cpy2 in itflib.c have been improved 6042 to support assigning forward declared objects to an interface. 6043 - The function emptylist and the macro to_empty_list have been 6044 renamed to free_list and free_list2. 6045 - In prg_comp.c the function prgDeclObjects has been renamed to 6046 prgGlobalObjects. 6047 - In ref_data.c the functions refArrmaxidx, refArrminidx, 6048 refArrtolist, refScttolist and refHshKeyToList have been renamed 6049 to refArrMaxIdx, refArrMinIdx, refArrToList, refSctToList and 6050 refHshKeysToList. 6051 - In ref_data.c the functions refResult, refResini and refSetParams 6052 have been improved to raise RANGE_ERROR when the argument is NULL 6053 or when it is not a BLOCKOBJECT. 6054 - In progs.s7i the functions sys_var, error_count, declared_objects, 6055 params, setParams, func_result, func_res_init, local_consts, 6056 local_vars, array_to_list, array_min_index, array_max_index, 6057 struct_to_list, hash_data_to_list, hash_key_to_list, 6058 interface_to_struct, obj_number, type_number and match_obj have 6059 been renamed to sysVar errorCount, globalObjects, formalParams, 6060 setFormalParams, resultVar, resultInitValue, localConsts, 6061 localVars, arrayToList, arrayMinIdx, arrayMaxIdx, structToList, 6062 hashDataToList, hashKeysToList, interfaceToStruct, objNumber, 6063 typeNumber and typeObject. 6064 - In seed7_05.s7i the functions is_func, is_varfunc, result_type and 6065 is_derived have been renamed to isFunc, isVarfunc, resultType and 6066 isDerived. 6067 6068 20130217: 6069 - The description of exceptions in the manual has been improved. 6070 - The handling of the internal program representation in interpreter 6071 and compiler has been improved to free more unused memory. 6072 - The handling of the actions PRG_FIL_PARSE and PRG_STR_PARSE in the 6073 Seed7 compiler (s7c) has been improved to support releasing unused 6074 programs. 6075 - The function prgDestr (in prg_comp.c) has been improved to free 6076 (most of) the data used by a program. Several functions, which need 6077 to free program data, have been improved to call prgDestr. 6078 - The functions prgCpy (in prg_comp.c) and prg_cpy (in prglib.c) have 6079 been improve to free a program when the usage_count reaches zero. 6080 - The functions getPixmap in draw.s7i have been improved. 6081 - The functions decl_any (in analyze.c), dcl_const and dcl_var (both 6082 in dcllib.c) have been improved to free unused expressions. 6083 - The actions ARR_BASELIT, ARR_BASELIT2, ARR_TIMES, ARR_GEN, ARR_PUSH 6084 and ARR_EXTEND in the interpreter (file arrlit.c) have been 6085 improved to work correctly for arrays with interface elements. 6086 - In blockutl.c the functions free_locobj, free_body, free_block and 6087 free_local_consts have been added or improved. 6088 - In entutl.c the function free_entity has been improved to free also 6089 syobject and name_list. 6090 - The function close_entity has been added to entutl.c. This function 6091 frees the list of inactive entities. 6092 - In executl.c the function destroy_local_init_value has been added 6093 and the function destroy_object_list has been removed. 6094 - The parameter dest_type has been added to the function 6095 any_var_initialization (file executl.c). 6096 - The functions heap_statistic (in flistutl.c) and rtlHeapStatistic 6097 (in heaputl.c) have been improved to write information about 6098 pollData elements. 6099 - The functions free_ident and close_idents in identutl.c have been 6100 improved. 6101 - The function free_expression has been added to listutl.c. 6102 - The function pop_object in name.c has been improved to add inactive 6103 entities to a list of inactive entities 6104 - The function close_stack in name.c has been improved to reverse the 6105 list of local objects and to dump and free the local objects. 6106 - The function dump_temp_value, which releases a value without 6107 releasing the object, has been added to objutl.c. 6108 - The function free_args has been added to prg_comp.c. 6109 6110 20130203: 6111 - Files to generate man pages for Seed7 interpreter and compiler have 6112 been added to the documentation (files doc/s7.1 and doc/s7c.1). 6113 - The makefiles have been improved to support the targets distclean 6114 and test. 6115 - The operators radix and RADIX have been added to the libraries 6116 integer.s7i and bigint.s7i. This operators convert an integer 6117 respectively bigInteger to a string. The conversion uses the 6118 numeral system with the given base. 6119 - The variants of the function str, which have a second parameter to 6120 specify a numeric base, are deprecated now and will be removed in a 6121 future release. The operators radix and RADIX should be used 6122 instead. 6123 - Interpreter and compiler have been improved to support the 6124 operators radix and RADIX. 6125 - In chkint.sd7 checks for the function str with base have been 6126 replaced with checks for the operators radix and RADIX. 6127 - Usages of the function str with base have been changed to usages 6128 of the operators radix or RADIX in the files gethttp.s7i, bas7.sd7, 6129 encoding.s7i and s7c.sd7. 6130 - Errors in bas7.sd7, concerning the function VARPTR and the 6131 statement OPEN, have been fixed. 6132 - The function getLineWithMacrosApplied in makedata.s7i has been 6133 improved to ignore space and tab characters after an escaped 6134 newline. 6135 - Result variables have been renamed in various libraries and example 6136 programs. 6137 - The currency sign character has been added to stdfont10.s7i, 6138 stdfont12.s7i, stdfont14.s7i, stdfont16.s7i, stdfont18.s7i, 6139 stdfont20.s7i, stdfont24.s7i, vecfont10.s7i and vecfont18.s7i. 6140 - The file chkccomp.c has been improved to define a macro that 6141 describes what happens, when a cast of a float to int overflows. 6142 6143 20130120: 6144 - Interpreter and compiler have been improved to support the option 6145 -l. This option allows adding a directory to the include library 6146 search path (e.g.: -l ../lib). 6147 - The compiler (s7c) has been improved to support the option -b. 6148 With -b the directory of the Seed7 runtime libraries can be 6149 specified (e.g.: -b ../bin). 6150 - The target s7c in the makefiles has been changed to take advantage 6151 of the options -l and -b. Now packages can compile the Seed7 6152 compiler without a post install step. 6153 - Additional function variants of parseFile, parseStri and execute 6154 have been added to the library progs.s7i. The new functions allow 6155 a detailed specification of parse and execution options. 6156 - The library gzip.s7c has been improved to decode also blocks with 6157 fixed Huffman codes. This type of block is almost never used since 6158 dynamic Huffman codes compress better. 6159 - The parsing of bigInteger literals has been improved to support 6160 literals with bases other than 10 (e.g.: 16#FEDCBA98765434210_). 6161 - The integer and bigInteger functions str (conversion to string) 6162 have been changed to use lower case characters for digits larger 6163 than 9. Now str(48879, 16) returns "beef" instead of "BEEF". 6164 - The program make7.sd7 and the library make.s7i have been improved 6165 to support multiple targets and the option -C. 6166 - The Seed7 compiler has been improved to generate special inline 6167 code for the case that the C floating point division by zero does 6168 not result in Infinity, -Infinity or NaN (not a number). 6169 - The functions chkLiteral and chkBitLength as well as checks for 6170 shifts with negative shift count have been added to the program 6171 chkbig.sd7. 6172 - The function check_division as well as checks for the operator 6173 /:= (in check_nan) have been added to the program chkflt.sd7. 6174 - The function check_str in chkint.sd7 has been improved to check 6175 the new behaviour of the function str with a give base. 6176 - The makefile mk_clang.mak has been added to support compilation 6177 with the clang C compiler. 6178 - The explanations of possible compilation errors in src/read_me.txt 6179 have been improved. 6180 - The functions interpreterPath and callOwnProgram have been removed 6181 from the libraries environment.s7i respectively shell.s7i. This 6182 functions were not used in any example program. 6183 - The support for the interpreter option -m (use less memory during 6184 the analyzing phase) has been removed. On many systems it was a 6185 noop anyway. 6186 - Result variables have been renamed in various libraries and example 6187 programs. 6188 - The functions find_include_file, print_lib_path, append_to_lib_path 6189 and init_lib_path have been moved from infile.c to the new file 6190 libpath.c. 6191 - The function gen_rtl_array has been defined in the new file 6192 arrutl.c. The function is used in the files cmdlib.c (functions 6193 cmd_pipe2, cmd_pty, cmd_start_process) and prglib.c (functions 6194 prg_exec, prg_fil_parse, prg_str_parse). 6195 - The interpreter/compiler improvements (option -l) and the new 6196 function variants in progs.s7i have been realized with changes in 6197 prg_comp.c, analyze.c, data.h, infile.c, infile.h, info.c, option.h 6198 and s7.c. 6199 - The functions prgExec, prgFilParse and prgStrParse in prg_comp.c 6200 have been improved to support additional parse and execution 6201 options. 6202 - The function interpr has been renamed to interpret and moved from 6203 exec.c to prg_comp.c. 6204 - The function copy_args has been moved from prclib.c to prg_comp.c. 6205 - In traceutl.c the function set_trace has been changed and the 6206 function set_trace2 has been removed. The functions mapTraceFlags, 6207 mapTraceFlags2 and set_protfile_name have been added. 6208 - The functions uBigMultiplyAndAdd and bigParseBased have been added 6209 to big_rtl.c: 6210 - In big_gmp.c the functions bigBitLength, bigLShift, bigRShift, 6211 bigLShiftAssign, bigRShiftAssign, bigParse, and bigToInt32 have 6212 been improved and bigParseBased has been added. 6213 - To support bigInteger literals with base the file numlit.c has been 6214 changed. The function readBigBased has been added and readinteger 6215 has been removed. Several functions in numlit.c have been renamed. 6216 6217 20130105: 6218 - The Seed7 interpreter was renamed. The new name of the Seed7 6219 interpreter is s7. 6220 - Manual, FAQ, read_me files and several example programs were 6221 updated to use the new name of the Seed7 interpreter (s7). 6222 - The build process of a package can compile interpreter and compiler 6223 with (xx and yy must be replaced with a path): 6224 make S7_LIB_DIR=xx SEED7_LIBRARY=yy depend s7 s7c 6225 - The function drwOpen in drw_win.c was improved to hide the console 6226 window, when the program was not started from a console. 6227 - Descriptions of the operators 'sci' and 'exp' were added to the 6228 manual. 6229 - Documentation comments were added to clib_file.s7i. 6230 - In pixmap_file.s7i the functions for pixmapFontFiles were improved. 6231 - Interpreter and compiler were improved to allow using winmain as 6232 main function. 6233 - In cmd_win.c the function prepareCommandLine was improved and in 6234 the function cmdStartProcess the flag wShowWindow was changed to 1. 6235 - The file hi.c was renamed to s7.c. 6236 - In striutl.c the function escape_command was changed to quote 6237 commands with special characters under Windows. 6238 - In striutl.c the function cp_to_command was improved to do a 6239 quoting under Windows, even when there are no parameters. 6240 - Parameter names were added to null_file.s7i, osfiles.s7i, time.s7i, 6241 pixmapfont.s7i, progs.s7i, reference.s7i, seed7_05.s7i, shell.s7i, 6242 stritext.s7i, text.s7i, rever.sd7 and snake.sd7. 6243 6244 20121221: 6245 - The Seed7 compiler (s7c) was improved to support constant pixmaps 6246 (constants with the type PRIMITIVE_WINDOW). 6247 - The Seed7 compiler was improved to omit array constant 6248 declarations and initializations for unused array constants. 6249 - Result variables were renamed in various libraries and example 6250 programs. 6251 - The function DRAW_GETPIXEL in graph.s7i was renamed to getPixel. 6252 - The function imagePixmap in draw.s7i was changed to have one 6253 parameter instead of two. 6254 - Pictures of a grating and a vampire were removed from castle.sd7, 6255 pairs.sd7 and shisen.sd7 and added to pic16.s7i and pic32.s7i. 6256 - The function getValue was overloaded for PRIMITIVE_WINDOW values 6257 in the library progs.s7i. 6258 - Documentation comments were added to the operators & and <& in the 6259 library string.s7i. 6260 - Interpreter and compiler were improved to support the action 6261 DRW_VALUE. The function drw_value was added to drwlib.c and the 6262 function drwValue was added to ref_data.c. 6263 - The functions drw_cpy and drwCpy in drwlib.c respectively drw_rtl.c 6264 were improved to manage the usage_count for assignments like A := A 6265 correctly. 6266 - The new function drwRtlImage was added to drw_rtl.c. 6267 - A check for the window close button (X) was added to the function 6268 gkbKeyPressed in drw_win.c. 6269 - The dummy function drwImage in drw_win.c was replaced with a real 6270 implementation of drwImage. 6271 - The function drwImage was changed to have one parameter instead of 6272 two in drw_drv.h, drw_dos.c, drw_win.c and drw_x11.c. 6273 - The function drwImage in drw_x11.c was improved to call dra_init(), 6274 when necessary. 6275 6276 20121212: 6277 - The Seed7 compiler was renamed. The new name of the Seed7 compiler 6278 is s7c. 6279 - Manual, FAQ, read_me files and several example programs were 6280 updated to use the new name of the Seed7 compiler (s7c). 6281 - A description of ltrim and rtrim and some links were added to the 6282 manual. 6283 - The library make.s7i and the example program make7.sd7 were 6284 improved to execute make commands with predefined macros. 6285 - The library makedata.s7i was improved to support dependencies 6286 which contain a space. 6287 - The library make.s7i was improved to support the command cp -a. 6288 - A variant of the function popen, with the parameters 'command' and 6289 'parameters', was added to shell.s7i. 6290 - An explanation, why & and <& are defined for string concatenation, 6291 was added to the FAQ. 6292 - The program tar7.sd7 was improved to accept also DOS paths for all 6293 file arguments. 6294 - Documentation comments were added to progs.s7i and reference.s7i. 6295 - The files drw_win.c, drw_x11.c and gkb_x11.c were improved to 6296 exit a program when the close button (X) is pressed. 6297 - The functions refFile, refLine, refParams and refSetParams in 6298 ref_data.c were improved to raise RANGE_ERROR, when they are 6299 called with NULL. 6300 - The function ref_params in reflib.c was improved to call refParams. 6301 - The makefiles were improved such that 'make s7c' generates an 6302 executable of the Seed7 compiler. 6303 - The makefile mk_mingc.mak, which supports the compilation of the 6304 self extracting version of Seed7, was improved. 6305 - The support for the unused action REF_NAME was removed. 6306 6307 20121125: 6308 - The makefiles and the file setpaths.c were improved to accept the 6309 macros S7_LIB_DIR (Directory with static Seed7 object libraries) 6310 and SEED7_LIBRARY (Directory with the Seed7 include libraries). 6311 Now the build process of a package can call make e.g. with: 6312 make S7_LIB_DIR=/abc/seed7/bin SEED7_LIBRARY=/abc/seed7/lib depend 6313 This way the two paths are defined in version.h. This defines them 6314 as default paths in the interpreter executable and in the compiler. 6315 - An explanation, what a binary Seed7 package should install, was 6316 added to the FAQ. This can be used as guideline for Seed7 packages. 6317 - The description of the times-operator in the manual and in 6318 array.s7i was improved. 6319 - A description of the function name(PROGRAM), file(PROGRAM) and 6320 'environment' was added to the manual. 6321 - The new library environment.s7i was added. Most of the contents of 6322 this library was extracted from "seed7_05.sd7". The new library is 6323 included from "seed7_05.s7i", so no change in existing programs is 6324 necessary. 6325 - A documentation comment for getSearchPath was added to shell.s7i. 6326 - The functions ltrim and rtrim were added to the library string.s7i. 6327 - Test cases for ltrim and rtrim were added to chkstr.sd7. 6328 - The function getProgramName in arr_rtl.c was improved to do the 6329 comparison with EXECUTABLE_FILE_EXTENSION correctly. 6330 - The program tar7.sd7 was improved to accept also DOS paths for the 6331 file specified with -f. 6332 - The function homeDir was improved to work with DJGPP (eitherHOME
6333   or C:\ is used).
6334 - The function prc_cpy in prclib.c was improved.
6335 - The files executl.c, hshlib.c, ref_data.c, reflib.c and sctlib.c
6336   were improved to copy the descriptor union with memcpy and to copy
6337   the posinfo flag with SET_ANY_FLAG, when necessary.
6338
6339 20121104:
6340 - The new function homeDir was added to the library osfiles.s7i.
6341   Interpreter and compiler were improved to support homeDir.
6342 - The libraries makedata.s7i and make.s7i were improved to support
6343   replacement macros.
6344 - A check for division by zero with /:= was added to chkflt.sd7.
6345 - The compiler (comp.sd7) was improved to use definitions of
6346   NOT_A_NUMBER, POSITIVE_INFINITY and NEGATIVE_INFINITY.
6347 - The program chkccomp.c was improved. Now it manages the macros
6348   likely, unlikely, UNISTD_H_PRESENT, POPEN_MISSING, os_utime_orig,
6349   os_utime, USE_ALTERNATE_UTIME, INCLUDE_SYS_UTIME, USE_LOCALTIME_R,
6350   USE_LOCALTIME_S, FLOAT_ZERO_DIV_ERROR, CHECK_FLOAT_DIV_BY_ZERO,
6351   ISNAN_WITH_UNDERLINE and HOME_DIR_ENV_VAR. Additionally chkccomp.c
6352   does not depend on the definitions of long_long_EXISTS,
6353   long_long_SUFFIX_LL, __int64_EXISTS, __int64_SUFFIX_LL and
6354   USE_BUILTIN_EXPECT in chkccomp.h.
6356   to work correctly when CHECK_FLOAT_DIV_BY_ZERO is defined.
6357 - Several #defines were omitted from the makefiles.
6358 - Explanations of several version.h #defines were added to
6360
6361 20121021:
6362 - The library vecfont10.s7i, which defines the standard vector font
6363   with capital height 10, was added. Now mahjong.sd7 and shisen.sd7
6364   use vecfont10.s7i.
6365 - The programs mahjong.sd7, pairs.sd7, shisen.sd7 and sokoban.sd7
6366   were improved to fit into a screen with a resolution of 1024 x 768.
6367 - The library make.s7i was improved: The parsing of command
6368   parameters (used by the Unix version of the echo command), was
6369   improved. The processing of pattern rules was improved (The rule
6370   with the shortest stem value is used, when several rules match).
6371 - Functions to read a makefile were moved from make.s7i to the new
6372   library makedata.s7i.
6373 - The reading of makefiles was improved: The processing of the gmake
6374   directives 'ifeq' and 'ifneq' was improved to allow else clauses.
6375   The processing of the nmake directive 'if' was added. Merging of
6376   dependencies for rules with the same target was improved.
6377 - The parse function for time values (library time.s7i) was improved
6378   to allow fractions of a second.
6379 - The functions getSubNodes and getContent and a for-loop for xmlNode
6380   values were defined in the library xmldom.s7i.
6381 - The compiler was improved to initialize bstring literals correctly,
6382   when pointers are 64-bit and integers are 32-bit.
6383 - The font libraries cronos16.s7i, cronos27.s7i, modern27.s7i and
6384   vecfont18.s7i were improved to include vectorfont.s7i.
6385 - The font libraries stdfont10.s7i, stdfont12.s7i, stdfont14.s7i,
6386   stdfont16.s7i, stdfont18.s7i, stdfont20.s7i and stdfont24.s7i were
6387   improved to include bitmapfont.s7i.
6388 - The program dnafight.sd7 was improved to limit the speed of the
6389   animation.
6390 - The program make7.sd7 was improved to recognize the options
6391   correctly. Additionally make7 inherits also all improvements of
6392   makedata.s7i and make.s7i.
6393 - The program ftp7.sd7 was improved to accept the option -?.
6394 - The graphic libraries drw_x11.c and drw_win.c were improved to draw
6395   the background of maximized windows with the color of the last
6396   clear command.
6397
6398 20121007:
6399 - An error message, that could occur when the Seed7 interpreter is
6400   compiled, is now explained in the FAQ and in 'src/read_me.txt'.
6401 - A description of the for-step-statement was added to the manual.
6402 - The library make.s7i was improved. Now makefile dependencies can
6403   contain colons (:) and equal signs (=). The parameters of the echo
6404   command are parsed better now. Calls of the function callOwnProgram
6405   are also avoided now. This way the library works correctly, when it
6406   is used by programs other than make7.sd7.
6407 - The library tar.s7i was improved to set the file mode, when an
6408   archive is extracted.
6409 - Test cases for a variant of the @:= operator, which copies a string
6410   to another, were added to the program chkstr.sd7.
6411 - Interpreter and compiler were improved to support the situation,
6412   when source and destination of the @:= operator (action STR_POSCPY)
6413   are identical.
6414 - The compiler was improved to support the action ITF_DESTR.
6415 - The compiler was improved, to call C compiler and linker with
6416   specific options, such that unneeded functions are omitted (when
6417   the linker and executable file format support this feature).
6418 - The compiler was improved to remove debug symbols, unless called
6419   with -g (some makefiles now define LINKER_OPT_NO_DEBUG_INFO).
6420 - The function name(PROGRAM) was improved, to return the program name
6423   (see function followLink in cmd_rtl.c). Consequently dir(PROGRAM)
6425 - The function CommandLineToArgvW in cmd_win.c was improved.
6426 - The files itf_rtl.c and itf_rtl.h, which contain interface
6428 - The makefile mk_mingc.mak was added to support compilation of the
6429   self extracting version of Seed7.
6430
6431 20120923:
6432 - Experimental support for automatic memory management with reference
6433   counting was added to the interpreter.
6434 - The libraries external_file.s7i, field.s7i, stritext.s7i, gzip.s7i,
6435   listener.s7i, pixmap_file.s7i, shell.s7i, socket.s7i, strifile.s7i,
6436   dir.s7i, utf16.s7i, utf8.s7i and xmldom.s7i were improved to use
6437   the function toInterface.
6438 - The function name(PROGRAM) was improved, to return the name of the
6439   program without extension and without path.
6440 - The interpreter was improved to support the action ITF_DESTR.
6441
6442 20120909:
6443 - The chapters about predefined statements and the foreign function
6444   interface in the manual, were improved.
6445 - An explanation, why the div operator is used for integer divisions,
6446   was added to the FAQ.
6447 - The FAQ about garbage collection was improved.
6448 - Links to EBNF syntax descriptions and exceptions were added to the
6449   HTML version of the manual.
6450 - EBNF syntax descriptions in the manual were improved.
6451 - Interpreter and compiler were improved to support the actions
6452   CMD_ENVIRONMENT and CMD_GET_SEARCH_PATH.
6453 - The library shell.s7i was improved to define the functions
6454   getSearchPath and environment.
6455 - The function path(PROGRAM) was improved to return the accurate
6456   value under all circumstances.
6457 - Several preprocessor defines were moved from "common.h to the new
6458   include file "config.h".
6459 - In cmdlib.c the function toArraytype() was introduced and used in
6460   cmd_environment() and cmd_getSearchPath().
6461 - In cmd_rtl.c the functions add_stri_to_array() and
6462   complete_stri_array() were introduced and used in read_dir(),
6463   getSearchPath() and cmdEnvironment().
6464 - Parameter names in drw_win.c, drw_x11.c and drw_dos.c were changed
6465   to fit to the names used in graph.s7i.
6466 - Parameter names in clib_file.s7i, keybd.s7i, sockbase.s7i,
6467   socket.s7i, utf8.s7i, fil_rtl.c, gkb_rtl.c, kbd_rtl.c, soc_dos.c,
6468   soc_rtl.c and ut8_rtl.c were changed to fit to each other.
6469 - The function conv_from_os_stri() was added to striutl.c .
6470 - The function concat_path in str_rtl.c was improved to work
6471   correctly, when the relative path contains "..".
6472 - In several makefiles defines for SEARCH_PATH_DELIMITER and
6473   os_environ were added and defines for
6474   MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS were replaced with
6475   defines for OS_PATH_HAS_DRIVE_LETTERS.
6476 - A description of several C preprocessor macros used in "version.h"
6478 - Parameter names were added to function definitions in various
6479   libraries.
6481   "clib_file.s7i", "external_file.s7i", "socket.s7i", "fil_rtl.c" and
6482   "striutl.c".
6483 - The function determineEnvironDefines was added to "chkccomp.c".
6484
6485 20120826:
6486 - A chapter, which explains the foreign function interface, was added
6487   to the manual.
6488 - Syntax descriptions, code examples and tables in the HTML version
6489   of the manual were improved.
6491 - A description of several C preprocessor macros used in "version.h"
6493
6494 20120806:
6495 - The new library image.s7i was added. The contents of this library
6496   was extracted from the program "carddemo.sd7".
6497 - The new library make.s7i was added. The contents of this library
6498   was extracted from the program "make7.sd7".
6499 - The function 'str' and the 'parse' operator were added to the
6500   library bstring.s7i.
6502 - A documentation comment was improved in the library bigint.s7i.
6503 - The generation of bstring constants in the compiler (comp.sd7) was
6504   improved.
6505 - The function intStrHex was renamed to intStrPow2Base in the files
6506   "int_rtl.c", "int_rtl.h" and in the compiler. The new function is
6507   used to convert an integer to a string, when the number base is a
6508   power of two.
6509 - The function stri_export was renamed to stri_export_utf8 in the C
6510   source files.
6511 - The function cp_to_cstri was renamed to cp_to_cstri8 in the C
6512   source files.
6514   "striutl.c".
6515 - The makefile mk_msvc.mak was changed to write a definition of
6516   LIMITED_CSTRI_LITERAL_LEN to "version.h".
6517
6518 20120721:
6519 - Documentation comments were improved in the libraries idxarray.s7i,
6520   array.s7i, dir.s7i, external_file.s7i, osfiles.s7i, duration.s7i
6521   and time.s7i.
6522 - Parameter names were added to function definitions in the
6523   libraries array.s7i, bigfile.s7i, hash.s7i and idxarray.s7i.
6524 - The compiler was improved to generate better inline code for set
6525   membership (operator: in).
6526 - The functions 'cmdFileType' and 'cmdFileTypeSL' in "cmd_rtl.c" were
6527   improved to return FILE_ABSENT, when the file name is too long
6528   (stat() respectively lstat() return an error and errno has the
6529   value ENAMETOOLONG) or when the file name is an empty string.
6530 - The new libraries subrange.s7i, ref_list.s7i and reference.s7i were
6531   added. The contents of this libraries were extracted from the
6532   seed7_05.s7i library.
6533
6534 20120703:
6535 - The manual was improved to contain more links and to use more
6536   coloring.
6537 - Parameter names were added to function definitions in the
6538   libraries array.s7i, integer.s7i, bigint.s7i, float.s7i, keybd.s7i,
6539   bitsetof.s7i, idxarray.s7i, boolean.s7i, hashsetof.s7i, socket.s7i,
6540   char.s7i, file.s7i, bitset.s7i, poll.s7i, sockbase.s7i and
6541   string.s7i .
6542 - Documentation comments were improved in the libraries string.s7i,
6543   poll.s7i and progs.s7i .
6544 - The new libraries "bstring.s7i" and "category.s7i" were added. The
6545   contents of this libraries were extracted from the "progs.s7i"
6546   library.
6547 - Interpreter and compiler were improved to explain the option -?.
6548
6549 20120617:
6550 - FAQ and manual were improved to contain more links. The additional
6551   links improve also the Seed7 homepage.
6552 - The FAQ answer, which explains abstract data types, was improved.
6553 - The type 'PRIMITIVE_FILE' was renamed to 'clib_file'.
6554 - Documentation comments were improved in the libraries array.s7i,
6555   bigrat.s7i, bitset.s7i, boolean.s7i, integer.s7i, charsets.s7i,
6556   bigint.s7i, complex.s7i, dir.s7i, echo.s7i, char.s7i, keybd.s7i,
6557   line.s7i, listener.s7i, null_file.s7i, scanfile.s7i, shell.s7i,
6558   socket.s7i, stdio.s7i, strifile.s7i, string.s7i, stritext.s7i,
6559   bigfile.s7i, text.s7i, utf16.s7i, utf8.s7i and wrinum.s7i.
6560 - The new libraries "enable_input.s7i" and "enable_output.s7i" were
6561   added. The contents of this libraries were extracted from the
6562   "enable_io.s7i" library.
6563 - The new library "clib_file.s7i" was added. The contents of this
6564   library was extracted from the "external_file.s7i" library.
6565 - The compiler (comp.sd7) was improved to accept a Windows path.
6566 - The example program "make7.sd7" was improved to support the
6567   commands 'ifneq', '-include' and '+='.
6568 - The program "toutf8.sd7" and the library "charsets.s7i" were
6569   improved to support the code pages 277, 280 and 297.
6570 - The control characters of the code pages 037, 273, 285, 500 and
6571   1047 in "charsets.s7i" were improved.
6572
6573 20120603:
6574 - An alternate version of the function 'filInputReady' was added to
6575   the file "fil_unx.c" (thanks to Rainer Weikusat and Geoff Clare
6576   for their help). The new function is used when "version.h" does
6577   not define the macro 'read_buffer_empty'.
6578 - A check and a definition of the macro 'read_buffer_empty' for
6579   HPUX was added to "chkccomp.c" (thanks to Richard Kettlewell and
6580   Marc for their suggestions).
6581 - The example program "make7.sd7" was improved. Now it supports the
6582   commands 'ifeq', 'wildcard' and 'include'. The commands of a rule
6583   can now contain empty lines. Pattern rules can now be combined with
6584   dependency rules (rules without commands).
6585 - The "ftp7.sd7" example program was improved to support the commands
6586   'delete' and 'rename'.
6587 - The FAQ and the manual were improved to contain more links. The
6589 - The new libraries "array.s7i", "hash.s7i", "bitset.s7i," "set.s7i",
6590   "bitsetof.s7i", "hashsetof.s7i", "idxarray.s7i" and "struct.s7i"
6591   were added. The contents of this libraries were extracted from the
6592   "seed7_05.s7i" library. They are included from "seed7_05.s7i", so
6593   no change in existing programs is necessary.
6595   "pixmapfont.s7i", "bitset.s7i", "bitsetof.s7i", "hashsetof.s7i",
6596   "set.s7i", "hash.s7i" and "bigint.s7i".
6597 - The function 'moveFile' was added to the "ftp.s7i" library.
6598 - Comment blocks with deactivated code were removed from the
6599   "seed7_05.s7i" library.
6600 - The program "chkccomp.c" was improved, to produce no error, when
6601   the macro 'filInputReady' cannot be defined.
6602
6603 20120520:
6604 - The FAQ and the manual were improved to contain more links. The
6607   and "vectorfont.s7i"
6608 - Documentation comments were improved in "integer.s7i", "font.s7i",
6609   "duration.s7i", "enable_io.s7i", "listener.s7i", "scanfile.s7i",
6610   "poll.s7i", "shell.s7i" and "socket.s7i".
6611 - The function 'bigParse' in "big_rtl.c" was improved, to work up to
6612   9 times faster. The bigInteger operator 'parse' is implemented with
6613   'bigParse'.
6614 - The factorial operator (!) was added to "bigint.s7i".
6615 - A for-until-loop for 'bitset' was added to "seed7_05.s7i".
6616 - Tests for the 'parse' operator, when it parses integer literals
6617   with a + sign, were added to "chkbig.sd7".
6618 - Tests of the function 'compare' were added to "chkbool.sd7".
6619 - Tests of the bigInteger operator 'parse' were added to
6620   "chkexc.sd7".
6621 - The compiler was improved to generate better inline code for set
6622   membership (operator: in).
6623 - The example program "make7.sd7" was improved. Now it accepts :=
6624   to assign a value to a macro.
6625 - The libraries "bigint.s7i", "float.s7i" and "math.s7i" were
6626   improved, to use 'in' parameters instead of 'ref' parameters.
6627 - Spaces at the end of the line were removed in "file.s7i",
6628   "ftp.s7i", "osfiles.s7i", "stdio.s7i", "pol_sel.c", "read_me.txt",
6629   "pol_unx.c" and "soc_rtl.c".
6630
6631 20120506:
6632 - A typo in the manual, concerning the 'integer' operator 'rpad',
6633   was fixed (thanks to Robert A Duff for pointing it out).
6634 - The compiler (comp.sd7) was improved to generate optimized code
6635   for the integer 'mod' operator (thanks to Andrew Haley,
6636   Stefan Ram, Scott Fluhrer and Gene for their help).
6637 - The compiler was improved to generate optimized code for the
6638   integer operators 'mdiv' and 'mod', when the divisor is a negated
6639   power of two.
6640 - The FAQ answers, which explain possible compilation errors and the
6641   templates of Seed7, were improved.
6642 - The chapter explaining primitive actions in the manual was
6643   improved.
6644 - The compiler was improved to use inline code for set membership
6645   (operator: in) and set exclusion. The inlining is done instead of
6646   calling 'setElem' respectively 'setExcl'.
6647 - The compiler was improved to use 'setIsEmpty' (which is defined in
6648   "set_rtl.c"), when a set is compared with the empty set (action
6649   "SET_EQ" and "SET_NE").
6650 - Interpreter, compiler and runtime library were improved to support
6651   the actions "PRG_INTERPRETER" (returns the path of the hi
6652   interpreter), "SET_NEXT" (used in for-loops over sets) and
6653   "SET_RANGELIT" (used to create sets like {1 .. 5} ).
6654 - In "chkset.sd7" the tests for set union and set membership were
6655   improved.
6656 - The checks of relation operators in "chkset.s7i" were split into
6657   several functions.
6658 - The example program "printpi2.sd7" was improved.
6659 - The function 'bigEqSignedDigit' was added to "big_rtl.c" and
6660   "big_gmp.c". This function is used in the compiler to optimize
6661   bigInteger comparisons (= and <>) with small signed numbers.
6662 - The functions 'reduce' and / in "bigrat.s7i" were improved.
6663 - The performance of the function setCard in "set_rtl.c" was
6664   improved.
6665 - The functions 'setSymdiff' and 'setUnion' were improved to raise
6666   MEMORY_ERROR, when the computation of the data size would
6667   overflow.
6668 - The performance of the function 'prot_set' in "traceutl.c" was
6669   improved.
6670 - The example program "make7.sd7" was improved. Now it processes
6671   make commands in makefiles correctly and accepts tabs before the
6672   dependencies of a rule. Additionally make7 now allows repeated
6673   target names when there no commands.
6674 - Checks for 'mod' and 'mdiv' were added to "chkint.sd7".
6675 - A documentation comment was added to the function 'cp_to_cstri'
6676   in the file "striutl.c".
6677 - The macros 'likely' and 'unlikely' were added to if-statements
6678   checking for exception conditions in the file "set_rtl.c".
6679 - A description of possible compilation errors was added to the file
6681 - In "shell.s7i" the function 'shell' was overloaded and the
6683
6684 20120415:
6686 - A description of several C preprocessor macros used in "version.h"
6688 - In "chkset.sd7" tests for set difference and symmetric difference
6689   were added and tests for set intersection and set membership were
6690   improved.
6691 - The compiler (comp.sd7) was improved to support the functions
6692   'pipe2' and 'pty' (actions: CMD_PIPE2 and CMD_PTY).
6693 - The compiler was improved to provide better optimization for set
6694   difference, intersection, union and membership.
6695 - The tracing support for sets in the compiler was improved.
6696 - The program "chkccomp.c" was improved to use the C compiler to
6697   determine elements from the FILE structure.
6698 - The new experimental function 'cmdPty' was added to "cmd_unx.c"
6699   and "cmd_win.c".
6700 - The function 'filInputReady' in "fil_unx.c" and "fil_win.c" was
6701   improved to use the macro 'read_buffer_empty' (which is defined in
6702   "version.h" by the program "chkccomp.c").
6703 - The makefiles were changed to write several macro definitions to
6704   "version.h", before the program "chkccomp.c" is compiled. This way
6705   "chkccomp.c" gets information about the C compiler from
6706   "version.h".
6707 - The functions 'setDiff' and 'setSymdiff' in "set_rtl.c" were
6708   improved to work correctly for big sets.
6709 - The function 'setNotElem' was removed from "set_rtl.c" and the
6710   compiler was changed to use !setElem() instead of setNotElem().
6711 - The function 'prot_set' in "traceutl.c" was improved to work
6712   correctly, when 64-bit bitset elements are used.
6713
6714 20120401:
6715 - The program "chkccomp.c" was changed to define the macros
6716   'likely' and 'unlikely' only when __GNUC__ >= 3 holds (thanks
6717   to "Rugxulo" for pointing out, that GCC 2.95.3 does not
6718   support __builtin_expect() ).
6719 - The library "modern27.s7i", which defines the vector font
6721 - The compiler (comp.sd7) was improved to initialize global
6722   interface variables correctly.
6723 - The function cmdPipe2() in "cmd_win.c" was improved to work
6724   correctly.
6725 - In "drw_win.c" the functions drawRectangle(), drwPArc(),
6726   drwPFArcPieSlice(), drwPCircle(), drwClear(), drwPFCircle(),
6727   drwPFEllipse(), drwPLine(), drwPolyLine(), drwFPolyLine() and
6728   drwPRect() were improved to raise MEMORY_ERROR when CreatePen()
6729   or CreateSolidBrush() fails.
6730 - In various makefiles the definition of likely() and unlikely()
6731   was removed and a definition of USE_BUILTIN_EXPECT was added.
6732 - The descriptions of paths in "seed7/src/read_me.txt", were
6733   improved.
6734
6735 20120318:
6736 - The example program "testfont.sd7" was improved to display more
6737   fonts and more characters.
6738 - The library "vectorfont.s7i", which supports vector fonts, was
6740 - The libraries "cronos16.s7i", "cronos27.s7i" and
6741   "vecfont18.s7i", which define the vector fonts cronos16,
6742   cronos27 and vecFont18 respectively, were added.
6743 - A standard bitmap font with size 20 was defined in the new
6744   library "stdfont20.s7i".
6745 - The pilcrow character was added to the standard bitmap fonts.
6746 - Some characters in the standard bitmap fonts were improved.
6747 - The function 'filInputReady' in "fil_unx.c" was improved to
6748   use poll() instead of select().
6749
6750 20120304:
6751 - The "ftpserv.sd7" example program was improved to support the
6752   commands RNFR and RNTO and to work correctly, when the listener
6753   cannot open a passive data port.
6754 - The font support was improved, such that caching of character
6755   pixmaps works.
6756 - Some characters in the standard bitmap fonts were added or
6757   improved.
6758 - The functions 'socSend' and 'socSendto' in "soc_rtl.c" were
6759   improved to work correctly under 64-bit systems.
6760 - The function 'fltSci' in "flt_rtl.c", was improved to avoid
6761   a C compiler warning about the change of a constant value.
6762 - The function 'redraw' in "drw_x11.c" was changed, such that it
6763   does not use a parameter of type 'XExposeEvent'.
6764 - The functions 'drwHeight', 'drwWidth', 'drwXPos' and 'drwYPos'
6765   in "drw_x11.c" were improved to raise RANGE_ERROR when the
6766   window does not exist.
6767 - The function 'handleExpose' was introduced in "gkb_x11.c", to
6768   handle the job of calling 'redraw'.
6769 - The type 'unsigned int' was replaced by 'sysizetype' in
6770   'findid.c', 'findid.h', 'identutl.c', 'identutl.h', 'literal.c',
6771   'numlit.c', 'scanner.c' and 'symbol.h'.
6772 - Some improvements were done in 'prg_comp.c', 'reflib.c',
6773   'analyze.c', 'exec.c', 'infile.c', 'info.c' and 'typlib.c' to
6774   reduce the number of warnings.
6775 - Support for the unused action "ENU_SIZE" was removed.
6776
6777 20120219:
6778 - A call of clearerr(stdin) was added to the function
6779   kbdKeyPressed() in the file "kbd_inf.c". This fixes a bug, which
6780   happen under FreeBSD (thanks to Pietro Cerutti for pointing out
6781   the error and for suggesting this fix).
6782 - The FAQ answer, which explains the portability of Seed7, was
6783   improved.
6784 - The function 'copyFile' was added to the library "file.s7i" and
6785   the files "ftp.s7i" and "ftpserv.sd7" were changed to use it.
6786 - The function 'removeFile' was added to the library "ftp.s7i".
6787 - The function 'signOn' was added to the libraries "listener.s7i"
6788   and "socket.s7i".
6789 - The function 'signOff' was improved in "listener.s7i" and
6790   "socket.s7i", to use a 'socket' instead of a 'PRIMITIVE_SOCKET'
6791   parameter.
6792 - The "gkbd.sd7" example program was improved.
6793 - The "panic.sd7" example program was improved to use DRAW_FLUSH
6794   less often.
6797   should not be used.
6798 - The functions 'open_dir' and 'open_dir_path' were renamed to
6799   'openDir' and 'openDirPath' respectively.
6800 - The functions 'find_window', 'enter_window', 'remove_window' and
6801   'gkbWindow' were moved from "drw_x11.c" to "gkb_x11.c".
6802 - Trace statements were added to "drw_x11.c" and "gkb_x11.c".
6803 - A description of several C preprocessor macros used in "version.h"
6805 - The makefiles "mk_bcc32.mak", "mk_bccv5.mak", "mk_cygw.mak",
6806   "mk_mingw.mak", "mk_msvc.mak", "mk_msys.mak" and "mk_nmake.mak"
6807   were changed to write a definition of QUOTE_WHOLE_SHELL_COMMAND to
6808   "version.h".
6809
6810 20120205:
6811 - FAQ answers, explaining call-by-name and how it is implemented in
6813 - The "ftpserv.sd7" example program was improved to work with
6814   various ftp client programs.
6815 - The speed of the function 'socLineRead' in "soc_rtl.c" was
6816   improved (this function implements getln() for sockets).
6817 - The Unicode support of the "ftp.s7i" library and the "ftp7.sd7"
6818   example program was improved.
6819 - Documentation comments were improved in "poll.s7i" and
6820   "osfiles.s7i".
6821 - The files "pol_sel.c" and "pol_unx.c" were improved to use the
6822   const qualifier.
6823 - The compiler (comp.sd7) was improved to generate optimized code
6824   for the actions "STR_ELEMCPY" and "STR_POSCPY" (which were used
6825   by the @:= operator).
6826 - Test cases for the @:= operator were added to "chkstr.sd7".
6827 - The program "chkccomp.c" was changed to include "version.h" and
6828   to define OS_OFF_T_SIZE. This way "chkccomp.c" can use the macro
6829   definitions for os_off_t, TURN_OFF_FP_EXCEPTIONS and
6830   DEFINE_MATHERR_FUNCTION from "version.h" instead of "chkccomp.h".
6831 - The files "cmd_rtl.c" and "fil_rtl.c" were changed to use the
6832   macro OS_OFF_T_SIZE.
6833 - In "osfiles.s7i" the type 'fileType' was introduced as result type
6834   for 'fileType' and 'fileTypeSL'.
6835 - The function 'str' for the type 'fileMode' was improved in
6836   "osfiles.s7i".
6837 - The number of calls of fileno() was reduced in "con_cap.c",
6838   "con_tcp.c", "kbd_inf.c" and "kbd_poll.c".
6839 - Result variables were renamed in "external_file.s7i", "ftp.s7i",
6840   "osfiles.s7i", "shell.s7i", "socket.s7i", "string.s7i", "tar.s7i",
6841   "utf16.s7i", "utf8.s7i" and "ftpserv.sd7".
6842
6843 20120115:
6844 - The functions shellEscape and toShellPath were added to the
6845   "shell.s7i" library.
6846 - The compiler (comp.sd7) was improved to use 'toShellPath'. Now the
6847   compiler works for source files, which contain spaces in their
6848   name.
6849 - Compiler and interpreter were improved to support the action
6850   "CMD_SHELL_ESCAPE" (this action implements the function
6851   'shellEscape').
6852 - The "ftp7.sd7" example program was improved to support the 'dir'
6853   command.
6854 - The "ftpserv.sd7" example program was improved to support the
6855   commands FEAT, MLST, MLSD, DELE, MODE and STRU.
6856 - The functions listDir and bigFileSize were added to the "ftp.s7i"
6857   library.
6858 - The configuration program "setpaths.c" was improved to support
6859   the compilation of Seed7 in a directory with an Unicode name,
6860   which contains characters outside of the Basic Multilingual Plane.
6861
6862 20120101:
6863 - The type 'pollData' was moved from "socket.s7i" to "poll.s7i".
6864   The functions supported by 'pollData' are 'clear', 'addCheck',
6865   'removeCheck', 'getCheck', 'poll', 'getFinding', 'hasNext',
6866   'iterChecks', 'iterFindings', 'nextFile' and 'for'.
6867 - The type 'inetListener' was moved from "socket.s7i" to
6868   "listener.s7i". The functions supported by 'inetListener' are
6869   'openInetListener', 'close', 'signOff', 'listen', 'accept' and
6870   'waitForRequest'.
6871 - The type 'socketAddress' was moved from "socket.s7i" to
6872   "sockbase.s7i". The functions supported by 'socketAddress' are
6874   'getHostname'.
6875 - The file "pol_dos.c" was added (thanks to "Rugxulo" for pointing
6876   out, that it was missing).
6881   POL_REMOVE_WRITE_CHECK and SOC_SELECT_INPUT was removed from
6882   interpreter and compiler.
6883 - Support for the actions POL_ADD_CHECK, POL_GET_CHECK,
6884   POL_GET_FINDING, POL_HAS_NEXT, POL_ITER_CHECKS, POL_ITER_FINDINGS,
6886   interpreter and compiler.
6887 - The files "pollib.c", "pollib.h", "pol_dos.c", "pol_sel.c",
6888   "pol_unx.c", "pol_drv.h", "soclib.c", "soclib.h", "soc_rtl.c" and
6889   "soc_dos.c" were added or improved.
6890 - The "ftpserv.sd7" example was improved to take the IP address for
6891   the "PASV" response from the control socket.
6892 - The console driver "con_win.c" was improved, such that keypressed
6893   recognizes control-C as normal keyboard input.
6894 - The function 'socGets' was improved to avoid realloc(), when
6895   the string read is shorter than requested.
6896
6897 20111218:
6902   to the "socket.s7i" library.
6903 - The makefile "mk_djgpp.mak" was improved to use 'djecho' (thanks
6904   to "Rugxulo" for his help).
6905 - The library "duration.s7i" was improved to support the operators
6906   +:= and -:= for the type 'duration'.
6907 - The function 'startProcess' in the library "shell.s7i" was
6908   overloaded to work with a single string parameter.
6909 - The function 'socWrite' in "soc_rtl.c" was improved.
6910 - Interpreter, compiler and runtime library were improved to support
6917 - The files "pollib.c", "pollib.h", "pol_sel.c", "pol_unx.c" and
6918   "pol_drv.h" were added to support the type 'pollData'.
6919 - The "ftpserv.sd7" example program was improved to work silently.
6920 - In "hsh_rtl.c" the function 'hshIdxWithDefault' was renamed to
6921   'hshIdxEnterDefault' and a new function 'hshIdxWithDefault' was
6922   introduced.
6923 - In "ref_data.c" the functions 'refCmpGeneric' and 'genericCreate'
6924   were replaced with 'uintCmpGeneric' and 'intCreateGeneric'
6925   respectively.
6926 - The program "chkccomp.c" was improved to define _matherr(), which
6927   handles floating point errors, when necessary.
6928
6929 20111204:
6930 - The makefile "mk_djgpp.mak" was improved to work for DJGPP under
6931   DOS (thanks to "Rugxulo" for his help to improve "mk_djgpp.mak").
6932 - The old makefile "mk_djgpp.mak" was renamed to "mk_djgp2.mak".
6933 - The option -?, which writes helping information, was added to the
6934   hi interpreter and to the compiler (comp.sd7).
6935 - The "ftp7.sd7" example program was improved to support the command
6936   "help".
6937 - The "sydir7.sd7" example program was improved to accept Unix and
6938   DOS paths.
6939 - The directions N, S, W, E were renamed to NORTH, SOUTH, WEST and
6940   EAST in "dna_base.s7i", "blue.dna", "green.dna", "indigo.dna",
6941   "red.dna", "tan.dna", "violet.dna" and "white.dna".
6942 - Result variables were renamed in "bigrat.s7i", "complex.s7i",
6943   "rational.s7i" and "time.s7i".
6944 - Interpreter, compiler and runtime library (files "cmd_unx.c",
6945   "cmd_win.c", "cmd_drv.h", "cmdlib.c", "cmdlib.h" and "primitiv.c")
6946   were improved to support the new action "CMD_START_PROCESS".
6947 - A definition of the function 'startProcess' was added to the
6948   "shell.s7i" library.
6949 - The function get_primact in "actutl.c" was improved to suppress
6950   writing the list of actions, which are implemented by the same
6951   function.
6952 - The function timNow() in "tim_dos.c", "tim_unx.c" and "tim_win.c"
6953   and the functions timFromTimestamp() and timSetLocalTZ() in
6954   "tim_rtl.c" were improved to use localtime_s(), when the
6955   prepocessor macro USE_LOCALTIME_S is defined.
6956 - An include command for "math.s7i" was added to "bas7.sd7",
6957   "lander.sd7" and "planets.sd7".
6958
6959 20111111:
6960 - Documentation comments were improved in "dir.s7i", "stdio.s7i"
6961   and "enable_io.s7i".
6962 - Test cases for the operators 'sci' and 'exp' in "chkflt.sd7" were
6963   changed to succeed on all supported platforms.
6964 - The compiler (comp.sd7) was improved, to create better debugging
6965   information for compiler generated (DYNAMIC) dispatcher functions.
6966 - The compiler was improved to define and use the macro 'do_setjmp'
6967   and to work correctly for empty programs.
6968 - The program "chkccomp.c" was improved to write one of the
6969   preprocessor macros ROUND_HALF_TO_EVEN, ROUND_HALF_UP or
6970   ROUND_HALF_AWAY_FROM_ZERO to "version.h". This macros describe
6971   the rounding behaviour, when float values are converted to
6972   strings with 'printf'.
6973 - Result variables were renamed in "echo.s7i", "gzip.s7i",
6974   "line.s7i",, "external_file.s7i" "null_file.s7i", "osfiles.s7i",
6975   "stdio.s7i", "strifile.s7i", "stritext.s7i" and "utf16.s7i".
6976 - The files "drw_win.c", "fil_win.c" and "striutl.c" were improved
6977   to reduce the number of compiler warnings.
6978
6979 20111101:
6980 - Documentation comments were improved in "scanfile.s7i",
6981   "scanstri.s7i" and "float.s7i".
6982 - The operators 'sci' and 'exp' were added to "float.s7i". This
6983   operators write floating point values in scientific notation.
6984 - Test cases for the operators 'sci' and 'exp' were added to
6985   "chkflt.sd7".
6986 - The function 'getInteger' was added to "scanfile.s7i" and
6987   "scanstri.s7i".
6988 - The "comanche.sd7" webserver was improved to write information
6989   about the option -? respectively -h, when an error was found.
6990 - The compiler (comp.sd7) was improved, to create better debugging
6991   information for compiler generated create, destroy, copy and
6992   times functions (actions: ARR_CREATE, HSH_CREATE, SCT_CREATE,
6993   ARR_DESTR, HSH_DESTR, SCT_DESTR ARR_CPY, HSH_CPY, SCT_CPY and
6994   ARR_TIMES).
6995 - The creation of code for for-loops in the compiler was improved.
6996 - Test cases for the for-loop were added to "chkprc.sd7".
6997 - Interpreter, compiler and runtime library (function 'fltSci' in
6998   "flt_rtl.c") were improved to support the new action "FLT_SCI".
6999 - The debugging options in "mk_msvc.mak" were improved.
7000 - Parameters were renamed in the files "color.s7i", "complex.s7i",
7001   "time.s7i", "duration.s7i" and "shell.s7i".
7002
7003 20111014:
7004 - The FAQ answer, explaining the -v option of the interpreter, was
7005   improved.
7006 - The function 'skipSpaceOrTab' was added to "scanstri.s7i".
7008 - The compiler (comp.sd7) was improved to generate better code for
7009   the actions "INT_POW" and "STR_APPEND".
7010 - The support for macros, in the "make7.sd7" utility, was improved.
7011 - The files "drw_x11.c", "findid.h" and "scanner.c" were changed to
7012   reduce the number of warnings issured by clang.
7013 - Functions were moved from "kbd_rtl.c" to the new file "gkb_rtl.c"
7014   and prototypes were moved from "kbd_rtl.h" to the new file
7015   "gkb_rtl.h". This was done together with changes in the makefiles,
7016   to avoid linker errors, when programs are compiled with -O2.
7017 - The function 'processOptions' in "hi.c" was improved to support
7018   the new logic of the option -v.
7019
7020 20111003:
7021 - A check for MEMORY_ERROR was removed from "chkexc.sd7" (thanks to
7022   Pietro Cerutti for pointing out problems under 64-bit FreeBSD).
7023 - Documentation comments in "complex.s7i", "draw.s7i", "float.s7i",
7024   "external_file.s7i", "forloop.s7i", "html_ent.s7i", "keybd.s7i",
7025   "null_file.s7i", "socket.s7i", "stdio.s7i" and "xml_ent.s7i" were
7026   improved.
7027 - The compiler (comp.sd7) and the makefiles were improved, such that
7028   executables only link console libraries (ncurses, etc.), when
7029   necessary.
7030 - The function 'encodeHtmlContent' was added to "html_ent.s7i".
7031 - The function 'fromPercentEncoded' was moved from "cgi.s7i" to
7032   "encoding.s7i".
7033 - The functions 'toPercentEncoded', 'toUrlEncoded' and
7034   'fromUrlEncoded' were added to the library "encoding.s7i".
7035 - Compiler, runtime libraries and makefiles were improved to support
7036   the configuration macros CONSOLE_LIB (name of the Seed7 console
7037   library) and SYSTEM_CONSOLE_LIBS (link option for the console
7038   library of the OS).
7039 - The makefiles were improved to write all dependencies in the file
7040   "depend", instead of "depend", "a_depend", "b_depend", "c_depend"
7041   and "d_depend".
7042
7043 20110918:
7044 - Support for 'drwGetPixel' was added to the compiler (thanks to
7045   DJ Redick, for reporting compilation problems with wator.sd7").
7046 - FAQ answers, explaining how interpreter and compiler search for
7047   include libraries, were improved.
7048 - The function 'str', which converts a bigInteger number to a string
7049   representation with a given base, was added to "bigint.s7i".
7050 - Documentation comments in "float.s7i" and "socket.s7i" were
7051   improved.
7052 - In "float.s7i" the function 'isnan' was renamed to 'isNaN' and the
7054 - Runtime library and compiler (comp.sd7) were improved, such that
7055   float operations work according to IEEE 754.
7056 - The test program "chkflt.sd7" was improved to check IEEE 754
7057   floating point conformance.
7058 - The program "chk_all.sd7" was improved to call "chkflt.sd7".
7059 - The "bas7" example program was improved (functions 'ERL' and 'LIST'
7060   added, division by zero handled correctly).
7061 - BigInteger multiplication in the compiler was improved to use
7062   'bigSquare', when a number is multiplied with itself.
7063 - The compiler was improved to take into account that the actions
7064   "SCR_" were renamed to "CON_".
7065 - The performance of 'bigCmp' and 'bigFromInt32' in "big_rtl.c", was
7066   improved.
7067 - The program "chkccomp.c" was improved to check the IEEE 754
7068   support. It checks comparisons with NaN, the creation of negative
7069   Zero and the 'pow' function with a zero base.
7070 - To reach IEEE 754 floating point conformance the functions flt_cmp,
7071   flt_eq, flt_ge, flt_gt, flt_isnegativezero, flt_le, flt_lt, flt_ne,
7072   flt_pow in "fltlib.c" and the functions setupFloat, fltCmp, fltEq,
7073   fltGe, fltGt, fltIsNegativeZero, fltLe, fltLt, fltPow, fltStr in
7074   "flt_rtl.c" were added or improved.
7075 - The makefiles were improved to link "chkccomp.c" with the math
7076   library (e.g.: -lm).
7077
7078 20110904:
7079 - Declarations were moved from "seed7_05.s7i" to the new library
7080   "forloop.s7i".
7081 - For-loops, with traverse array elements and keys, were introduced
7082   in "seed7_05.s7i".
7083 - Test cases for bigInteger exponentiation, when it raises an
7084   exception, were added to "chkexc.sd7".
7085 - The recognition of constant expressions and their use to optimize
7086   the program in the compiler ("comp.sd7"), was improved.
7087 - Compiler options, to control the optimization of constant
7088   expressions, were introduced. Allowed options are -oc0 (no
7089   optimization), -oc1 (default), -oc2 and -oc3 (best optimization).
7090 - The functions 'bigSquare' and 'bigLog2BaseLShift' were added to
7091   "big_rtl.c" and "big_gmp.c" and used by the compiler.
7092 - The functions 'uBigDigitSquare', 'uBigKaratsubaSquare' and
7093   'uBigSquareK' were added to "big_rtl.c".
7094 - The functions 'uBigDecr', 'uBigMultNegativeWithDigit',
7095   'uBigMultPositiveWithNegatedDigit', 'bigAbs', 'bigGrow',
7096   'bigMultSignedDigit', 'bigRShiftAssign' and 'bigShrink' in
7097   "big_rtl.c" were improved.
7098 - A free list memory management for 'biginttype' (bigInteger) values
7099   was introduced in "big_gmp.c".
7100 - All occurrences of the macro UTF32_STRINGS in *.c and *.h files
7101   were removed. Strings will always use UTF-32 encoded characters.
7102   Strings restricted to byte elements must use a different type.
7103 - The functions 'conWrite' (in "con_rtl.c") and 'conText' (in
7104   "con_win.c") were improved to allow writing Unicode characters to
7105   the console.
7106 - The random number generator (functions 'uint_rand' and 'intRand'
7107   in "int_rtl.c") was improved.
7108 - The functions 'stri_to_wstri' and 'stri_to_bstriw' were added to
7109   "striutl.c".
7111   "external_file.s7i", "comp.sd7", "fil_unx.c", "fil_win.c" and
7112   "fil_drv.h". Because of buffering issues, 'inputReady' does
7113   currently not work correctly for pipes.
7115 - The experimental function pipe2 was added to "shell.s7i".
7116 - Test cases for bigInteger multiplication and squaring were added
7117   to "chkbig.sd7".
7118 - The type 'flisttype' was introduced in "common.h" and used in
7119   "heaputl.h", "big_rtl.c" and "big_gmp.c".
7120
7121 20110816:
7122 - An explanation how the syntax of Seed7 is defined, was added to
7123   the FAQ.
7125 - A declaration of Euler's number was added to "math.s7i".
7126 - The function 'getCommandLineWord' was added to "scanstri.s7i".
7127 - The functions 'shell', 'cmd_sh', 'popen' and 'popen8' in
7128   "shell.s7i" were improved to work correctly under the supported
7129   operating systems, even when command and parameters contain
7130   spaces.
7131 - The library "screen.s7i" was renamed to "console.s7i" and the
7132   function 'open(SCREEN)' was renamed to 'open(CONSOLE)'.
7133 - The makefile "mk_bcc32.mak" was improved to work correctly for
7134   version 6.71 of bcc32 (thank you to the anonymous google account
7135   user, for posting his findings to the Seed7 forum).
7136
7137 20110801:
7138 - The left and right shift operators for bigInteger were improved
7139   to work with negative shift counts. Left shifting with a negative
7140   shift count results in a right shift. Right shifting with a
7141   negative shift count results in a left shift.
7142 - The interpreter was improved to default to non-verbose program
7143   parsing (verbose parsing is done with -v or -v2).
7144 - The chapter explaining 'float' in the manual was improved.
7145 - The "draw.s7i" library was improved to contain the functions
7146   'getPixelColor' (obtain the color of a specified pixel from a
7147   window or pixmap) and 'pixelToColor' (convert a pixel value to a
7148   color).
7149 - The function 'newPixmap' in "draw.sd7" and the files "drw_x11.c"
7150   and "drw_win.c" were improved to allow creating pixmaps, when no
7151   window was opened.
7153   and "wrinum.s7i".
7155 - The "string.s7i" library, interpreter and compiler were improved
7156   to support an overloaded version of the @:= operator. With
7157   stri @:= [5] "abc"; the characters 5 to 7 in stri are overwritten
7158   with "abc" (the primitive action is "STR_POSCPY").
7159 - The function 'daysInMonth' was added to the "time.s7i" library.
7160 - Declarations were moved from "seed7_05.s7i" to the new library
7161   "char.s7i".
7162 - Checks were added to "chkbig.sd7", "chkexc.sd7", "chkstr.sd7"
7163 - The performance of 'uBigIncr', 'uBigDecr', 'bigDecr', 'bigIncr',
7164   'bigPred', 'bigPredTemp', 'bigSucc' and 'bigSuccTemp' in
7165   "big_rtl.c", was further improved.
7166 - The performance of 'bigImport' and 'bigCLit' in "big_rtl.c", was
7167   improved.
7168 - The handling of the action "ARR_IDX" in the compiler (comp.sd7)
7169   was improved.
7170 - The functions 'bigLShift', 'bigLShiftAssign', 'bigRShift' and
7171   'bigRShiftAssign' in "big_rtl.c" were adjusted to the new shift
7172   behaviour for bigInteger values.
7173 - The prototypes of 'wgetenv' and 'wsetenv' in "cmd_win.c" were
7174   improved to use the const qualifier.
7175 - The macros HEAP_REALLOC_BIG and REALLOC_BIG_CHECK_SIZE in
7176   "big_rtl.c" and the macros HEAP_REALLOC_STRI, GROW_STRI and
7177   REALLOC_STRI_CHECK_SIZE in "heaputl.h" were improved to avoid
7178   unused expression results (which get a warning with clang).
7181   ('+' or '-').
7182
7183 20110717:
7184 - FAQ answers, explaining how interpreter and compiler look for
7185   include libraries, were improved.
7186 - The 'str' function for 'duration' values was improved to provide
7187   micro seconds, when they are not zero.
7188 - Two 'getHttp' functions in "gethttp.s7i" were improved to allow
7189   redirections which refer to other redirections.
7190 - A documentation comment was written for 'getHostname' in
7191   "socket.s7i".
7192 - Checks for left shift in "chkint.sd7" were improved to check only
7193   cases were no overflow occurs.
7194 - Checks for the 'pos' function were added to "chkstr.sd7".
7195 - The performance of 'uBigIncr', 'uBigDecr', 'bigDecr', 'bigIncr',
7196   'bigPred', 'bigPredTemp', 'bigSucc' and 'bigSuccTemp' in
7197   "big_rtl.c", was improved.
7198 - The functions 'processBackslash' and 'CommandLineToArgvW' were
7200 - The function 'wgetenv_wstri' was renamed to 'wgetenv' in
7201   "cmd_win.c".
7202 - The functions gkbGetc, processEvents, gkbKeyPressed,
7203   mouseButtonPressed, keyboardButtonPressed, gkbButtonPressed,
7204   gkbRawGetc, gkbButtonXpos, gkbButtonYpos and drwFlush were moved
7205   from "drw_x11.c" to the new file "gkb_x11.c".
7206 - The performance of 'strPos' in "str_rtl.c", was improved.
7207 - The compiler was improved to generate the function
7208   'int_raise_error' and to use the function 'raiseError' to create
7209   calls of 'int_raise_error'.
7210 - The compiler (comp.sd7) was improved to generate better code for
7211   the action "REF_TRACE", when the object category is REFOBJECT.
7212 - The generation of the string constant table, in the compiler, was
7213   improved.
7214 - The configuration macro OS_PATH_WCHAR was renamed to OS_STRI_WCHAR
7215   in several files.
7216 - The macro os_getenv_string_free was defined in "os_decls.h".
7217 - The functions seekFileLength, offsetTell and offsetSeek in
7218   "fil_rtl.c" were improved to provide their functionality optionally
7219   with os_fgetpos and os_fsetpos.
7220 - The function offsetSeek in "fil_rtl.c" was improved to return -1,
7221   when the offset does not fit into the offset type used by the seek
7222   function of the operating system.
7223 - Makefiles and C source files were changed to use 'os_fopen' instead
7224   of 'wide_fopen' and 'fopen'.
7225
7226 20110703:
7227 - A new example program (ftpserv.sd7), a FTP (file transfer protocol) server,
7229 - The type listener (defined in "socket.s7i") was improved. Now a listener
7230   manages its accepted sockets.
7231 - The new function 'waitForRequest' was added to "socket.s7i". It allows to
7232   wait until a request can be read or an incoming connection is accepted.
7233   With 'waitForRequest' a server is able to handle interleaved requests from
7234   multiple clients.
7235 - The functions 'eof' and 'hasNext' in "socket.s7i" were improved to work
7236   like the corresponding functions of other files.
7237 - The type socketAddress (defined in "socket.s7i") was improved to support
7238   comparisons with '=' and '<>'.
7239 - The compiler (comp.sd7) and the makefiles were improved, such that
7240   executables only link graphic libraries (X11 or gdi), when necessary.
7241 - The makefile mk_djgpp.mak was introduced. It allows compilation under DOS
7242   with DJGPP.
7243 - Support for Cygwin was improved to allow graphics with Cygwin/X.
7244 - The functions 'compare' and 'hashCode' were added to the "file.s7i"
7245   library. This allows files as keys of hash tables.
7246 - Documentation comments were added or improved in the files "complex.s7i",
7247   "file.s7i", "font.s7i" and "socket.s7i".
7248 - The "ftp.s7i" library was improved to accept multiple line responses.
7249 - The function 'quoteHtmlAttrValue' was added to "html_ent.s7i".
7250 - The functions 'clear' in "screen.s7i" and "windows.s7i" were improved to
7251   position the cursor in the top left edge.
7252 - The "comanche.sd7" webserver was improved to allow the specification of a
7253   port and to write help information, when it is called with -h or -? .
7254 - The "make7.sd7" utility was improved to support the option -i .
7255 - The meaning of the configuration macros SEED7_LIB, COMP_DATA_LIB and
7256   COMPILER_LIB was changed to contain library names without path.
7257 - Compiler, runtime libraries and makefiles were improved to support the
7258   configuration macros DRAW_LIB (name of the Seed7 graphic library),
7259   SYSTEM_DRAW_LIBS (link option for the graphic library of the OS) and
7260   S7_LIB_DIR (absolute path of the Seed7 runtime libraries).
7261 - The new file "os_decls.h", which defines macros for OS calls and structs,
7262   was added. The definitions in "os_decls.h" were moved from "common.h".
7263 - The file "setpaths.c" was improved to work under DOS and to be able to
7264   handle the codepages 437 and 850.
7265 - Functions in "striutl.h" were improved to decode operating system strings
7266   with UTF-16 surrogate pairs to the UTF-32 strings of Seed7. Decoding and
7267   encoding between codepages (437 and 850 are supported) and the UTF-32
7268   strings of Seed7 was also added.
7269 - The function 'socSelectInput' (defined as 'selectInput' with the action
7270   "SOC_SELECT_INPUT" in "socket.s7i") was added to "soc_rtl.c".
7272   with the action "SOC_INET_ADDR" in "socket.s7i") was improved to return
7273   an empty socket address when the host could not be found.
7274 - The function 'openInetSocket' in "socket.s7i" was improved to return
7275   STD_NULL when the socked could not be opened.
7276 - The compiler was improved to support the actions "SOC_HAS_NEXT" and
7277   "SOC_SELECT_INPUT".
7278 - The functions 'readVolumeName' and 'closeVolumeList' were moved from
7279   "cmd_win.c" to "dir_rtl.c".
7280 - The function 'openVolumeList' was added to "cmd_unx.c".
7281 - The functions 'drwOpen' and 'drwOpenSubWindow' were changed to raise
7282   FILE_ERROR when it is not possible to open a window.
7283 - Calls of 'getenv' in 'examineSearchPath' ("arr_rtl.c") and
7284   'init_lib_path' ("infile.c") were replaced with 'os_getenv'.
7286 - The file "soc_dos.c" was added and the files "scr_dos.c" and "scr_wat.c"
7287   were improved.
7288 - The function 'prot_os_stri' was added to "traceutl.c".
7289 - The handling of the element 'tm_isdst' from 'struct tm' (filled when
7290   localtime() is called) was changed. Now the the flag 'is_dst' is only
7291   set when tm_isdst > 0 holds.
7292
7293 20110619:
7294 - A new example program (ftp7.sd7), an FTP internet file transfer program,
7296 - The "ftp.s7i" library, which supports the FTP protocol, was added.
7298   the "socket.s7i" library.
7300   SOC_GET_HOSTNAME were added to the compiler (comp.sd7).
7301 - The compiler was improved to recognize unsupported options and superfluous
7302   parameters.
7305   "soc_rtl.c" (some were commented out).
7307   improved.
7310   "soclib.c" (some were commented out).
7311 - The file "soc_rtl.c" was improved to reduce the number of compiler warnings.
7312 - Documentation comments were improved in the file "socket.s7i".
7313 - Compiler, runtime libraries and makefiles were improved to support the
7314   configuration macro CPLUSPLUS_COMPILER.
7315
7316 20110605:
7317 - The new libraries "boolean.s7i", "integer.s7i" and "string.s7i" were
7318   added. The contents of this libraries were extracted from the "seed7_05.s7i"
7319   library. They are included from "seed7_05.s7i", so no change in existing
7320   programs is necessary.
7321 - Declarations of color constants were moved from "draw.s7i" to "color.s7i".
7322 - The declaration of 'graph_file' was moved from "draw.s7i" to the new
7323   library "graph_file.s7i".
7324 - The declaration of 'duration' was moved from "time.s7i" to the new
7325   library "duration.s7i".
7326 . The declaration of 'pixmapFontFile' was moved from "pixmapfont.s7i" to
7327   the new library ""pixmap_file.s7i".
7328 - The functions 'getATime', 'getCTime', 'getMTime', 'setATime' and 'setMTime'
7329   were moved from "time.s7i" to "osfiles.s7i"
7330 - The function 'bigFileSize' was moved from "bigfile.s7i" to "osfiles.s7i".
7332   "bigint.s7i", "bigrat.s7i", "bitmapfont.s7i", "complex.s7i", "dir.s7i",
7333   "duration.s7i", "echo.s7i", "enable_io.s7i", "external_file.s7i",
7334   "file.s7i", "float.s7i", "font.s7i", "graph_file.s7i", "integer.s7i",
7335   "keybd.s7i", "line.s7i", "math.s7i", "null_file.s7i", "osfiles.s7i",
7336   "pixmap_file.s7i", "rational.s7i", "screen.s7i", "socket.s7i", "stdio.s7i",
7337   "strifile.s7i", "string.s7i", "utf16.s7i", "text.s7i", "time.s7i" and
7338   "window.s7i".
7340 - Checks for length, tell and seek with STD_NULL were added to "chkexc.sd7".
7341 - Interpreter, compiler and runtime library were improved to support the
7342   action STR_RIPOS. This allows searching for a string from a given position
7343   to the left.
7344 - Checks for the function 'rpos' were added to "chkstr.sd7".
7345 - Documentation comments were added or improved in the files "big_rtl.c",
7346   "str_rtl.c" and "int_rtl.c".
7347 - The experimental actions REF_CAST, ITF_TO_HEAP and ITF_TO_INTERFACE were
7349 - The functions 'disconnect_entity' and 'disconnect_param_entities' were
7351 - The function 'act_create' in "actlib.c" was improved to remove the names
7352   from the formal parameters. This is done with 'disconnect_param_entities'.
7353
7354 20110522:
7355 - FAQ answers, explaining that Seed7 is not a descendant of Pascal and
7356   how Seed7 uses abstract data types, were added.
7357 - Documentation comments were added or improved in the files "bigfile.s7i",
7358   "bigint.s7i", "bigrat.s7i", "binary.s7i", "cgi.s7i", "charsets.s7i",
7359   "complex.s7i", "encoding.s7i", "float.s7i", "getf.s7i", "gzip.s7i",
7360   "inifile.s7i", "keybd.s7i", "rational.s7i", "shell.s7i", "socket.s7i",
7361   "strifile.s7i", "stritext.s7i", "time.s7i", "utf16.s7i", "utf8.s7i",
7362   "fil_rtl.c" and "ut8_rtl.c".
7363 - The new libraries "color.s7i", "enable_io.s7i", "external_file.s7i",
7364   "file.s7i", "null_file.s7i", "osfiles.s7i", "stdio.s7i", and "text.s7i"
7365   were added. The contents of this libraries were extracted from the
7366   "seed7_05.s7i" library. Programs, which need functionality from
7367   "text.s7i", "osfiles.s7i" or "color.s7i", must now include them.
7368 - To keep basic compatibility, the "stdio.s7i" library is included from
7369   "seed7_05.s7i", but in a future version this may change. To cope with
7370   this change programs, which use standard I/O, should include "stdio.s7i".
7371 - The interpreter and the runtime library were improved to support forward
7372   declarations of variables (the action DCL_FWDVAR is used for this purpose).
7373 - All usages of the function 'fileExists' and its definition in the
7374   "seed7_05.s7i" library, were removed. The functions 'fileType' and
7375   'fileOpenSucceeds' can be used as replacement.
7376 - Checks for 'sqrt' were added to the "chkbig.sd7" program.
7377 - The bigInteger 'sqrt' function was improved, to return 0_ for sqrt(0_)
7378   instead of raising an exception.
7379 - The logic of 'null_file' and 'socket' was changed, such that the functions
7380   'length', 'seek' and 'tell' raise FILE_ERROR (This files are not seekable).
7381 - The function 'replaceHexChars' in "cgi.s7i" was renamed to
7382   'fromPercentEncoded'.
7383 - The function 'removeUtf16SurrogatePairs' in "charsets.s7i" was renamed
7384   to 'replaceUtf16SurrogatePairs'.
7385 - The new function 'openSocket' was introduced in "socket.s7i".
7386 - Unnecessary definitions were removed from "graph.s7i".
7387
7388 20110508:
7390   closures and how the compiler implements them, were added.
7391 - A new example program (sydir7.sd7), an utility to synchronize directory
7393 - The comanche.sd7 webserver was improved to use the Seed7 interpreter (hi)
7394   to execute CGI scripts with the extension ".sd7".
7395 - Interpreter, compiler and runtime library were improved to support the
7396   action CMD_TO_OS_PATH.
7397 - The compiler (comp.sd7) was improved to create #line directives with the
7398   path notation of the operating system.
7399 - The file "setpaths.c" was added. It is used during the make process to
7400   write the configuration macros SEED7_LIB, COMPILER_LIB, COMP_DATA_LIB
7401   and SEED7_LIBRARY to the file "version.h".
7402 - The makefiles mk_mingw.mak, mk_nmake.mak, mk_msvc.mak, mk_bcc32.mak and
7403   mk_bccv5.mak were improved to use the new file "setpaths.c", instead of
7404   creating their own versions of "setpaths.c".
7405 - The configuration macros SEED7_LIB, COMPILER_LIB, COMP_DATA_LIB and
7406   SEED7_LIBRARY were changed to use the standard path representation and
7407   UTF-8 encoding.
7408 - The function relativeToProgramPath was added to the file "striutl.c".
7409
7410 20110424:
7411 - Information about the lines of code in Seed7 was added to the FAQ.
7412 - The FAQ answers about supported operating systems and the analyze
7413   phase of the interpreter, were improved.
7414 - Several spelling errors in the FAQ and in the manual were fixed.
7415 - The appearance of tables in the FAQ and in the manual was improved.
7416 - Variants of the function 'timAwait', which work with poll() and ppoll(),
7417   were added to the file "tim_unx.c".
7418 - The makefiles "makefile", "mk_linux.mak", "mk_cygw.mak" and "mk_osx.mak"
7419   were improved to select one version of the function 'timAwait'.
7420 - Descriptions of the configuration macros AWAIT_WITH_POLL,
7421   AWAIT_WITH_PPOLL, AWAIT_WITH_SIGACTION and AWAIT_WITH_SIGNAL were added
7423
7424 20110403:
7425 - The compiler (comp.sd7) was improved to generate less code to initialize
7426   arrays. Repeated elements in array initializations are recognized and
7427   the initialization is done with loops instead of individual assignments.
7428   When compiling panic.sd7 this optimization reduces the size of the
7429   generated C program by 77% and the size of the executable by 69%.
7430 - The compiler (comp.sd7) was improved to generate string literals with
7431   reduced space requirements.
7432 - The function 'getArgv' in "arr_rtl.c" was changed to assume that the
7433   parameters 'arg_0' and 'exePath' are not NULL.
7434 - The code, to recognize constant expressions in the compiler, was improved.
7435 - The superfluous functions 'gkbXpos' and 'gkbYpos' were removed from
7436   "drw_dos.c".
7437
7438 20110320:
7439 - An explanation where the interpreter looks for include files, was added to
7440   the FAQ.
7441 - An explanation how the directory of the predefined include libraries
7442   is determined, was added to the FAQ.
7443 - An explanation how the Seed7 compiler gets information about C compiler and
7444   runtime, was added to the FAQ.
7445 - A description of several C preprocessor macros used in "version.h" was
7447 - Missing functions were added to the file "drw_dos.c".
7448 - The function 'bstTail' was added to the file "bst_rtl.c".
7449
7450 20110306:
7451 - The support for CGI programs in the comanche.sd7 webserver was improved.
7452 - The first steps towards evaluating pure functions in the compiler (when they
7453   are called with constant parameters), were done.
7454 - The compiler (comp.sd7) was improved to generate code with fewer temporary
7455   variables for the actions SET_ELEM and SET_NOT_ELEM.
7456 - The function 'evaluate' (defined in "progs.s7i" and implemented in "exec.c",
7457   "prglib.c" and "prg_comp.c") was improved to work correctly when the
7458   evaluation raises an exception.
7459 - Parameter names were added to the prototypes in the files "exec.h",
7460   "executl.h", "expr.h", "identutl.h", "match.h", "objutl.h", "name.h",
7461   "object.h", "parser.h", "runerr.h", "symbol.h" and "token.h".
7462 - The files "memory.c" and "memory.h" were renamed to "objutl.c" and
7463   "objutl.h" respectively.
7464 - The function 'uintCmpGeneric' was introduced in the file "int_rtl.c" and
7465   used in compiled programs.
7466 - The example programs "chk_all.sd7" and "chkprc.sd7" were improved.
7467 - The file "drw_x11.c" was changed to reduce the number of warnings generated
7468   by the C compiler.
7469 - Missing functions were added to the file "drw_dos.c".
7470
7471 20110220:
7472 - The handling of closure parameters in the compiler (comp.sd7) was improved.
7473 - A free string memory management for small strings was introduced in
7474   "heaputl.h". This improves the performance of some programs with string
7475   processing by up to 20 percent.
7476 - The "socket.s7i" library was improved to provide protocol independent
7477   network access.
7479 - Several changes were done to support compiling with a C++ compiler.
7480 - The compiler (comp.sd7) was improved to generate runtime library prototypes
7481   with const qualifier.
7482 - The macros 'likely' and 'unlikely' were added to if-statements checking for
7483   exception conditions in the files "cmd_rtl.c" and "soc_rtl.c".
7484 - The const qualifier was added to function prototypes in "hsh_rtl.c" and
7485   "hsh_rtl.h".
7487   "soc_rtl.c" were improved to optionally use the function 'getaddrinfo'.
7488   With 'getaddrinfo' it is possible to access computers with IPv4 and IPv6
7489   addresses. For Linux this feature is activated.
7490 - Interpreter, compiler and runtime library were improved to support the
7492 - The compiler (comp.sd7) was improved to generate better code when accessing
7493   the element of an array that was the result of another computation.
7494 - The compiler (comp.sd7) was improved to generate code with fewer temporary
7495   variables for the actions ARR_IDX, ARR_LNG, STR_EQ and STR_NE.
7496 - The initialization of string constants in the compiler was improved.
7497
7498 20110203:
7499 - Many thanks to Bogdan Lisovich for his help to investigate and fix a
7500   compilation problem under Mac OS.
7501 - The fannkuch-redux benchmark "fannkuch.sd7" from "Bart C" was added
7502   (Many thanks to "Bart C" for releasing "fannkuch.sd7" under the GPL).
7503 - The comanche.sd7 webserver was improved to support CGI programs.
7504 - The chapter explaining 'operating system access' in the manual was improved.
7505 - The function 'getCgiParameters(file)' was added to "cgi.s7i".
7506 - The functions 'setenv' and 'file(PROGRAM)' were added to "seed7_05.s7i"
7507 - The interpreter and the compiler were improved to support the function
7508   'getenv'.
7509 - Several changes were done to support compiling with a C++ compiler.
7510 - The keyword INLINE was removed from the functions bigCmp, bigCreate,
7511   bstCmp, bstCreate, fltCmp, intCmp, rflCreate, setCmp, setCreate, strCompare
7512   and strCreate (C++ does not generate an externally visible function for
7513   inline functions).
7514 - The compiler (comp.sd7) was improved to generate runtime library prototypes
7515   with constant types.
7516 - The function timFromIntTimestamp was introduced in "tim_rtl.c" and used
7517   in "timlib.c" and in compiled code.
7518 - The example programs dirtst.sd7, eliza.sd7, fib.sd7, gkbd.sd7, hamu.sd7,
7519   kbd.sd7, rand.sd7, rever.sd7, sl.sd7, snake.sd7 and tak.sd7 were improved
7520   to use the operator <& instead of multiple calls of write.
7521 - The const qualifier was added to function prototypes in "arr_rtl.c",
7522   "arr_rtl.h", "big_rtl.c", "big_gmp.c", "big_drv.h", "blockutl.c",
7523   "blockutl.h", "drw_x11.c", "drw_win.c", "drw_drv.h", "fil_rtl.c",
7524   "fil_rtl.h", "ref_data.c", "ref_data.h", "soc_rtl.c", "soc_rtl.h",
7525   "tim_rtl.c", "traceutl.c" and "traceutl.h".
7526 - The macro 'os_fstat_struct' was introduced in the files "mk_bccv5.mak",
7527   "common.h"" "infile.c", "fil_rtl.c", "cmd_rtl.c".
7528 - Parameter names were added to the prototypes in the files "blockutl.h",
7529   "dir_win.h", "doany.h" and "traceutl.h".
7530
7531 20110116:
7532 - The chapter explaining 'operating system access' in the manual was improved.
7533 - The standard path representation was changed to forbid drive letters
7534   (instead of "C:" the standard path "/c" must be used).
7535 - The programs comanche.sd7, comp.sd7 and make7.sd7 were improved to work
7536   with the new standard path representation.
7537 - The spacing between characters in the standard bitmap fonts was improved.
7538 - The example programs startrek.sd7, wiz.sd7, mind.sd7, wumpus.sd7 and
7539   addup.sd7 were improved to use the operator <& instead of multiple calls
7540   of write.
7541 - In the "seed7_05.s7i" library the functions toStdPath and convDosPath were
7543 - The interpreter and the compiler were improved to support for-until loops
7544   for the type 'ref_list'.
7545 - The recognition of constant expressions in the compiler was improved.
7546 - The initialization of hash constants in the compiler was improved to
7547   use the function hshEmpty when possible.
7548 - The initialization of string constants in the compiler was improved to
7549   use string slices which point to an array of characters.
7550 - The 'const' specifier and the macros 'likely' and 'unlikely' were added to
7551   several *.c and *.h files.
7552 - The implementation of the function path(PROGRAM) in the interpreter was
7553   improved.
7554 - The drawing functions for filled areas were improved in "drw_x11.c".
7555 - The function 'create_hash' in "hsh_rtl.c" was improved.
7556
7557 20110102:
7558 - The function convDosPath was added to the "seed7_05.s7i" library. It
7559   converts a path with backslashes and drive letters to the standard path
7560   representation. E.g.: "C:\seed7" is converted to "/c/seed7". When a path
7561   is already in the standard path representation it is left unchanged.
7562 - Functions with path parameters or path result were improved to accept
7563   and return file paths with the standard path representation. The standard
7564   path representation uses a slash as path separator. Under Windows a
7565   standard path like "/c" is mapped to the drive letter "C:". Reading the
7566   directory "/" under Windows returns a list of available drives.
7567 - The function path(PROGRAM), which returns the absolute path of the program,
7568   was added to the "seed7_05.s7i" library.
7569 - The function dir(PROGRAM), which returns the directory containing the
7570   program, was added to the "seed7_05.s7i" library. The dir(PROGRAM) function
7571   allows placing configuration data in the directory of the program.
7572 - The function getenv was improved to work with Unicode environment
7573   variables.
7574 - The "bas7.sd7" Basic interpreter was improved to interpret RND() as RND
7575   and MID statements as equivalent to MID$statements. 7576 7577 20101219: 7578 - The handling of closures in the compiler ("comp.sd7") was improved. When 7579 possible closures are implemented with code inlining. When this is not 7580 possible closures are implemented with C functions and a corresponding 7581 data structure to hold the environment data. 7582 - A new example program (make7.sd7), a make utility which can be used to 7583 manage the compilation process, was added. Make7 is capable to compile 7584 the Seed7 release with every mk_*.mak makefile released with Seed7. 7585 - Code was moved from the "tar7.sd7" example program to the new library 7586 "tar.s7i". The "tar.s7i" library allows programs to deal with tar files 7587 without the need to call external programs. 7588 - The directory seed7/bin was introduced as place for executables and 7589 runtime libraries. This should allow installing Seed7 by adding the 7590 seed7/bin directory to the PATH. Additionally the environment variable 7591 SEED7_LIBRARY can be defined to contain the path of the seed7/lib directory. 7592 - The performance of the str function (conversion to string), for integer and 7593 bigInteger values, was improved. 7594 - The standard bitmap fonts were improved to reduce the spacing between 7595 characters. 7596 - The FAQ answers explaining portability and debugging were improved. 7597 - The chapters explaining string functions and stack traces in the manual 7598 were improved. 7599 - Tests for the 'lpad0' operator were added to the "chkint.sd7" program. 7600 - Compiler and interpreter were improved to support the action BST_STR, which 7601 converts a byte string to an UTF-32 string. 7602 7603 20101205: 7604 - The chapter explaining the file open function in the manual was improved. 7605 - The file open function was improved to return STD_NULL on an attempt to 7606 open a directory. 7607 - Interpreter and compiler were improved to support Unicode program arguments 7608 under Windows. 7609 - The file "chkccomp.c" was added. It is used during the make process to 7610 determine properties of the C compiler and the C runtime library. 7611 - The makefiles were improved to use the new generic file "chkccomp.c", 7612 instead of creating their own versions of "chkccomp.c". 7613 - The time/duration field 'mycro_second' and the functions 'getMycroSeconds', 7614 'toMycroSeconds' and 'MYCRO_SECONDS' were renamed to 'micro_second', 7615 'getMicroSeconds', 'toMicroSeconds' and 'MICRO_SECONDS' respectively. This 7616 changes were done in the example programs and in the "time.s7i" library. 7617 - The functions 'setATime' and 'setMTime' in 'time.s7i' were improved to raise 7618 RANGE_ERROR when the specified time is illegal or outside the allowed range. 7619 - The carddemo.sd7 example program was improved to allow moving, raising and 7620 lowering cards with the mouse and mouse buttons. 7621 - The function 'getHttp' in the "gethttp.s7i" library was improved to handle 7622 the status codes 301, 302, 303 and 307. 7623 - The functions 'hashCode', 'compare', 'setContent', 'toBottom' and 'toTop' 7624 were added to the "graph.s7i" library and the compiler was improved to 7625 support them. 7626 - Bitmap fonts were improved to allow scaling. 7627 - The function 'skipSpaceOrTab' was added to the "scanfile.s7i" library. 7628 - The "chkhsh.sd7" example program was improved. 7629 - The compiler was improved to generate code, which defines functions for 7630 'hsh_create' and 'hsh_destr' before they are used. 7631 - The compiler was improved to generate code with parenthesis around C comma 7632 operator expressions. This is necessary to allow using such an expression as 7633 argument of a C macro. 7634 - The handling of the action 'bst_idx' in the compiler was fixed to use 7635 'bstritype' instead of 'stritype'. 7636 - The compiler was improved to use the function 'generic_sct_cpy'. This 7637 function was introduced to allow changing an element of a hash, when the 7638 hash has struct elements. 7639 - The "tar7.sd7" example program was improved to check if a file already 7640 exists. 7641 - The function 'bst_cpy' in "bstlib.c" was fixed to use 'take_bstri' instead 7642 of 'take_stri'. 7643 - The function 'cmdFileType' in "cmd_rtl.c" was improved to return FILE_ABSENT 7644 when one element in the path is not a directory. 7645 - The "drw_x11.c" driver was improved: Expose events now draw only the exposed 7646 area. The exposed area is not cleared before the expose event is delivered. 7647 Expose events for the whole window are avoided, when a window is resized. 7648 - The function 'drwFlush' in "drw_x11.c" now proceeds until no expose events 7649 are present. 7650 - The function 'find_window' in "drw_x11.c" now manages the windows with a 7651 hash table instead of a linked list. 7652 - The new function 'processEvents' in "drw_x11.c" looks for expose events and 7653 processes them. 7654 - Documentation comments were added to the function 'filOpen' in the file 7655 "fil_rtl.c". 7656 - The files "kbd_inf.c" and "kbd_poll.c" were improved to use utf8_mode also 7657 when the LANG environment variable contains the substring "utf8". 7658 7659 20101121: 7660 - The chapters explaining integer and bigInteger in the manual were improved. 7661 - Several improvements and a bugfix were done in the "gzip.s7i" library. 7662 - The function openGunzipFile and other functions to support a gunzipFile 7663 were added to the "gzip.s7i" library. 7664 - The "tar7.sd7" (tar archiving utility) example program was improved. 7665 - The function getCStringLiteralText was added to the "scanstri.s7i" library. 7666 - The function timeInTimeZone was added to the "time.s7i" library. 7667 - Several tests of the integer power operator (**) were added to the 7668 "chkexc.sd7" program. 7669 - The function check_power in the "chkint.sd7" program was improved. 7670 - The compiler (comp.sd7) was improved to generate better code for the 7671 actions INT_POW and BIG_IPOW. 7672 - The compiler was improved to use string slices for the actions STR_HEAD, 7673 STR_RANGE, STR_SUBSTR and STR_TAIL. 7674 - The compiler and the files "seed7_05.s7i", "arrlib.c" and "arr_rtl.c" were 7675 improved to allow appending an element to an array with the &:= operator. 7676 - String and array indexing functions in the compiler were improved. 7677 - The file "seed7/read_me" was renamed to "seed7/read_me.txt". 7678 - The function cmdConfigValue in "cmd_rtl.c" was improved to support the config 7679 values ALLOW_STRITYPE_SLICES and CC_SOURCE_UTF8. 7680 - Several makefiles were changed such that #undef commands are not written 7681 to the file "version.h". 7682 - Alternate versions of strAppend and strCopy, which support string slices, 7683 were added to the file "str_rtl.c". 7684 - The functions strHeadSlice, strRangeSlice, strSubstrSlice and strTailSlice 7685 were added to the file "str_rtl.c". 7686 - The memory management of strings in the files "heaputl.c" and "heaputl.h" was 7687 improved to support string slices. 7688 - The files "ref_data.c", "reflib.c", "infile.c", "infile.h", "error.h", 7689 "info.c", "info.h", "match.c" and "runerr.c" were changed to improve the 7690 action REF_FILE. 7691 - Parameter names were added to the prototypes in the *lib.h files. 7692 - The function strLpadTemp was added to the file "str_rtl.c" and used in the 7693 compiler. 7694 7695 20101107: 7696 - The chapter explaining exception handling in the manual was improved. 7697 - The support for bitmap fonts was improved to use fontProperties as base type. 7698 - The '-' function, which computes the difference of two 'time' values (with a 7699 'duration' result) in "time.s7i", was improved. 7700 - The function cmdConfigValue in "cmd_rtl.c" was improved to support the config 7701 values C_COMPILER_VERSION and GET_CC_VERSION_INFO. 7702 - In the file "fil_rtl.c" the functions myLseek, myFseek and myFtell were 7703 renamed to os_lseek, os_fseek and os_ftell respectively. 7704 - The makefiles were changed to define os_fseek, os_ftell, C_COMPILER_VERSION 7705 and GET_CC_VERSION_INFO. 7706 - Documentation comments were added to the function alternate_utime in the file 7707 "tim_win.c". 7708 7709 20101024: 7710 - The FAQ answers explaining extensible programming and object orientation, 7711 were improved. 7712 - The chapters explaining UTF-16 files and exception handling in the manual, 7713 were improved. 7714 - The standard bitmap font was improved to define more characters. 7715 - Documentation comments were added to the library "utf16.s7i". 7716 - The "bas7.sd7" (Basic interpreter) example program was improved to avoid an 7717 endless loop when the label or line number of a goto does not exist. 7718 - Several changes were done to improve the configuration of the Seed7 7719 interpreter. 7720 7721 20101010: 7722 - The first steps towards support of bitmap fonts were done. 7723 - The standard bitmap font was defined for the sizes 10, 12, 14, 16, 18 and 24. 7724 - A new example program (testfont.sd7), which writes with the standard font 7725 in various sizes, was added. 7726 - The initialization of the random number generator in the function 7727 uint_rand in "int_rtl.c" was improved. 7728 - The function timMycroSec was defined in "tim_unx.c" and "tim_win.c". 7729 7730 20100919: 7731 - The chapter explaining string indexing in the manual was improved. 7732 - The compiler (comp.sd7) and the hi interpreter were improved to support the 7733 actions "ITF_CMP" and "ITF_HASHCODE". 7734 - The parameter names of the functions arc, chord and pieslice in the 7735 "draw.s7i" library were changed to startAngle and sweepAngle. 7736 - The compiler was improved such that compiled programs which use SIGALARM 7737 (the functions 'wait' and 'await' from the "time.s7i" library may use 7738 SIGALARM) can be terminated with ctrl-c followed by * and enter. 7739 - Parameter names were added to the prototypes in the file "drw_drv.h". 7740 - The function drwPFArcPieSlice in "drw_win.c" was implemented. 7741 - The functions drwFCircle and drwPFCircle in "drw_x11.c were improved. 7742 7743 20100905: 7744 - The chapter explaining the type 'time' in the manual was improved. 7745 - The support for source level debugging in the compiler (comp.sd7) was 7746 improved. Now the option -g generates better #line directives and the 'main' 7747 function is arranged such that the current line shown by a debugger is 7748 correct when the program is started. 7749 - In the "seed7_05.s7i" library the function "rpos" was overloaded to do a 7750 reverse search for a character in a string starting from a given position. 7751 - The files "str_rtl.c", "strlib.c", "primitiv.c" and the compiler were 7752 improved to support the primitive action STR_RCHIPOS (which implements the 7753 new overloaded 'rpos' function). 7754 7755 20100822: 7756 - A new example program (dragon.sd7), which draws a dragon curve, was added. 7757 - A new example program (fractree.sd7), which draws a fractal tree, was added. 7758 - The chapters explaining the types 'time' and 'duration' in the manual were 7759 improved. 7760 - The '-' function, which computes the difference of two 'time' values (with a 7761 'duration' result) in "time.s7i", was improved. 7762 - The functions 'daysInYear', 'getYears', 'getMonths', 'getDays', 'getHours', 7763 'getMinutes', 'getSeconds' and 'getMycroSeconds' were added to the "time.s7i" 7764 library. 7765 - The "time.s7i" functions 'years', 'months', 'days', 'hours', 'minutes', 7766 'seconds' and 'mycro_seconds' were renamed to 'toYears', 'toMonths', 'toDays', 7767 'toHours', 'toMinutes', 'toSeconds' and 'toMycroSeconds' respectively. 7768 - The "bas7.sd7" example program was improved to use the new "time.s7i" 7769 functions. 7770 - The makefiles were improved to determine the size and the signedness 7771 (regarding the function 'localtime') of time_t values. 7772 - The functions 'timToTimestamp' and 'timSetLocalTZ' in "tim_rtl.c" were 7773 improved to take the size and signedness of time_t into account. 7774 7775 20100801: 7776 - The FAQ was improved to contain three main sections. 7777 - Instructions to verify the correctness of the interpreter were added to the 7778 FAQ and to the file "src/read_me.txt". 7779 - Instructions how to use the Seed7 interpreter were added to the FAQ. 7780 - An explanation how static type checking works, when types are first-class 7781 objects, was added to the FAQ. 7782 - The FAQ answers explaining the compilation of the Seed7 interpreter and how 7783 to compile Seed7 programs, were improved. 7784 - References to the manual were added to several FAQ answers. 7785 - The chapters explaining string literals, character literals, exceptions and 7786 stack traces in the manual were improved. 7787 - Tests for the 'str' function, where the base of the number system is provided 7788 as parameter, were added to "chkint.sd7". 7789 - The compiler (comp.sd7) was improved to generate better code for interface 7790 (dynamic) functions. Now a runtime exception is raised when no adequate 7791 implementation function is found. 7792 - A definition of 'ACTION_ERROR' was added to "common.h" and "comp.sd7". 7793 - The interpreters stack traces with function call notation, were improved. 7794 7795 20100718: 7796 - The first steps towards support of variable functions and closures in the 7797 compiler ("comp.sd7") were done. 7798 - The generation of code for 'for' loops and the 'div' operator in the compiler 7799 was improved. 7800 - The compiler function 'getTemporaryToResultExpr' was improved to generate 7801 code without casts from 'floattype' to 'generictype'. 7802 - The function 'rand_32' in "int_rtl.c" was renamed to 'uint_rand' and improved 7803 to work better for 64-bit integers. 7804 - A bug that could occur when loading a saved game was fixed in the example 7805 program "castle.sd7". 7806 - Tests for conversions from integer to float were added to the "chkflt.sd7" 7807 example program. 7808 7809 20100704: 7810 - The Seed7 interpreter (hi) was improved to support stack traces with 7811 function call notation. 7812 - The "progs.s7i" library was improved to support indexing and 'for' loops 7813 for 'bstring' values. 7814 - Indexing tests for constant arrays were added to the "chkexc.sd7" program. 7815 - The compiler was improved to generate code for array and string indexing with 7816 temporary values of type 'uinttype' instead of 'memsizetype'. 7817 - The compiler was improved to generate code with the type 'rtlValueunion' 7818 instead of 'valueunion' (this is the same type as in the file "data_rtl.h"). 7819 - The compiler was improved to create dynamic dispatcher functions which copy 7820 a struct value when necessary (in function 'process_dynamic_action_call'). 7821 - The compiler ("comp.sd7") was improved to initialize constant 'bstring' 7822 values correctly. 7823 - The compiler option -e was improved to create an executable which sends a 7824 signal when an uncaught exception occurs (A caught exception does not send 7825 a signal). 7826 - The files "bstlib.c", "primitiv.c" and the compiler ("comp.sd7") were 7827 improved to support the primitive action BST_IDX (which allows indexing of 7828 'bstring' values). 7829 - A definition of the type 'rtlStructtype' was added to "data_rtl.h". 7830 - The files "traceutl.c" and "runerr.c" were improved to define and use the 7831 functions 'printformparam' and 'prot_name'. 7832 - Variables were renamed in the files "strlib.c", "bstlib.c" and "ref_data.c". 7833 - Checks for negative line and column values and casts to 'size_t' were 7834 added to the files "scr_inf.c", "scr_cap.c" and "scr_tcp.c". 7835 7836 20100620: 7837 - Documentation comments were added to the libraries "graph.s7i", "keybd.s7i" 7838 and "time.s7i". 7839 - The compiler (comp.sd7) was improved to support the option -te which enables 7840 tracing of exceptions in the generated executable. 7841 - Some types generated by the compiler were renamed to make them unique (This 7842 helps a debugger to distinguish types when values are displayed). 7843 - The declaration of 'flush' in "seed7_05.s7i" was improved (This way the 7844 compiled example program "sl.sd7" works with the correct cursor position). 7845 - The functions 'prc_for_to' and 'prc_for_downto' in "prclib.c" were changed 7846 to terminate the loop when an exception was raised (This way the loop 7847 variable has the correct value when an exception occurs). 7848 - The performance of the functions 'strAppend', 'strAppendTemp', 7849 'strConcatTemp', 'strHeadTemp' and 'strPush' in "str_rtl.c" was improved. 7850 - Several functions in "big_rtl.c" were improved to avoid a MEMORY_ERROR in 7851 the strange case when a 'realloc' which shrinks memory fails. 7852 - The function alloc_positive_copy_of_negative_big and its calls in "big_rtl.c" 7853 were improved to avoid memory leaks in out of memory situations. 7854 - The functions 'bigIncr' and 'bigDecr' in "big_rtl.c" were improved to work 7855 as transactions in out of memory situations. 7856 - The functions 'bigSuccTemp' and 'bigPredTemp' were improved to work without 7857 calling 'bigIncr' and 'bigDecr' respectively. 7858 - The handling of constant expressions for values with the categories 7859 ARRAYOBJECT, STRUCTOBJECT, HASHOBJECT and INTERFACEOBJECT in the compiler 7860 was improved. 7861 - The support for the actions "CMD_SHELL" and "REF_TRACE" in the compiler was 7862 improved. 7863 - Code in the compiler was moved from the function 'generate_main' to 7864 'init_array_constants', 'init_struct_constants', 'init_hash_constants' and 7865 'init_interface_constants'. 7866 - The creation of array constants in the compiler was improved to use a 'for' 7867 loop over a 'ref_list' instead of an 'integer' 'for' loop and an index 7868 access to an element of the (possible long) 'ref_list' (This speeds up 7869 compilation of programs with huge array constants). 7870 - The function 'addTypeCategoryForLocalVars' was added to the compiler. 7871 - The macro 'unlikely' was added to if statements which check for error 7872 conditions in the files "str_rtl.c", "big_rtl.c" and "heaputl.c". 7873 - The macros 'likely' and 'unlikely' were defined in the file "common.h" and 7874 in several makefiles. 7875 - Several functions in "flistutl.c" and "heaputl.c" were improved to produce 7876 a correct heap statistic. 7877 - The const qualifier was added to function prototypes in "prg_comp.c" and 7878 "prg_comp.h". 7879 - The functions 'prg_decl_objects', 'prg_error_count', 'prg_match', 7880 'prg_match_expr', 'prg_syobject' and 'prg_sysvar' in "prglib.c" were changed 7881 to call the corresponding functions from "prg_comp.c". 7882 - The functions 'scr_setpos' and 'scr_write' in "scrlib.c" were changed to 7883 call the corresponding functions from "scr_rtl.c". 7884 - The function 'printparam' was added to "traceutl.c". 7885 7886 20100606: 7887 - An explanation of the difference between overloading and object orientation, 7888 was added to the FAQ. 7889 - The function 'popen8', which opens an UTF-8 pipe, was added to the 7890 "shell.s7i" library. 7891 - Checks for 'log2' were added to the "chkbig.sd7" program. 7892 - Checks for file exceptions were added to the "chkexc.sd7" program. 7893 - A check for the 'keys' function for hash tables was added to "chkhsh.sd7". 7894 - A definition of voidHtmlElements, a set containing HTML element names which 7895 possibly have no closing tags, was added to the "html.s7i" library. 7896 - The experimental function 'readHtml' was added to the "xmldom.s7i" library. 7897 - Calls of 'rflNe' in the compiler "comp.sd7" were replaced with '!rflEq'. 7898 - Checks with MAX_UTF8_EXPANSION_FACTOR were added to functions in "actutl.c", 7899 "cmd_rtl.c", "flt_rtl.c", "striutl.c", "str_rtl.c" and "syvarutl.c". 7900 - The function "parseFile" was improved to work with Unicode file names and to 7901 raise FILE_ERROR when the file is not found or RANGE_ERROR when a backslash 7902 is used as path delimiter. 7903 - The files arrutl.c and arrutl.h were removed and the function "qsort_array" 7904 was moved to "arrlib.c". 7905 - Macros with name endings _SIZE_OK and _CHECK_SIZE were introduced in 7906 "heaputl.h" and used in various files. 7907 - Comparisons with MAX_STRI_LEN and MAX_BSTRI_LEN were added in various files 7908 to make sure that there are no overflows when the size of a string or 7909 bstring is computed. 7910 - Macros with name endings _SIZE_OK and _CHECK_SIZE were introduced and used 7911 in "big_rtl.c". 7912 - The type 'offsettype' was renamed to 'os_off_t' in "fil_rtl.c" and the 7913 makefiles were improved to write a definition of 'os_off_t' to "version.h". 7914 - When FTELL_WRONG_FOR_PIPE is defined it is assumed that fseek does also 7915 not work correctly for pipes. 7916 - File read and write functions in "fil_rtl.c" and "ut8_rtl.c" are checked 7917 for error conditions and FILE_ERROR is raised when an error happens. 7918 - The functions 'find_include_file' and 'init_lib_path' were improved and the 7919 function 'free_lib_path' was introduced in the file "infile.h". 7920 - A comment was added to 'genPointList' in "graph.s7i" and the implementation 7921 of 'drwGenPointList' in "drw_x11.c" and "drw_win.c" was fixed. 7922 - In several makefiles functionality was moved from the help program 7923 'chkftell.c' to 'chkccomp.c'. 7924 - Parameter names were added to the prototypes in several header files. 7925 - Declarations of a variable named 'cmp' were changed from 'int' to 'inttype' 7926 in the files "arrlib.c", "arr_rtl.c", "hshlib.c" and "hsh_rtl.c". 7927 - The function 'rflNe' was removed from the file "rfl_data.c". 7928 7929 20100516: 7930 - Seed7 now supports the 64-bit versions of Linux and Mac OS X. Many thanks 7931 to "Mensanator" for his help to reach this goal. 7932 - The compiler (comp.sd7) was improved to generate C programs with fewer 7933 casts and with no parentheses around the right hand side of assignments. 7934 - The compiler was improved to use the hash 'typeCategory' and 'category' 7935 values instead of various hashes like 'bigint_types'. 7936 - The functions 'compare' and 'hashCode' were added to the "complex.s7i" 7937 library to allow complex numbers as keys for hash tables. 7938 - The "progs.s7i" library was improved to allow 'case' statements for 7939 'category' values. 7940 - The FAQ, explaining function and operator overloading, was improved. 7941 - The "chk_all.sd7" example program was improved to remove an old executable 7942 before calling the compiler. 7943 - The 'gets' function for UTF-8 files was improved to work correctly when 7944 reading from a pipe (see functions 'ut8Gets', 'read_and_alloc_utf8_stri' 7945 and 'read_utf8_string' in "ut8_rtl.c"). 7946 - The functions 'remainingBytesInFile', 'read_string', 'read_and_alloc_stri' 7947 and 'filGets' in "fil_rtl.c" were added or improved. 7948 - The macros 'ALLOC_STRI' and 'REALLOC_STRI' and the functions 'growStri', 7949 'strMult', 'filGets', 'ut8Gets' and 'socGets' were improved to avoid 7950 overflows when the size of a memory request is computed. 7951 7952 20100502: 7953 - The "chk_all.sd7" example program was improved to write detailed information 7954 when tests fail. 7955 - The "shell.s7i" library was improved such that 'popen' behaves correctly 7956 when the created pipe is closed with 'close'. 7957 - The compiler and the runtime library were improved to use the correct 7958 exception handling function in compiled and interpreted code (When the 7959 compiled compiler analyzes a source program the interpreter will execute 7960 some expressions). 7961 - The macro processing of the compiler was improved to work better for 7962 function macros. 7963 - The functions seekFileLength, offsetTell, offsetSeek, remainingBytesInFile, 7964 getFileLengthUsingSeek, getBigFileLengthUsingSeek, filBigLng, filBigSeek, 7965 filBigTell, filClose, filGets, filPclose, filSeek and filTell in 7966 "fil_rtl.c" were added or improved. This way the types integer and 7967 offsettype both can have a size of 32- or 64-bit in any combination. 7968 - The function ut8Gets in "ut8_rtl.c" was improved to use remainingBytesInFile. 7969 - The makefiles "mk_osx.mak", "mk_linux.mak", "mk_cygw.mak" and "makefile" 7970 were improved to define USE_FSEEKO. This causes the use of 'fseeko' and 7971 'ftello' as seek and tell functions in "fil_rtl.c". 7972 - Support for the actions BST_CMP, BST_HASHCODE and FIL_PCLOSE was added to 7973 the interpreter and the compiler. 7974 - The handling of types in the compiler was improved such that subtypes of 7975 'boolean', 'enum', 'integer', 'bigInteger', 'float', 'char', 'string' and 7976 'bstring' are supported better. 7977 - A definition of the type 'bstring' was added to the "progs.s7i" library. 7978 - The compiler and the interpreter were improved to support 'bstring' as key 7979 and value for hash tables and 'ref_list' as value for hash tables. 7980 - A definition of an assignment statement for exceptions was added to the 7981 "seed7_05.s7i" library. 7982 - Tests for the integer parse function were added to "chkint.sd7". 7983 - The config value LITTLE_ENDIAN was renamed to LITTLE_ENDIAN_INTTYPE in 7984 several files. 7985 - The compiler was improved to use the functions bstriLiteral and typeLiteral 7986 to write occurrences of 'bstring' and 'type' literals to the generated C 7987 program. 7988 - The compiler was improved to create prototypes for the functions bstCmp, 7989 bstCmpGeneric, bstCreateGeneric, bstHashCode, bstValue, drwGenPointList, 7990 filClose, filPclose, rflCreateGeneric and typStr. 7991 - The function rflCmp was added to "rfl_data.c". 7992 - The handling of the flag FTELL_WRONG_FOR_PIPE was moved from "cmd_rtl.c" 7993 to "fil_rtl.c". 7994 - Usages of the constant ULONG_MAX were replaced by UINTTYPE_MAX in the 7995 files "flt_rtl.c", "int_rtl.c" and "int_rtl.h". 7996 - The function drwGenPointList was changed to use an array parameter in 7997 "drwlib.c", "drw_drv.h", "drw_win.c", "drw_x11.c" and "comp.sd7". 7998 - The processing of bstParse, bstValue, drwPFArcPieSlice, setSConv, typStr 7999 and array cpy_* in the compiler was improved. 8000 - The const qualifier was added to function prototypes in "rfl_data.c" and 8001 "rfl_data.h". 8002 8003 20100418: 8004 - Many thanks to "Mensanator" for his help to debug some 64-bit / Mac OS X 8005 problems. 8006 - The chapters explaining operating system files, primitive actions and the 8007 types 'float' and 'type' in the manual were improved. 8008 - A free list memory management for small 'biginttype' (bigInteger) values 8009 was introduced in "big_rtl.c". This improves the performance of some 8010 programs by up to 40 percent. 8011 - The macro definition of REALLOC_BIG in "big_rtl.c" was changed to cooperate 8012 with the free list memory management. 8013 - The file common.h was improved to add a capacity to the struct bigintstruct. 8014 - The graph.s7i library was improved. 8015 - The chk_all.sd7 example program was improved to close the pipe files. 8016 - The compiler (comp.sd7) was improved to handle empty structs correctly. 8017 - The compiler was improved to produce better code when local functions use 8018 variables from surrounding functions. 8019 - Some changes in the compiler were done to make sure that always the same 8020 C program is generated. 8021 - The compiler was changed to create a typedef before a type is used. 8022 - The compiler was improved to create data structure definitions which are 8023 helpful for a debugger. 8024 - The compiler was improved to produce better code for the copy actions arr_cpy, 8025 big_cpy, bst_cpy, drw_cpy, prg_cpy, rfl_cpy, sct_cpy, set_cpy and str_cpy. 8026 - The compiler was improved to produce better code for the actions prc_for_to, 8027 prc_for_downto, hsh_for, hsh_for_data_key, hsh_for_key. 8028 - Casts were added to compiler generated function calls of bstCreate, 8029 bstDestr, bstCpy, arrBaselit, arrBaselit2, arrExtend, arrGen, drwFPolyLine, 8030 drwPolyLine, prgExec, rflHead, setSConv, prgDestr and to various other 8031 places. 8032 - The compiler was improved to create prototypes for the functions bigGcd, 8033 bigOdd, bigPredTemp, bigSuccTemp, cmdChdir, cmdConfigValue, cmdMkdir, 8034 drwBackground, drwGenPointList, drwNewPixmap, drwPolyLine, drwFPolyLine, 8035 drwSetTransparentColor, prgDestr, prgExec, refType, rflHead, setIConv, 8036 setSConv, strGetenv, strToUtf8, strUtf8ToStri and setupFloat. 8037 - The function ref_type in "reflib.c" was improved to reliably raise an 8038 exception when the type is NULL. 8039 - Unused variables were removed in the files cards.s7i, draw.s7i, gzip.s7i, 8040 seed7_05.s7i, addup.sd7, bas7.sd7, carddemo.sd7, chk_all.sd7, comanche.sd7, 8041 comp.sd7, lander.sd7, mahjong.sd7, mandelbr.sd7, panic.sd7, sl.sd7, 8042 snake.sd7, sokoban.sd7, sudoku7.sd7 and tar7.sd7 . 8043 - Return statements were changed to omit parentheses in the files actutl.c, 8044 analyze.c, bst_rtl.c, dir_dos.c, dir_rtl.c, dir_win.c, drw_rtl.c, fil_rtl.c, 8045 flt_rtl.c, hsh_rtl.c, kbd_inf.c, kbd_poll.c, kbd_rtl.c, reflib.c, rfl_data.c, 8046 soc_rtl.c, tim_rtl.c and ut8_rtl.c . 8047 8048 20100404: 8049 - Many thanks to "Mensanator" for his help to investigate 64-bit and Mac OS X 8050 problems. 8051 - The chk_all.sd7 check program was improved to check that the interpreted 8052 compiler and the compiled compiler generate the same C programs. 8053 - Checks for 'set of char' were added to the "chkset.sd7" program. 8054 - The compiler (comp.sd7) and the interpreter (hi) were improved to support the 8055 actions BST_EQ, BST_NE and BST_PARSE. 8056 - The compiler (comp.sd7) was improved to support the actions BST_APPEND and 8057 CHR_CMP. 8058 - The compiler (comp.sd7) was improved to make sure that the same types are used 8059 in generated C programs and in the runtime library. 8060 - The generation of string constants in the compiler was improved to work 8061 correctly when the string size is stored as 64-bit unsigned value. 8062 - The generation of set constants in the compiler was improved to work correctly 8063 when bitsettype elements have a size of 64-bit. 8064 - The compiler was improved to use the union type 'valueunion' instead of 8065 'float2int'. 8066 - The functions arrBaselit, arrBaselit2, arrExtend and arrGen in "arr_rtl.c" 8067 were changed to use parameters of type rtlGenerictype instead of rtlObjecttype. 8068 - The functions bigCmpGeneric, chrCmpGeneric, fltCmpGeneric, intCmpGeneric, 8069 refCmpGeneric, setCmpGeneric, strCmpGeneric and typCmpGeneric were introduced 8070 as compare functions with parameters of type rtlGenerictype. 8071 - The functions bst_append, bst_cpy, bstAppend and bstCpy (defined in "bstlib.c" 8072 and "bst_rtl.c") were improved to work correctly when source and destination 8073 are identical. 8074 - The function cmdConfigValue in "cmd_rtl.c" was improved to support the config 8075 values INTTYPE_SIZE, FLOATTYPE_SIZE and LITTLE_ENDIAN. 8076 - Several makefiles were changed to define FLOAT_SIZE, DOUBLE_SIZE and 8077 LITTLE_ENDIAN. 8078 - The functions bigCreateGeneric, intCreateGeneric, drwCreateGeneric, 8079 setCreateGeneric and strCreateGeneric were introduced as create functions with 8080 a parameter and a result of type rtlGenerictype. 8081 - The function intDestrGeneric was introduced as destroy function with a 8082 parameter of type rtlGenerictype. 8083 8084 20100321: 8085 - Many thanks to "Mensanator" for his help to investigate the problems Seed7 8086 had on his 64-bit Mac OS computer. Many of the improvements towards support 8087 of 64-bit systems and Mac OS X result from his help (see below). Note that this 8088 release does not support 64-bit systems out of the box, but it certainly is a 8089 milestone to reach this goal. 8090 - The FAQ, how to compile the interpreter, was improved. 8091 - The file "read_me" was improved to explain compilation under Linux and to 8092 refer to "src/read_me.txt" for other operating systems. 8093 - An explanation how to compile under Mac OS X was added to "src/read_me.txt". 8094 - An explanation how to correct a make error and a linker error was added to 8095 "src/read_me.txt". 8096 - The compiler (comp.sd7) was improved to use the function "integerLiteral" and to 8097 produce C code with more casts and an improved helemlist type. 8098 - The prototype definitions for gkbKeyPressed, kbdKeyPressed, prgSysvar, 8099 refItftosct and typValue generated by "comp.sd7" were improved. 8100 - All usages of '8 * sizeof(bigdigittype)' as shift count in "big_rtl.c" were 8101 replaced by 'BIGDIGIT_SIZE'. 8102 - The makefiles and common.h were changed to make sure that int32type, uint32type, 8103 int64type and uint64type have the size implied by their name. 8104 - The files big_gmp.c, big_rtl.c, drw_x11.c, error.c, fatal.c, match.c, stat.c, 8105 str_rtl.c and traceutl.c were improved to use better formats in printf() calls. 8106 - Errors in bigToInt32 and bigToInt64 (file "big_rtl.c"), triggered by negative 8107 numbers when BIGDIGIT_SIZE is less than 32 and 64 respectively, were fixed. 8108 - The function cmdConfigValue in "cmd_rtl.c" was improved to make sure 8109 that the same types are used in the interpreter and in the compiler (by 8110 providing an interface to INT32TYPE, UINT32TYPE, INT64TYPE, UINT64TYPE, 8111 INT32TYPE_LITERAL_SUFFIX, INT64TYPE_LITERAL_SUFFIX and POINTER_SIZE). 8112 - The chkbig.sd7 program was improved with checks for the functions 'ord' and 8113 'bigInteger conv'. 8114 - The chkint.sd7 program was improved with checks for powers of 2 and with more 8115 checks for the functions 'str' and 'integer conv'. 8116 - The file "common.h" was improved to define several types and constants for 8117 integers of different sizes. 8118 - The system to define the (text) screen and keyboard driver was improved to 8119 work without the file "inf_conf.h". 8120 - The keyboard driver "kbd_inf.c" was improved to define the functions 8121 return_char_if_present(), consume_chars_present() (which both encapsulate calls 8122 of "tcsetattr") and key_table_init(). 8123 - A new keyboard driver "kbd_poll.c", which can be used when "tcsetattr" does not 8124 work correctly (e.g. under Mac OS X and Cygwin), was added. 8125 - The makefiles "mk_osx.mak" and "mk_cygw.mak" were improved to use "kbd_poll.c". 8126 - The interpreter option -v was improved to write the line numbers of all lines 8127 processed (changes in "option.h"). 8128 - Changes in "arrlib.c" were done to reduce the number of warnings generated by the 8129 C compiler. 8130 8131 20100307: 8132 - The functions in the gethttp.s7i library were improved to allow the specification 8133 of a port number as part of the location (e.g.: localhost:1080/index.htm). 8134 - The tarx.sd7 (tar archiving utility) example program was renamed to tar7.sd7 . 8135 - The codepage 8859_11 was added to the charsets.s7i library. 8136 - The bas7.sd7 (basic interpreter) example program was improved. 8137 - The toutf8.sd7 example program was improved to write an explanation and to 8138 support several IANA/MIME charset names. 8139 - An explanation what to do, when the path of the bcc32 C compiler contains a space, 8140 was added to 'src/read_me.txt'. 8141 - Documentation comments were added to the charsets.s7i library. 8142 8143 20100221: 8144 - The generation of '#line' directives in the compiler (comp.sd7) was improved. 8145 This allows better references to Seed7 source lines during debugging sessions. 8146 - The makefile mk_bccv5.mak was added to support compilation with version 5.5 of 8147 the bcc32 C compiler. 8148 - Several makefiles were changed to define LINKER_OPT_OUTPUT_FILE (the linker 8149 option which is used to specify the output file). 8150 - A description of the C source files in the Seed7 package was added to the file 8151 'src/read_me.txt'. 8152 - Several changes in the interpreter and the runtime library were done to reduce the 8153 number of warnings generated by the C compiler. 8154 8155 20100207: 8156 - The compiler (comp.sd7) was improved to support source level debugging with the 8157 option '-g' (comp.sd7 generates C programs with '#line' directives and the C 8158 compiler is called with a corresponding debugging option). 8159 - An explanation what happens when an exception is not caught, was added to the 8160 FAQ. 8161 - The chapter in the manual, which explains a stack trace, was improved. 8162 - The flag 'mayRaiseRangeError' was added to the "bigint.s7i" library to describe 8163 that 'ord(bigInteger)' may raise RANGE_ERROR. 8164 - The 'set of' type in "seed7_05.s7i" was improved to use 'HASHSET_OF' instead of 8165 'BITSET_OF' when 'mayRaiseRangeError' is defined for 'ord'. 8166 - The function 'getBits' was renamed to 'getBitsLe' in "gzip.s7i" ('Le' describes 8167 that the bits are read in little endian order). 8168 - A '=' operator was defined for 'HASHSET_OF' in "seed7_05.s7i". 8169 - The 'strifile' functions 'getwd' and 'getln' were added to "strifile.s7i". 8170 - The bas7.sd7 (basic interpreter) example program was improved. 8171 - The compiler was improved to create executables where the message about an 8172 uncaught exception uses the file and line of the raise statement. 8173 - Several improvements in the compiler were done to call special case functions 8174 for bigInteger operations. 8175 - The experimental compiler option -e was introduced to send a signal when an 8176 exception occurs. 8177 - The compiler was improved to write a message when it cannot remove the old 8178 executable. 8179 - Several makefiles and the function 'cmdConfigValue' in "cmd_rtl.c" were improved 8180 to define CC_OPT_DEBUG_INFO and LINKER_OPT_DEBUG_INFO and to rename 8181 INHIBIT_C_WARNINGS to CC_OPT_NO_WARNINGS. 8182 - The function 'bigZero', which initializes bigInteger variables with zero, was 8183 added to "big_rtl.c" and "big_gmp.c". 8184 - The function 'bigNe' was removed from "big_rtl.c" and "big_gmp.c" (compiler 8185 and interpreter were changed to use a negation of "bigEq" instead). 8186 - The function 'bigMultSignedDigit' was added to "big_rtl.c" and "big_gmp.c". 8187 - A call of 'mpz_init' was added to the function 'bigImport' in "big_gmp.c". 8188 - The 'normalize' function in "big_rtl.c" was improved to avoid resizing 8189 bigInteger values. 8190 - The interpreter was improved such that the appearance of a stack trace is more 8191 like the one produced by a debugger. 8192 8193 20100117: 8194 - The seed7_05.s7i library was improved to support union (|), intersection (&), 8195 difference (-) and symmetric difference (><) for sets implemented with hashes 8196 like 'set of string'. 8197 - The "tarx.sd7" example program was improved to create archives correctly, even 8198 when the file names are longer than 100 chars. 8199 - The bas7.sd7 (basic interpreter) example program was improved. 8200 8201 20100103: 8202 - The chapter explaining operating system access in the manual was improved. 8203 - The "tarx.sd7" example program was improved to uncompress files when the z option 8204 is used and to read file names with more than 100 chars correctly. 8205 - Several changes in the interpreter and the runtime library were done to reduce the 8206 number of warnings generated by the C compiler. 8207 8208 20091220: 8209 - The chapter explaining parameters in the tutorial of the manual was improved. 8210 - The chapter explaining priority and associativity in the manual was improved. 8211 - The function copy_file in "cmd_rtl.c" was improved to use mmap() only up to a 8212 maximum size and to use munmap() to delete the mapped area. 8213 - The function cmdRemove in "cmd_rtl.c" was improved to work correctly when 8214 remove() is not able to remove empty directories. 8215 - The function write_object in "error.c" was improved to write literals correctly. 8216 - The function cp_to_os_path in "striutl.c" was improved to forbid paths 8217 ending with slash except for the root path ("/") and a device root ("C:/"). 8218 8219 20091206: 8220 - The chapters explaining operating system access, primitive actions and exceptions 8221 in the manual were improved. 8222 - The codepages 708, 862, 864 and 874 were added to the charsets.s7i library. 8223 - The functions 'remove' and 'rename' were renamed to 'removeFile' and 'moveFile' 8224 in various files. 8225 - The functionality of 'removeFile' was changed such that removing a nonexisting file 8226 raises an exception. 8227 - The functionality of 'moveFile' was changed such that moving to an existing file 8228 raises an exception. 8229 - The compiler was improved to use the function floatLiteral to write occurrences 8230 of float literals to the generated C program. 8231 - The functions actStr, act_str, filLit, fltDgts, refCatStr, refStr, typStr and 8232 typ_str were changed to use cstri_to_stri() instead of cstri_expand(). 8233 - The compiler (comp.sd7) and the interpreter (hi) were improved to support the 8234 actions BST_LNG and BST_VALUE. 8235 - The toutf8.sd7 example program was improved to support more codepages. 8236 8237 20091115: 8238 - The Unicode support for the functions shell, cmd_sh and popen was improved to 8239 use wide char (UTF-16) functions under Windows and normal (UTF-8) functions under 8240 Unix/Linux/BSD. 8241 - The compiler (comp.sd7) was improved to support the actions CMD_FILEMODE, 8242 CMD_SET_FILEMODE, DRW_OPEN_SUB_WINDOW, DRW_SETPOS, DRW_XPOS and DRW_YPOS. 8243 - The compiler was improved to make sure that generated C programs always define 8244 the create_... and destr_... functions. 8245 - The handling of the HSH_IDX action in the compiler was improved. 8246 - An error in the compiler concerning forward declarations of function pointers was 8247 fixed. 8248 - The function bigCpy in "big_rtl.c" was improved to work correctly when source and 8249 destination are identical. 8250 - Comments were added to the functions bigGrow and bigShrink in "big_rtl.c" to explain 8251 that this functions work when source and destination are identical. 8252 - Checks for the bigInteger assignment and the functions +:= and -:= were added to 8253 the file "chkbig.sd7". 8254 - The types os_path_stri and os_path_char were renamed to os_stritype and os_chartype 8255 respectively in various files. 8256 - The os_path_... macros were renamed to corresponding os_stri_... macros in various 8257 files. 8258 - The bas7.sd7 (basic interpreter) example program was improved. 8259 - The functions gkbButtonPressed, drwOpen, drwOpenSubWindow, drwSetPos, drwHeight and 8260 drwWidth in "drw_win.c" were improved to work correctly for subwindows. 8261 - The function drwSetPos in "drw_x11.c" was improved to work correctly for subwindows. 8262 - The functions prc_args, prc_repeat and prc_while in "prclib.c" were improved. 8263 - The functions copyArgv and getArgv were added to "str_rtl.c". 8264 8265 20091101: 8266 - The interpreter (hi) and the compiler (comp.sd7) were improved such that the actions 8267 STR_CPY, STR_APPEND, ARR_CPY, ARR_APPEND and SET_CPY work correctly when source and 8268 destination are identical. 8269 - The compiler was improved to use the functions stringLiteral, bigIntegerLiteral and 8270 bitsetLiteral to write occurrences of string, bigInteger and bitset literals to 8271 the generated C program. 8272 - The functions arrHead, arrHeadTemp, arrRange, arrRangeTemp, arrTail and arrTailTemp 8273 in the file "arr_rtl.c" were added or improved to avoid unnecessary copies of arrays 8274 in compiled programs. 8275 - The functions free_helem, free_hash, create_helem, create_hash and copy_hash in the 8276 files "hshlib.c" and "hsh_rtl.c" were improved to increase the speed of the actions 8277 HSH_CPY and HSH_CREATE in interpreted and compiled programs. 8278 - The function chrCLit was added to the file "chr_rtl.c" to support the action CHR_CLIT 8279 in the interpreter and in the compiler. 8280 - The function chkPower in the file "chkbig.sd7" was improved. 8281 - The function check_assign was added to the file "chkset.sd7". 8282 - The functions check_string_append and check_string_assign in the file "chkstr.sd7" 8283 were added or improved. 8284 - Several improvements were done to avoid that old memory areas were accessed after 8285 realloc() was called. 8286 - The function bigLShiftOne was added to "big_rtl.c" and "big_gmp.c" to allow faster 8287 computation of powers of two in compiled and interpreted programs. 8288 - The functions bigIPowN, bigIPow1 and bigIPow in "big_rtl.c" were added or improved. 8289 - The function drwOpenSubWindow in "drw_x11.c" was changed to omit the creation of a 8290 graphic context. 8291 - The function filWrite in "fil_rtl.c" was improved. 8292 - The functions strAppend, strAppendTemp, strHead and strHeadTemp in "str_rtl.c" were 8293 added or improved. 8294 - A possible memory leak in 'while' and 'repeat' loops of compiled programs, which 8295 can occur when the conditional expression produces temporary values in the heap, 8296 was closed. 8297 - The handling of the action STR_APPEND in the compiler was improved to use strPush 8298 when possible. 8299 - The handling of bigInteger expressions with constants in the compiler was improved. 8300 - The compiler was improved to support the actions CHR_CLIT, CMD_FILETYPE_SL and 8301 CMD_SYMLINK. 8302 8303 20091018: 8304 - The compiler (comp.sd7) was improved to support the primitive actions CMD_GET_CTIME 8305 and TIM_FROM_TIMESTAMP. 8306 - The handling of the action ARR_ARRLIT in the compiler was improved to work without 8307 calling the function arrArrlit. 8308 - The handling of the action ARR_IDX in the compiler was improved to use the function 8309 arrIdxTemp when the array is a temporary value. 8310 - The handling of the action DRW_OPEN in the compiler was improved. 8311 - The interpreter (hi) and the compiler were improved to support the primitive actions 8312 STR_PUSH, TIM_SET_LOCAL_TZ, DRW_OPEN_SUB_WINDOW, DRW_SETPOS, DRW_XPOS and DRW_YPOS. 8313 - The bas7.sd7 (basic interpreter) example program was improved. 8314 - The functions drwPointerXpos, drwPointerYpos, drwHeight and drwWidth in the file 8315 drw_win.c were improved. 8316 - The function arrArrlit was removed and the function arrIdxTemp was added in the file 8317 arr_rtl.c . 8318 - Parameter names were added to the function prototypes of the header file str_rtl.h . 8319 - The functions closedir and wclosedir in dir_win.c were improved to call FindClose. 8320 8321 20091004: 8322 - The function isDigitString in the seed7_05.s7i library was improved. 8323 - The bas7.sd7 (basic interpreter) example program was improved. 8324 - The functions fltIPow and fltRand in the file flt_rtl.c were improved. 8325 8326 20090920: 8327 - A FAQ about extensible programming languages and the portability of Seed7 programs, 8328 was added. 8329 - The bas7.sd7 (basic interpreter) example program was improved. 8330 - The function gkbButtonPressed in the file drw_win.c was improved. 8331 8332 20090906: 8333 - Various syntax descriptions in the manual were improved. 8334 - The functions get_uint16_le, get_uint32_le, get_uint16_be and get_uint32_be in the 8335 binary.s7i library were added or improved. 8336 - The functions pointerXPos and pointerYPos were added to the graph.s7i library. 8337 - The function buttonPressed was added to the keybd.s7i library. 8338 - A default 'value' was added to the 'set of' types in the seed7_05.s7i library. 8339 - The types filePermission and fileMode and the functions fileMode and setFileMode 8340 were added to the seed7_05.s7i library. 8341 - The carddemo.sd7 example program was improved to demonstrate taking and moving 8342 a card with the mouse. 8343 - Set membership tests were added to the chkset.sd7 program. 8344 - The comanche.sd7 webserver was improved to use a "Content-Type" of "text/html" for 8345 all files with extension ".htm" or ".html". 8346 - The comanche.sd7 webserver was changed to catch the exception FILE_ERROR (which 8347 is raised when a browser aborts a connection). 8348 - The compiler (comp.sd7) was improved to do some optimizations for set membership 8349 tests. 8350 - Some spelling corrections were done in the startrek.sd7 example program. 8351 - The tarx.sd7 example program was improved to read and write file modes. 8352 - Several changes in the interpreter and the runtime library were done to reduce the 8353 number of warnings generated by the C compiler. 8354 - The functions arrAppend, arrCat and arrExtend in "arr_rtl.c" were improved to contain 8355 checks for MEMORY_ERROR when the maximum index is not representable as integer. 8356 - The function copy_any_file in "cmd_rtl.c" was improved to change the 8357 ownership of a file after the timestamps and the file mode have been changed. 8358 - The functions cmdFileMode and cmdSetFileMode were added to "cmd_rtl.c". 8359 - The functions gkbButtonPressed, drwPointerXpos and drwPointerYpos were added to the 8360 files "drw_x11.c" and "drw_win.c". 8361 - The interpreter (hi) and the compiler (comp.sd7) were improved to support the primitive 8362 actions CMD_FILEMODE, CMD_SET_FILEMODE, DRW_POINTER_XPOS, DRW_POINTER_YPOS and 8363 GKB_BUTTON_PRESSED. 8364 - The function alternate_utime was improved to correct buggy behaviour of bcc32 8365 (Bcc32 sets the modification time of a file on a FAT filesystem wrong). 8366 8367 20090816: 8368 - The chapters explaining external files, the KEYBOARD file, files with line structure 8369 and sockets in the manual were added or improved. 8370 - The function timestamp1970ToTime was added to the 'time.s7i' library. 8371 - The tarx.sd7 example program was improved. 8372 - Documentation comments in the libraries rational.s7i, bigrat.s7i, keybd.s7i, 8373 socket.s7i and time.s7i were improved. 8374 - The function alternate_utime was introduced to allow changing the access and 8375 modification times of directories under Windows. 8376 - The makefiles mk_bcc32.mak, mk_mingw.mak, mk_msvc.mak, mk_msys.mak and mk_nmake.mak 8377 were improved to support alternate_utime. 8378 - The type 'screen_keybd_file' was renamed to 'console_keybd_file' and the keyboard file 8379 'SCREEN_KEYBOARD' was renamed to 'CONSOLE_KEYBOARD' in the file 'keybd.s7i'. 8380 8381 20090802: 8382 - The FAQ about static type checking was improved. 8383 - The chapters explaining the for-each statement and the types integer, hash and set in 8384 the manual were improved. 8385 - The chapters explaining the file types external_file, utf8_file, keyboard_file and 8386 socket in the manual were added or improved. 8387 - The chapters explaining file scanning and the function argv(PROGRAM) were improved. 8388 - Documentation comments were added to the functions flush, writeln, eof, hasNext, 8389 length, listen and accept in socket.s7i . 8390 - The functions gets(utf16le_file, integer) and gets(utf16be_file, integer) in the 8391 utf16.s7i library were improved. 8392 8393 20090719: 8394 - The charsets.s7i library was improved to support the character sets armscii_8, geostd8, 8395 ns_4551_1, utf-16be, utf-16le and utf-7. 8396 - The functions utf16beToStri, utf16leToStri, removeUtf16SurrogatePairs and utf7ToStri 8397 were added to the charsets.s7i library. 8398 - The functions getWord, getNonDigits and getQuotedText were added to the scanfile.s7i 8399 library. 8400 - The functions skipLine and getLine were added to the scanstri.s7i library. 8401 - Several changes in the interpreter and the runtime library were done to reduce the 8402 number of warnings generated by the C compiler. 8403 - The file src/read_me.txt was improved to explain C compiler warnings because of unused 8404 parameter 'arguments'. 8405 8406 20090705: 8407 - The chapter explaining the function 'getenv' in the manual was improved. 8408 - The dom.s7i library was renamed to xmldom.s7i and its functionality was improved. 8409 - A new library named inifile.s7i, which allows reading key value pairs from an INI file, 8410 was added. 8411 - The functions getLineComment, getLine, skipXmlComment, getXmlTagHeadOrContent 8412 skipXmlTag, getNextXmlAttribute and getNextHtmlAttribute in scanfile.s7i were added 8413 or improved. 8414 - The functions getSymbol, skipXmlComment, getXmlTagHeadOrContent skipXmlTag, 8415 getNextXmlAttribute and getNextHtmlAttribute in scanstri.s7i were added or improved. 8416 - The function isDigitString was added to the seed7_05.s7i library. 8417 - The functions open_utf16le and open_utf16be in the utf16.s7i library were improved. 8418 - A new library named xml_ent.s7i, which supports XML entity handling, was added. 8419 - The compiler comp.sd7 was improved to create more prototype definitions of extern 8420 library functions. 8421 - The interpreter (hi) and the compiler (comp.sd7) were improved to accept an UTF-8 8422 byte order mark at the beginning of a source or include/library file. 8423 - The types gmpBiginttype and rtlBiginttype in the files big_gmp.c and big_rtl.c were 8424 replaced with biginttype (defined in common.h). 8425 - The function bigLowestSetBit in big_rtl.c was improved to raise RANGE_ERROR when 8426 the result does not fit in an integer. 8427 - The function move_any_file in cmd_rtl.c was improved to raise FILE_ERROR when the 8428 file cannot be renamed. 8429 - The function hsh_idx in hshlib.c was improved to work correctly when the hash is 8430 destroyed after indexing. 8431 - The const qualifier was added in many *.c and *.h files. 8432 - Several makefiles were changed to use BIGINT_LIB_DEFINE and BIGINT_LIB to decide about 8433 the big integer library (big_rtl.c or big_gmp.c). 8434 8435 20090621: 8436 - The chapters explaining set types and primitive actions in the manual were improved. 8437 - The codepages 720, 1125, 1255, 1256, 1258, 8859_6 and 8859_8 were added to the 8438 charsets.s7i library. 8439 - A new library named dom.s7i, which contains a simple dom parser, was added. 8440 - Several changes in the interpreter and the runtime library were done to reduce the 8441 number of warnings generated by the C compiler. 8442 - The makefile mk_cygw.mak was improved to better support compilation with Cygwin. 8443 - The file src/read_me.txt was improved to explain compiling under Windows with Cygwin. 8444 - The function 'exit' was introduced to terminate a program with a return code. 8445 - The functions setIsSubset and setIsProperSubset were introduced in set_rtl.c and used 8446 in setlib.c and comp.sd7 to replace the functions setGe, setLe, setGt and setLt. 8447 - The functions setCmp, setEq, setIsSubset and setIsProperSubset in set_rtl.c were 8448 improved to avoid accessing memory beyond the set data structure. 8449 - The function setDiff in set_rtl.c was improved. 8450 - The chkset.sd7 program was improved with additional checks for the 'compare' function 8451 and the set relations. 8452 - The chk_all.sd7 check program was improved to take the changes in chkset.sd7 into 8453 account. 8454 - The compiler comp.sd7 was improved to support the compilation of the primitive action 8455 SET_CMP. 8456 - The compiler comp.sd7 was improved to compile programs with sets as parameters in 8457 user defined functions also correctly with the bcc32 C compiler. 8458 8459 20090607: 8460 - The chkint.sd7 program was improved with additional checks for the binomial coefficient 8461 (for values of k greater than n and for negative values of n) and 'bitLength'. 8462 - The chkstr.sd7 program was improved with additional checks for string subranges 8463 ([ A .. B ] and [ A len B ]). 8464 - An error concerning array subranges was fixed in the function arr_range (arrlib.c). 8465 - Several changes in the interpreter and the runtime library were done to reduce the 8466 number of warnings generated by the C compiler. 8467 - Occurrences of 'float' in the compiler (comp.sd7) were replaced with 'floattype'. 8468 - Functions to compute the most and least significant bit of unsigned integers with 8469 a width of 8, 16, 32 and 64 bits were added to the file int_rtl.c. 8470 - The new functions ***MostSignificantBit and ***LeastSignificantBit were used in the 8471 following functions: intBitLength, intLog2, bigBitLength, bigDiv, bigLog2, 8472 bigLowestSetBit, bigMDiv, bigMod, bigRand, bigRem, setCmp, setMax, setMin and setRand. 8473 8474 20090524: 8475 - Prevention against a Mac OS X malloc() error was added to the function filGets 8476 (in fil_rtl.c). When malloc() is not able to allocate memory it should return NULL. 8477 The Mac OS X malloc() function additionally writes a message to stderr. This 8478 behaviour is not according to K&R C, ANSI C, POSIX or SUS. Thanks to 8479 John B. Matthews and Frank Goenninger for their help. 8480 - The FAQ and the file src/read_me.txt were improved to explain what happens when 8481 someone forgot to run 'make depend' before running 'make'. 8482 - The compiler (comp.sd7) was improved to generate better C code to copy arrays and 8483 hashes. Now the C code is accepted by gcc again and therefore panic.sd7 can again 8484 be compiled under Linux. 8485 - Several changes in the interpreter and the runtime library were done to reduce the 8486 number of warnings generated by the C compiler. 8487 - A new library named binary.s7i, which contains functions to read binary data from 8488 a string or file, was added. 8489 - A new library named zip.s7i, which contains a zip uncompression function, was added. 8490 - The type 'SIZE_TYPE' was replaced by 'size_t' in various *.c and *.h files. 8491 8492 20090510: 8493 - A new example program, the Comanche webserver (comanche.sd7), was added. 8494 - The function getNonDigits was added to the scanstri.s7i library. 8495 - Experimental support for new attribute parameters was added. 8496 - Memory leaks in the functions hsh_excl (hshlib.c) and hshExcl (hsh_rtl.c) were fixed. 8497 8498 20090426: 8499 - The function 'inflate' was added to the gzip.s7i library. 8500 - The function getNextHtmlAttribute was added to the scanfile.s7i library. 8501 - The functions getNextXmlAttribute and getNextHtmlAttribute were added to the 8502 scanstri.s7i library. 8503 - A sokoban puzzle game example program (sokoban.sd7) was added. 8504 - A new library sokoban1.s7i, which contains the 90 classic sokoban levels, was added. 8505 - Parameter names were added to the function prototypes of the header files actutl.h, 8506 analyze.h, error.h and findid.h . 8507 - The function cp_to_wpath was changed to raise RANGE_ERROR when a path contains a 8508 backslash. 8509 8510 20090413: 8511 - A description of data struct elements was added to the chapters rational, bigRational, 8512 complex, color and time in the manual. 8513 - A description of the functions fileTypeSL, getATime, getCTime, getMTime, setATime, 8514 setMTime and removeAnyFile was added to the chapter 'OS access' in the manual. 8515 - The compiler (comp.sd7) was improved to correctly handle hashtables as elements of 8516 structs. 8517 - The compiler (comp.sd7) was improved to generate dispatcher functions which copy a 8518 reference to a value when the interface needs the value itself (the value is used and 8519 possibly freed afterwards by the caller). 8520 - The functions getXmlTagHeadOrContent in the scanfile.s7i and scanstri.s7i libraries were 8521 improved to correctly read the head of empty element tags when they have no attributes 8522 (E.g: The tag head of "<aTag/>" is "<aTag" ). 8523 - The functions getXmlCharacterReference and skipXmlTag were added to the scanfile.s7i 8524 library. 8525 - The ENABLE_SORT template function, which allows the generation of a sort function, was 8526 added to the seed7_05.s7i library. 8527 - The functions fileTypeSL, cloneFile and copyFile were added to the seed7_05.s7i library. 8528 - The functions str_dd_mm_yyyy, str_hh_mm, timestamp1970, time and getCTime were added to 8529 the time.s7i library. 8530 - The function alternate_localtime_r in the file tim_win.c was improved to correctly 8531 handle daylight saving time. 8532 - The tarx.sd7 example program was improved to use the function timestamp1970. 8533 8534 20090329: 8535 - The chapters explaining exponentiation and operating system functions in the manual 8536 were improved. 8537 - The function getSymbolInXmlTag in scanfile.s7i was fixed to really return "" when EOF 8538 was reached. 8539 - A documentation comment was added to the function getNextXmlAttribute in scanfile.s7i 8540 and the function was improved to correctly handle tags ending with > and /> . 8541 - The functions cmd_sh and popen were moved from progs.s7i and seed7_05.s7i to the new 8542 library shell.s7i . 8543 - The function 'shell' was introduced execute shell commands and to return the exit 8544 code of the shell. 8545 - The chkbig.sd7 program was improved to contain checks for the exponentiation of -1. 8546 - The chkexc.sd7 program was improved to contain more checks for exceptions raised by 8547 integer exponentiation. 8548 - The compiler (comp.sd7) was improved to generate better code for some bigInteger 8549 operations and to support the actions cmd_readlink and cmd_remove_any_file. 8550 - Parameter names were added to the function prototypes of the header file big_drv.h . 8551 - The functions bigSuccTemp and bigPredTemp were added to the files big_rtl.c and 8552 big_gmp.c . 8553 - A documentation comment was added to the function cp_to_command in the file striutl.c . 8554 8555 20090309: 8556 - The chapters about boolean, complex, char, string and time in the manual were improved. 8557 - A new library named utf16.s7i, which contains support to read and write UTF-16 files, 8558 was added. 8559 - The functions removeAnyFile, readlink and symlink were added to the seed7_05.s7i 8560 library. 8561 - The seed7_05.s7i function fileType was improved to return the values FILE_ABSENT, 8562 FILE_UNKNOWN, FILE_REGULAR, FILE_DIR, FILE_CHAR, FILE_BLOCK, FILE_FIFO, FILE_SYMLINK 8563 and FILE_SOCKET. 8564 - The functions strTimeZone, getATime, setATime, getMTime and setMTime were added to the 8565 time.s7i library. 8566 - The time.s7i functions str_date, str_time and toGMT were renamed to strDate, strTime 8567 and getUTC respectively. 8568 - The time.s7i function 'str' for the type 'time' was improved to include also a time 8569 zone description. 8570 - The K&R function headers in several files were corrected. 8571 - The files tim_rtl.c and tim_rtl.h were introduced to support conversion between 'time' 8572 and Unix timestamps with the functions mkutc, timFromTimestamp and timToTimestamp. 8573 - The driver functions timAwait and timNow were improved in the files tim_dos.c, 8574 tim_unx.c and tim_win.c . 8575 - The functions remove_dir, remove_any_file, copy_dir, copy_any_file, cmdBigFileSize, 8576 cmdFileType, cmdGetcwd and cmdSymlink in the file cmd_rtl.c were improved. 8577 - The functions cmdGetATime, cmdGetMTime, cmdReadlink, cmdRemoveAnyFile, cmdSetATime 8578 and cmdSetMTime were added to the file cmd_rtl.c . 8579 - The feature test macro WCHAR_OS_PATH was renamed to OS_PATH_WCHAR in several files. 8580 - Several makefiles were improved to create defines for HAS_SYMLINKS, USE_LOCALTIME_R, 8581 INT64TYPE_SUFFIX_LL, OS_PATH_UTF8, OS_PATH_WCHAR, os_getcwd, os_opendir, os_readdir, 8582 os_closedir, os_DIR, os_dirent_struct and os_lstat in the file version.h . 8583 - The interpreter and the compiler (comp.sd7) were improved to support the new 8584 primitive actions CMD_GET_ATIME, CMD_GET_MTIME, CMD_READLINK, CMD_REMOVE_ANY_FILE, 8585 CMD_SET_ATIME and CMD_SET_MTIME. 8586 - An explanation of the defines OS_PATH_WCHAR, OS_PATH_UTF8, os_getcwd, os_opendir, 8587 os_readdir, os_closedir, os_DIR, os_dirent_struct and os_lstat was added to the file 8588 'src/read_me.txt'. 8589 - The function alternate_localtime_r was introduced to be used with bcc32 (which has 8590 strange ideas about when daylight saving time begins). 8591 - The files bas7.sd7 and planets.sd7 were adjusted to use the improved time functions. 8592 - Spelling errors in the FAQ and in src/read_me.txt were fixed. 8593 8594 20090222: 8595 - A new example program (chkhsh.sd7), which checks hash table operations, was added. 8596 - The logic to link to libraries in the compiler (comp.sd7) was improved. 8597 - A compare function was added for the type 'boolean'. 8598 - The file big_rtl.c was improved to avoid unnecessary shifts wider than the size of 8599 the type (the result of this shifts was not used anyway). 8600 - The functions remove_dir, remove_any_file, copy_file, copy_dir, copy_any_file and 8601 move_any_file in the file cmd_rtl.c were improved to use 'os_path_stri' instead of 8602 'char *'. 8603 - The driver functions cmdCopy, cmdMove and cmdRemove were improved to use wide char 8604 (UTF-16) functions under Windows and normal (UTF-8) functions under Unix/Linux/BSD. 8605 - The file common.h was improved to contain default defines for os_rmdir, os_chown, 8606 os_chmod, os_utime, os_utimbuf_struct, os_remove and os_rename. 8607 - The functions dirOpen, dirRead and dirClose in the file dir_rtl.c were improved 8608 to use os_opendir, os_readdir and os_closedir (defined in dir_rtl.h). 8609 - Commands to create defines for MKDIR_WITH_ONE_PARAMETER, CHOWN_MISSING and 8610 CHMOD_MISSING in the file version.h were removed from the makefiles. 8611 - The K&R function headers in several files were corrected. 8612 - An explanation of the defines WCHAR_OS_PATH, os_chdir, os_mkdir, os_rmdir, os_fstat, 8613 os_stat, os_stat_struct, os_chown, os_chmod, os_utime, os_utimbuf_struct, os_remove 8614 and os_rename was added to the file 'src/read_me.txt'. 8615 8616 20090201: 8617 - A new saving phase was added to the savehd7.sd7 example program. Savehd7 can be used 8618 to save a potentially damaged harddisk partition to an image file. 8619 - A new chapter about class methods was added to the manual. 8620 - The chapter about the type 'type' in the manual, was improved. 8621 - A check for NULL pointers was added to the function raise_with_arguments. 8622 8623 20090118: 8624 - The savehd7.sd7 example program, which can be used to save a potentially damaged 8625 harddisk partition to an image file, was improved. 8626 - A FAQ about compiling the Seed7 interpreter was added. 8627 - The function bigFileSize was added to the bigfile.s7i library. 8628 - The functions file_size and file_type were renamed to fileSize and fileType in the 8629 seed7_05.s7i library. 8630 - The driver functions cmdBigFileSize, cmdChdir, cmdFileType cmdFileSize, cmdMkdir were 8631 improved to use wide char (UTF-16) functions under Windows and normal (UTF-8) functions 8632 under Unix/Linux/BSD. 8633 - In the files big_rtl.c and big_gmp.c the function bigFromInt32 was added and the 8634 functions bigIConv and bigOrd were removed. 8635 - In the file big_drv.h the macros bigIConv and bigOrd were added. 8636 - In the file big_rtl.c the functions bigFromUInt32 and bigFromUInt64 were fixed. 8637 - The feature test macro WIDE_CHAR_STRINGS was renamed to UTF32_STRINGS in various files. 8638 - The primitive action CMD_LNG was renamed to CMD_FILESIZE. 8639 - Several makefiles were improved to create defines for os_chdir, os_mkdir, os_fstat, 8640 os_stat and os_stat_struct in the file version.h . 8641 8642 20090104: 8643 - A new example program (savehd7.sd7), which can be used to save a partially damaged 8644 harddisk partition to an image file, was added. 8645 - Several spelling errors in the FAQ and in the manual were fixed. 8646 - The library line.s7i was improved to be useable as file which flushes every line. 8647 - The bas7.sd7 (basic interpreter) example program was improved. 8648 - The preprocessor macros HAS_INT64TYPE and INT64TYPE_IS_INT64 were replaced 8649 by INT64TYPE in various files. 8650 - The makefiles were improved to create defines for INT64TYPE and UINT64TYPE in the 8651 file version.h . 8652 - A makefile mk_osx.mak was added to support compilation under Mac OS X with Xcode. 8653 - The type PRIMITIVE_FILE was improved to support the 'setbuf' function. 8654 - Errors in the functions setIConv, prot_set and bigToInt64 were fixed. 8655 8656 20081221: 8657 - The chapter about the Seed7 structured syntax definition in the manual was improved 8658 (thanks to James Harris for the suggestions and the proofreading). 8659 - A new library named gethttp.s7i, which contains support to get data with the 8660 HTTP protocol, was added. 8661 - A new library named html.s7i, which contains support functions for HTML, was added. 8662 - The bas7.sd7 (basic interpreter) example program was improved. 8663 - The compiler (comp.sd7) was improved to support the addresses of ITF_CPY and 8664 ITF_CREATE. That way hash tables with interface values are supported. 8665 8666 20081208: 8667 - A new chapter about the Seed7 structured syntax definition was added to the manual. 8668 - The chapter about declarations in the manual was improved. 8669 - The function getValueOfHeaderAttribute was added to the scanstri.s7i library. 8670 - The seed7_05.s7i library was improved to support case statements for the type boolean. 8671 - The wiz.sd7 example program was improved. 8672 8673 20081116: 8674 - The support for compilation with the bcc32 C compiler from BDS was improved such that 8675 the chk_all.sd7 check program succeeds. 8676 - The FAQ about the operating systems supported by Seed7, was improved. 8677 - A chapter describing how to replace pointers with interface types was added to the 8678 manual. 8679 - The obsolete use of the operator >> and << for file input and output was removed 8680 from the seed7_05.s7i library. 8681 - The general check program chk_all.sd7 was improved to check also for the successful 8682 compilation of the compiler. 8683 - The compiler (comp.sd7) was improved to generate C programs which are acceptable for 8684 the bcc32 C compiler. 8685 - The compiler was improved to check that a temporary tmp_*.c file is marked with a 8686 temp_marker. 8687 - The documentation file src/read_me.txt was improved to explain the #define value 8688 CHECK_INT_DIV_BY_ZERO. 8689 8690 20081102: 8691 - A new gzip.s7i library, which contains a gzip uncompression function, was added. 8692 - The functions getXmlTagHeadOrContent, getSymbolInXmlTag, getHtmlAttributeValue and 8693 getNextXmlAttribute were added to the scanfile.s7i library. 8694 - In the library scanstri.s7i the function getXmlTagHeadOrContent was added and the 8695 function getSymbolInHtmlTag was renamed to getSymbolInXmlTag. 8696 - The call stack written by the (hi) interpreter, when an uncaught exception occurs, was 8697 improved. 8698 - The compiler (comp.sd7) was improved to write a file name and a line when an uncaught 8699 exception occurs. 8700 - The handling of sockets in the compiler was improved to support them also for the 8701 cl C compiler from msvc. 8702 - The makefiles were improved to define 'make clean' additionally to 'make clear' to 8703 remove the object files and libraries which were created during the compilation process. 8704 - The documentation file src/read_me.txt was improved to explain more #define values used 8705 in the file version.h . 8706 8707 20081019: 8708 - The support for compilation with the cl C compiler from msvc was improved such that 8709 the chk_all.sd7 check program succeeds. 8710 - The chkexc.sd7 and chkflt.sd7 example programs were improved to check for more cases 8711 of division by zero. 8712 - The compiler (comp.sd7) was improved to take the config values ISNAN_WITH_UNDERLINE, 8713 CHECK_INT_DIV_BY_ZERO and LINKER_FLAGS into account. 8714 - The compiler was improved to avoid boolean expressions with too much parenthesis levels. 8715 - The functions opendir and readdir in the files dir_dos.c and dir_win.c were improved to 8716 make buffer overflows impossible. 8717 - The files dir_rtl.c and dir_rtl.h were introduced to support reading directories based 8718 on opendir(), readdir() and closedir() and optionally on the wide char functions 8719 wopendir(), wreaddir() and wclosedir(). 8720 - An implementation of the functions wopendir(), wreaddir() and wclosedir() based on 8721 the functions FindFirstFile() and FindNextFile() was added to dir_win.c . 8722 - The documentation file src/read_me.txt was improved to explain compilation with bcc32. 8723 - The makefiles mk_mingw.mak, mk_msys.mak, mk_nmake.mak, mk_msvc.mak and mk_bcc32.mak 8724 were improved to support the new wide character directory read functions. 8725 - The demo mode of the mahjong.sd7 example program was improved. 8726 - The file scr_win.c was improved to support the keypad cursor keys better. 8727 - The functions wstri_expand and wstri_to_stri were added to the file striutl.c . 8728 8729 20081005: 8730 - The chapter about primitive actions in the manual was improved. 8731 - The definition of STD_NULL in the seed7_05.s7i library was improved to support 8732 read and write operations with STD_NULL. 8733 - The bas7.sd7 (basic interpreter) example program was improved to support file numbers 8734 outside the range of 1 to 256 and to convert arrays to images when necessary. 8735 - The compiler (comp.sd7) was improved to support local interface declarations and 8736 dynamic functions which refer to constant values. 8737 - Several improvements were done in the compiler to support generating C programs 8738 acceptable for the cl compiler from msvc and for the bcc32 compiler. 8739 - A check for double function pointers was added to the function get_primact() in the 8740 file actutl.c . 8741 - A boss mode was added to the lander.sd7 and sudoku7.sd7 example programs. 8742 - The file common.h was improved to introduce the types int64type, uint64type, 8743 int32type, uint32type, int16type, uint16type, int8type and uint8type. 8744 - The functions bigULConv and bigLOrd were renamed to bigFromUInt64 and bigToInt64 8745 respectively. 8746 - The function bigCLit() was improved to avoid C code that the cl C compiler from msvc 8747 miscompiles to the wrong machine code. 8748 - The functions setupFloat and _matherr and the makefile mk_bcc32.mak were added 8749 to support compilation with bcc32. 8750 - The feature test macro HAS_LONGTYPE_64 was renamed to HAS_INT64TYPE in various files. 8751 - The feature macros INHIBIT_C_WARNINGS and NO_EMPTY_STRUCTS were added or improved. 8752 - The makefiles mk_mingw.mak, mk_msvc.mak and mk_nmake.mak were changed to create and 8753 use the file setpaths.c instead of several other files. 8754 8755 20080921: 8756 - The chapters about object orientation and primitive actions in the manual, 8757 were improved. 8758 - The primitive actions BIG_MCPY, FLT_HSIN, FLT_HCOS and FLT_HTAN were renamed to 8759 BIG_MULT_ASSIGN, FLT_SINH, FLT_COSH and FLT_TANH respectively. 8760 - The bas7.sd7 (basic interpreter) example program was improved. 8761 - The compiler (comp.sd7) was improved to support the primitive actions CHR_CONV, 8762 FLT_PLUS, PRG_MATCH_EXPR, REF_CAT_PARSE, REF_CONV and REF_SETVAR. 8763 - The compiler (comp.sd7) was improved to support HASHOBJECT constants. 8764 - A binary gcd function (binaryGcd) was added to the gcd.sd7 example program. 8765 - The X11 keyboard driver was improved to support the num-lock functionality. 8766 - The functions hash_data_to_list and hash_key_to_list were added to the file listutl.c 8767 - The is_var function defined in progs.s7i library was renamed to isVar. 8768 - The functions matchExpr, setVar, hash_data_to_list and hash_key_to_list were added 8769 to the progs.s7i library. 8770 8771 20080902: 8772 - The FAQ about development speed and type checking was improved. 8773 - The chapters about boolean, bigInteger, rational, bigRational, float, char, complex, 8774 string, reference, ref_list and program in the manual, were improved. 8775 - The functions rflTail and rflRange were improved to raise MEMORY_ERROR instead of 8776 RANGE_ERROR in out of memory situations. 8777 - The 'conv' operator was improved to convert an integer to a float, rational, complex 8778 or bigRational, to convert a float to a complex and to convert a bigInteger to 8779 bigRational. 8780 - The function getSymbolWithHtmlEntities was added to the scanfile.s7i library. 8781 - The getc function for the type null_file was improved. 8782 - The 'conj' operator was added for the type complex. 8783 - The compiler (comp.sd7) was improved to support the primitive action FLT_ICONV. 8784 - Several changes were done to support compilation when DO_HEAP_STATISTIC is defined. 8785 - The documentation file src/read_me.txt was improved. 8786 - The 'reference' functions category, getType, is_var, local_vars, local_consts, body, 8787 array_to_list, array_min_index, array_min_index, struct_to_list, interface_to_struct, 8788 getValue, setCategory, setType were improved to raise the exception RANGE_ERROR 8789 when a reference is NIL or does not have the required category. 8790 8791 20080817: 8792 - The FAQ about static type checking was improved and an FAQ about development speed 8793 and type checking was added. 8794 - A chapter about the type 'category' was added to the manual. 8795 - The chapters about boolean, string, set and reference in the manual, were improved. 8796 - The functions toUuencoded and fromUuencoded were added to the encoding.s7i library. 8797 - The html entity 'ang' and several comments were added to the html_ent.s7i library. 8798 - The error management of the chkint.sd7 program was improved. 8799 - The 'configValue' function was improved to support values for TWOS_COMPLEMENT_INTTYPE, 8800 INTTYPE_64BIT and INTTYPE_LITERAL_SUFFIX. 8801 - The function growStri was improved to work correctly in out of memory situations. 8802 - The makefiles makefile, mk_cygw.mak, mk_linux.mak, mk_mingw.mak, mk_msvc.mak, 8803 mk_msys.mak and mk_nmake.mak were improved to define TWOS_COMPLEMENT_INTTYPE when 8804 appropriate. 8805 - The file setlib.c was improved to work correctly with bitsettype's of different sizes. 8806 8807 20080803: 8808 - The charsets.s7i library was renamed to chartype.s7i . 8809 - A new charsets.s7i library, which contains 44 codepages and the functions conv2unicode 8810 and conv2unicodeByName, was added. 8811 - The encoding.s7i library, which contains encoding and decoding functions for Base64 8812 and Quoted-printable, was added. 8813 - The functions 'ord' and 'conv' and a 'for' loop were added to the type 'category' 8814 defined in the progs.s7i library. 8815 - The functions getWord, getQuotedText and getHttpSymbol were added to the scanstri.s7i 8816 library. 8817 - The functions getSymbolOrComment, getSymbol and getSymbolInHtmlTag of the scanstri.s7i 8818 library were improved to return symbols without leading whitespace. 8819 - The function getHtmlTagOrContent was renamed to getXmlTagOrContent in the scanfile.s7i 8820 library. 8821 - A 'for key' loop for arrays, a 'for' loop for HASHSETs, a 'str' function to convert 8822 integers to strings with base, a 'lpad0' operator for strings and the functions 8823 striToUtf8, utf8ToStri and toInt were added to the seed7_05.s7i library. 8824 - The files cgi.s7i and bas7.sd7 were improved to use the new toInt function. 8825 - The interpreter and the compiler (comp.sd7) were improved to support the new 8826 primitive actions INT_STR_BASED, STR_LPAD0, STR_TOUTF8 and STR_UTF8TOSTRI. 8827 - The compiler (comp.sd7) was improved to generate better code for the primitive actions 8828 ARR_IDX, STR_ELEMCPY and STR_IDX. 8829 - The toutf8.sd7 example program was modified to use the new charsets.s7i library. 8830 - The files heaputl.c, heaputl.h, str_rtl.c and strlib.c were improved to use strings 8831 with capacity for the primitive actions STR_APPEND, STR_CAT and STR_HEAD. 8832 - The makefiles were changed to use the$(CFLAGS) always when $(CC) is invoked. 8833 - The socClose function in the file soc_rtl.c was improved to call close() or 8834 closesocket() depending on the operation system. 8835 - The functions socGetc, socLineRead and socWordRead of the file soc_rtl.c were improved 8836 to interpret characters >= '\128\' as unsigned. 8837 8838 20080720: 8839 - The FAQs about reserved words and templates were improved. 8840 - The chapters about boolean, integer, bigInteger, rational, float, complex, char 8841 and array in the manual, were improved. 8842 - A subrange type was added for the types integer, char and the enumeration types. 8843 - The makefiles were improved to set the USE_SIGSETJMP macro in the version.h file. 8844 - The flag USE_SIGSETJMP is now taken into account in the floating point exception 8845 handling generated by the compiler. 8846 - Support for the action ENU_CONV was added to the (hi) interpreter and the compiler. 8847 - A subrange type is used now in the dnafight.sd7 example program. 8848 - The function update_owner in the file match.c was improved to copy values instead 8849 of just referring to them. 8850 - The function getSymbolInHtmlTag was added to the scanstri.s7i library. 8851 - The interpreter and the compiler (comp.sd7) were improved to support the function 8852 /:= for the types float and complex. 8853 - The file seed7/prg/files was replaced with seed7/prg/files.txt which contains 8854 also a list of include files. 8855 - The function strUtf8ToStri was added to the file str_rtl.c . 8856 8857 20080707: 8858 - Various FAQs about reserved words, user defined statements, static type checking, 8859 garbage collection, container classes, primitive types and the difference between 8860 object and primitive types were added or improved. 8861 - The chapters about boolean, integer, bigInteger, rational, bigRational, float, 8862 complex, char, string and program in the manual, were added or improved. 8863 - A contour was added to a building in the lander.sd7 example program. 8864 - Some debugging output was removed from the mahjong.sd7 example program. 8865 - The function analyze and analyze_stri were renamed to parseFile and parseStri 8866 respectively in the files progs.s7i, calc.sd7, comp.sd7 . 8867 - The primitive actions PRG_ANALYZE and PRG_STR_ANALYZE were renamed to PRG_FIL_PARSE 8868 and PRG_STR_PARSE respectively. 8869 - The functions prgAnalyze and prgStrAnalyze were renamed to prgFilParse and prgStrParse 8870 respectively. 8871 8872 20080622: 8873 - A new example program (cellauto.sd7), which simulates cellular automata, was added. 8874 - Test cases for the @:= statement were added to the chkstr.sd7 program. 8875 - The compiler (comp.sd7) was improved such that the generated code raises MEMORY_ERROR 8876 when the 'malloc' function fails. 8877 - Support for the actions SET_ICONV and SET_SCONV was added to the (hi) interpreter 8878 and the compiler. 8879 - The compiler was improved to optionally generate code without range checks for the 8880 STR_ELEMCPY action. 8881 - The handling of functions returning references to existing objects in the compiler 8882 was improved. 8883 - Parameter names were added to the function prototypes of the header files bln_rtl.h, 8884 chr_rtl.h, cmd_rtl.h, flt_rtl.h and ut8_rtl.h. 8885 - The compile time flag RSHIFT_DOES_SIGN_EXTEND is now taken into account for the 8886 right shift in the macro 'bitset_pos' defined in the file set_rtl.h. 8887 8888 20080608: 8889 - The chapter about symbol scanning from a file in the manual, was improved. 8890 - A new include file (cgi.s7i) to support the Common Gateway Interface, was added. 8891 - A bug in the getLine function of the scanfile.s7i library was fixed. 8892 - The functions fileExists was added to the seed7_05.s7i library. 8893 - The handling of closures in the compiler (comp.sd7) was improved. 8894 - A new example program (lander.sd7), which simulates a lunar landing, was added. 8895 8896 20080525: 8897 - A new chapter about complex numbers was added to the manual. 8898 - A new chapter about symbol scanning from a file, was added to the manual. 8899 - The makefile for Linux/BSD/Unix and the file mk_linux.mak were improved to be usable 8900 for shells where a \n in the echo command leads to errors in the make process (thanks to 8901 Wolfgang Raith, Jens Thoms Toerring and Arnold Hendriks for helping with this issue). 8902 - The function cp_to_wstri was protected with 'ifdef USE_WFOPEN' in the files striutl.c and 8903 striutl.h (thanks to Wolfgang Raith for pointing out compilation problems). 8904 - The functions = and <> were added to the complex.s7i library. 8905 - The documentation comments of the libraries scanfile.s7i and scanstri.s7i were improved. 8906 - The functions skipLine and getLine were added to the scanfile.s7i library. 8907 - The strifile.s7i library, which supports string based files, was added. 8908 - The documentation comment of the get_symbol function in the file bas7.sd7 was improved. 8909 - The function processFile which checks the functions getWhiteSpace and getSymbolOrComment 8910 was added to the program chkscan.sd7 . 8911 - The functions filWrite and ut8Write were improved to raise FILE_ERROR when the 8912 call of fwrite() was not able to write the whole string. 8913 - Support for the primitive action flt_cast was added to the interpreter and compiler. 8914 - The function setToInt which can convert parts of a set to an integer was added to 8915 set_rtl.c . 8916 8917 20080508: 8918 - The FAQ "Why a new programming language?" was improved. 8919 - The descriptions of the functions 'rem', 'mod', '[ A .. B ] times C', minIdx, maxIdx, 8920 rand(array), insert(array), category, local_vars, local_consts, setCategory, setParams, 8921 'in'(ref_list), 'not in'(ref_list), make_list, pos(ref_list), '&:='(ref_list), 8922 '@:='(ref_list) and the bufferChar variable in the manual were added or improved. 8923 - The functions float cast, float varCast, boolean varConv, char varConv 8924 TRACE_REF, pos(ref_list), [minIdx .. maxIdx], minIdx, maxIdx (+ usage of them), 8925 minIntIdx, maxIntIdx, card(hashSet), xalloc, ord(enum), getwd(null_file) and 8926 getln(null_file) in the seed7_05.s7i library were added or improved. 8927 - The compiler (comp.sd7) support for the primitive actions arr_maxidx, arr_minidx, 8928 flt_icast, int_pow, rfl_ipos and sct_alloc was added or improved. 8929 - The compiler handling of INTERFACEOBJECTs and the generation of prototypes was improved. 8930 - The compiler was improved to generate static dispatcher functions. 8931 - The functions arr_maxidx and arr_minidx were added to the file arrlib.c. 8932 - The function bigUIConv was added to the file big_gmp.c. 8933 - The function rflIpos was added to the file rfl_data.c. 8934 - The function flt_icast was added to the file fltlib.c. 8935 - The functions refArrmaxpos, refArrminpos, ref_arrmaxpos and ref_arrminpos were renamed to 8936 refArrmaxidx, refArrminidx, ref_arrmaxidx ref_arrminidx. 8937 8938 20080420: 8939 - An explanation how to uncompress the Seed7 package was added to the FAQ. 8940 - The descriptions of the functions log2, gcd, lowestSetBit, 'rem', 'mdiv' and 8941 'mod' in the manual were added or improved. 8942 - The functions gcd and modInverse were added to the bigint.s7i library. 8943 - The bigrat.s7i library was changed to use the gcd function from the bigint.s7i library. 8944 - The chkbig.sd7 program was improved with additional checks for the monadic plus, 'div', 8945 'rem', 'mdiv', 'mod' and bigInteger constants. 8946 - The chkexc.sd7 program was improved with additional checks for bigInteger functions. 8947 - The chk_all.sd7 program was improved to take the new checks into account. 8948 - The compiler (comp.sd7) was improved to work also with GMP's bigInteger's. 8949 - The compiler was improved to support big_plus and big_gcd. 8950 - The handling of +:=, -:=, *:=, <<:= and >>:= in the compiler was improved to 8951 avoid memory leaks. 8952 - The handling of the bigInteger 'mdiv' and * in the compiler was improved to do some 8953 optimizations like using shift operations instead. 8954 - Three example programs printpi1.sd7, printpi2.sd7 and printpi3.sd7 were added. 8955 - The big_gmp.c interface library was added to allow bigInteger computations based 8956 on the mpz_ functions of the GMP library. 8957 - The file big_rtl.h was renamed to big_drv.h. 8958 - The file biglib.c was change to allow working with big_rtl.c or big_gmp.c . 8959 - The file big_rtl.c was improved to work with a BIGDIGIT_SIZE of 32. 8960 - The functions bigHexCStri, uBigMultSub, uBigSqare, bigClit, bigCmpSignedDigit, bigDiv, 8961 bigGcd, bigGrow, bigImport, bigLShift, bigLShiftAssign, bigMDiv, bigMod, bigOdd, bigRem, 8962 bigRShift, bigShrink and bigToBStri of the file big_rtl.c were added or improved. 8963 - An error message about "match value failed" was suppressed in dcllib.c . 8964 - The int_mdiv action (defined in intlib.c) was improved for speed. 8965 - The function prot_bigint (defined in traceutl.c) was changed to use bigHexCStri. 8966 - The function printtype (defined in traceutl.c) was changed to avoid writing a pointer value. 8967 - A bug in the function typHashCode (defined in typ_data.c) was fixed. 8968 - The file read_me.txt was improved to contain a chapter about warnings and a chapter 8969 which explains how use the GMP library. 8970 8971 20080406: 8972 - The interpreter and the compiler (comp.sd7) were improved to support the functions 8973 bitLength, lowestSetBit, <<, <<:=, >> and >>:= for the types integer and bigInteger 8974 (inspired by Mensanator for a program which explores the Collatz Conjecture). 8975 - The priority of the << and >> operators was changed from 19 to 9 in the file syntax.s7i. 8976 - Uses of the obsolete file output operator << where replaced with write statements in 8977 bas7.sd7, comp.sd7, ms.sd7, pac.sd7, sl.sd7, snake.sd7, tarx.sd7, tetg.sd7 and tet.sd7. 8978 - Descriptions about the new integer/bigInteger functions <<, <<:=, >>, >>:=, bitLength and 8979 lowestSetBit were added to the manual. 8980 - The chkint.sd7 program was improved with additional checks in chkint for 'div', 'rem', 8981 'mdiv', 'mod', <<, <<:=, >> and >>:= . 8982 - The chkbig.sd7 program was improved with additional checks for **, compare, lowestSetBit, 8983 <<, <<:=, >> and >>:= . 8984 - The compiler (comp.sd7) was improved to create optimized/improved versions for the bigInteger 8985 functions odd, compare, <, <=, >, >=, ** and for the integer functions 'mdiv' and 'mod'. 8986 - A description about the type bigRational was added to the manual. 8987 - An explanation about type inference was added to the FAQ. 8988 - A new constructor for complex numbers from a float was added to the complex.s7i library. 8989 - A boss mode was added to the panic.sd7 and mahjong.sd7 example programs. 8990 - The bas7.sd7 (basic interpreter) example program was improved. 8991 - The makefiles were improved to set the RSHIFT_DOES_SIGN_EXTEND macro in the version.h file. 8992 - A bug in the primitive action flt_mcpy was fixed. 8993 - The primitive action flt_str was improved to support denormal float numbers better. 8994 8995 20080319: 8996 - The functions getEscapeSequence, getCharLiteral, getStringLiteral, getSymbolOrComment and 8997 getSymbol were added to the scanstri.s7i library. 8998 - The file read_me.txt, which explains the compilation of the interpreter, was added to 8999 the src directory. 9000 - The actions act_value, big_value, chr_value, fil_value, flt_value, int_value, prg_value, 9001 rfl_value, set_value, str_value and typ_value were improved to raise an exception for 9002 references which are NIL or refer to an object with the wrong category. 9003 - The support for the primitive actions itf_eq and itf_ne in the compiler (comp.sd7) was 9004 improved. 9005 - The handling of bitsets with negative elements in the compiler (comp.sd7) was improved. 9006 - The bas7.sd7 (basic interpreter) example program was improved to support the -p 9007 option which asks for a prompt at the end of the program. 9008 - Support for the actions bst_append and bst_cat was added to the interpreter. 9009 9010 20080302: 9011 - A new chapter about compile errors was added to faq and to the read_me. 9012 - The functions skipComment, getComment, skipLineComment, getLineComment and getNumber were 9013 added to the scanstri.s7i library. 9014 - A new example program (chk_all.sd7), which runs interpreted and compiled checks, was added. 9015 - Support for the primitive action CMD_CHDIR was added to the compiler (comp.sd7). 9016 - Several memory leaks, which happen in the handling of MEMORY_ERROR exceptions, were removed. 9017 - All primitive actions which start with CLS_ were renamed such that the name starts with ITF_ . 9018 - The files clslib.c and clslib.h were replaced by itflib.c and itflib.h . 9019 - The objectcategory CLASSOBJECT was replaced with the objectcategory INTERFACEOBJECT. 9020 - The functions popen and cmd_sh were improved to be consistent on all platforms. Now they 9021 use always '/' as path delimiter and '\\ ' to describe spaces in the command path. 9022 - The gets function for external_files was improved to work correctly when pipe files are 9023 read as a whole. 9024 - A workaround was added for a wrong behaviour of the ftell() function under MinGW for pipes. 9025 - The -q option of the 'hi' interpreter was improved to suppress all interpreter messages. 9026 - Several changes to remove C compiler warnings were done. 9027 9028 20080217: 9029 - A new chapter about object orientation was added to the manual 9030 (Many thanks for the feedback to Leonardo Cecchi, Malcolm McLean and Reinder Verlinde). 9031 - The manual was changed to mention that the 'in' parameter of arrays and structs 9032 is a reference ('ref') parameter. 9033 - The faq was improved to contain a paragraph about static type checking. 9034 - The implementation type NULL_FILE was renamed to null_file. 9035 - The struct copy of the compiler (comp.sd7) was changed to leave the dynamic type unchanged. 9036 - The following primitive actions were added or improved in the compiler (comp.sd7): 9037 FIL_ERR, FIL_IN, FIL_OUT, FLT_GROW, FLT_MCPY, HSH_INCL, HSH_LNG, INT_PLUS, PRG_EXEC, 9038 PRG_STR_ANALYZE, SCR_CURSOR and STR_GETENV. 9039 - The primitive action CLS_CREATE2 was changed to call the CLEAR_TEMP_FLAG macro 9040 (This is a fix for a bug found by Leonardo Cecchi). 9041 - The function match_subexpr_type was changed to allow normal (not DYNAMIC) interface 9042 functions to be used for implementation values. 9043 - The primitive action PRC_GETENV was renamed to STR_GETENV. 9044 - The bas7.sd7 (basic interpreter) example program was improved. 9045 - A bug in the primitive action RFL_NOT_ELEM was fixed. 9046 - The functions copy_list, array_to_list and struct_to_list were change to return the 9047 created list. 9048 9049 20080203: 9050 - The compiler (comp.sd7) was improved to allow the compilation of itself. 9051 - The compiler now compiles the programs rever.sd7 and sl.sd7. 9052 - The scanner.s7i library was renamed to scanfile.s7i and the getName function was 9053 added to it. 9054 - Three libraries dialog.s7i, scanstri.s7i and charsets.s7i were added. 9055 - The functions str, digits and parse of complex.s7i were changed to use the 9056 -0.5000+0.8660i format. 9057 - The hasNext function, which allows an iterator like handling of files, was added to 9058 the file interface. 9059 - Two new object libraries s7_comp and s7_data were added to support the compiler. 9060 - The following files were added: act_comp.c, act_comp.h prg_comp.c, prg_comp.h, 9061 ref_data.c, ref_data.h, rfl_data.c, rfl_data.h typ_data.c, typ_data.h, datautl.c and 9062 datautl.h . 9063 - The following primitive actions were added or improved: CMD_FILETYPE, FIL_HAS_NEXT, 9064 FIL_PRINT, FIL_VALUE, REF_ARRMAXPOS, REF_CAT_PARSE, REF_CAT_STR, RFL_NOT_ELEM 9065 - The prototypes of several *.h files were improved to contain parameter names. 9066 - The category of an object returned by refCategory is now an integer/enumeration like 9067 type instead of a string. 9068 - The bigAddTemp and bigSbtrTemp functions were added to allow optimized bigInteger 9069 operations in the compiler. 9070 - The bas7.sd7 (basic interpreter) example program was improved. 9071 - The Exit function of the castle.sd7 example program was improved. 9072 9073 20080120: 9074 - Optimizations for the string functions =, <>, stri[num], &, upper, lower, pos, rpos, split 9075 and for the array indexing were added to the compiler (comp.sd7). 9076 - Documentation comments were added to bigint.s7i, draw.s7i, bas7.sd7 and mahjong.sd7. 9077 - The bas.sd7 (basic interpreter) example program was improved and renamed to bas7.sd7. 9078 - The functions polar, parse, str and digits were added or improved in complex.s7i. 9079 - The read_dir, chdir, mkdir functions were improved to raise FILE_ERROR on failure. 9080 - The functions open_dir and open_dir_path of the dir.s7i library were changed to return 9081 STD_NULL when the directory does not exist. 9082 - The functions getDigits, skipSpace, skipWhiteSpace were added to the scanner.s7i library. 9083 - The digits function for the type float was improved to never return -0 . 9084 - The new lpad0 operator was added to convert integers to strings with leading zeros. 9085 - The time conversion functions str_yyyy_mm_dd, str_mm_dd_yy, str_mm_dd_yyyy, str_d_m_yy and 9086 str_d_m_yyyy were added to the time.s7i library. 9087 - Checks were added to the chkint.sd7 and chkstr.sd7 example programs. 9088 - The code to handle a failing realloc for arrays was improved. 9089 - Bugs in the compiler, with str_append and with val or ref parameters as result in the 9090 return statement, were fixed. 9091 9092 20080106: 9093 - Documentation comments were added to the functions of the libraries bigint.s7i, 9094 bigrat.s7i, complex.s7i, float.s7i, getf.s7i, keybd.s7i, rational.s7i, scanner.s7i, 9095 socket.s7i, stritext.s7i, time.s7i and dna_base.s7i. 9096 - The bas.sd7 (basic interpreter) example program was improved. 9097 - The include mechanism was improved to avoid multiple includes. 9098 - Part of the float.s7i library was moved to the new math.s7i library. 9099 - The library html_ent.s7i, which contains functions to replace HTML entities by 9100 characters and vice versa, was added. 9101 - A new example program (chkhent.sd7) to check the new HTML functions was added. 9102 - The compiler (comp.sd7) was improved to support the new 'rpos' function. 9103 - The getHtmlTagOrContent function was added to the scanner.s7i library. 9104 9105 20071227: 9106 - The library cards.s7i which contains the card pictures of a french deck was added. 9107 - The documentation of the draw.s7i library was improved. 9108 - Some pictures were moved from castle.sd7 to pic16.s7i and pic32.s7i. 9109 - The function rpos (reverse search for a character in a string) was added to the 9110 seed7_05.s7i library. 9111 - The bas.sd7 (basic interpreter) example program was improved. 9112 - A new example program (carddemo.sd7), which demonstrates the playing cards of the 9113 french deck, was added. 9114 - Test cases for the rpos function were added to the chkstr.sd7 program. 9115 9116 20071210: 9117 - The interpreter was improved to flag match errors only once instead of multiple times. 9118 - The graph.s7i library was improved to define the type pointList and the function 9119 genPointList (to create a pointList from an integer array of x and y coordinates). 9120 - The functions polyLine and fpolyLine (to draw polygons and filled polygons) were 9121 added to the draw.s7i library . 9122 - The functions pos (search for a character in a string) and isDigitString were added 9123 to the seed7_05.s7i library. 9124 - Several test cases were added to the chkint.sd7 and chkstr.sd7 programs. 9125 - The drwSetTransparentColor function was added to the drw_x11.c driver. 9126 - An analog clock program (clock3.sd7) provided by Volker Schuller was added. 9127 - The compiler was improved to support the new graphic and string functions. 9128 9129 20071125: 9130 - The interpreter was improved to store the filename and the line of the definition of 9131 an object. 9132 - The line stored for an expression was improved to be identical with the line of the 9133 operator symbol or function name. 9134 - The stritext.s7i include file, which supports string array based text files, was added. 9135 - The mahjong.sd7 example program was improved to draw darker vertical surfaces. 9136 - The mahjong tiles of the mahjng32.s7i include file were improved to contain bigger digits. 9137 - Several new functions like getHtmlSymbolOrComment, gray, file and line were added. 9138 - The compiler was improved to support functions with 'in var' parameter called by DYNAMIC 9139 dispatch functions with a corresponding 'val' parameter. 9140 - The compiler was improved to support the ref_line and ref_file actions. 9141 - An error was fixed in the strIpos function and test cases were added to the chkstr.sd7 9142 program. 9143 9144 20071110: 9145 - The functions getSymbol, getWhiteSpace, getSymbolOrComment and getSimpleSymbol 9146 of the scanner.s7i library were created or improved. 9147 - A new example program (chkscan.sd7) to check the new scanner functions was added. 9148 - A bug in the planets.sd7 example program was fixed. 9149 - The manual was corrected to explain that the types 'char' and 'string' support Unicode. 9150 - The actions cmd_ls and scr_write were improved to use utf-8 characters when available. 9151 - The filOpen function was improved to use _wfopen under Windows. 9152 - The timezone handling to get the Greenwich Mean Time was improved. 9153 - A string in shisen.sd7 was enlarged to avoid a RANGE_ERROR exception 9154 when accessing it. 9155 9156 20071025: 9157 - A new example program (mahjong.sd7) was added. 9158 - An include file (mahjng32.s7i) which contains mahjong tiles was added. 9159 - The interpreter and the compiler were improved to support the gkb_window action. 9160 - The close interface function was changed to work for the type graphFile. 9161 9162 20071010: 9163 - The compiler (comp.sd7) was improved to support the 'remove(array, index)' function. 9164 - The functions isLeapYear, daysInMonth, weekOfYear, weekDateYear and weekDateWeek 9165 were added to the time.s7i library 9166 - The exception checking program chkexc.sd7 was improved to check for exceptions 9167 raised with arrays. 9168 - Documentation for the bigInteger type was added to the manual. 9169 - Some strings in pic32.s7i and pairs.sd7 were enlarged to avoid a RANGE_ERROR exception 9170 when accessing them. 9171 9172 20070925: 9173 - The compiler support for fil_tell, hsh_contains, hsh_excl and str_idx was improved. 9174 - The string indexing (str_idx) was changed to raise RANGE_ERROR for indices outside of 9175 the string. 9176 - Various spelling errors in faq.htm, faq.txt, manual.htm and manual.txt where fixed. 9177 - The functions filBigLng, filBigSeek, filBigTell and filLng were improved to use _fseeki64 9178 when available. 9179 - The mandelbr.sd7, chkstr.sd7, chkexc.sd7 and wiz.sd7 example programs were improved. 9180 - A protection against a buffer overflow in scrWrite was added. 9181 - Several function prototypes were changed to use 'const' types. 9182 9183 20070909: 9184 - A gtk-server connection library (gtkserver.s7i), a test program (gtksvtst.sd7) and 9185 documentation (see doc/gtksvdoc.txt) were added (Patch from Leonardo Cecchi). 9186 - Some spelling corrections for read_me and a draft for a Cygwin makefile (mk_cygw.mak) 9187 were added (Patches from Terrence Brannon). 9188 - A Seed7 mailing list has been created under seed7-NOSPAMusers@lists.sourceforge.net 9189 (Remove NOSPAM to get the email address). 9190 - The planets.sd7 program was improved to show the name of a star when clicking on it. 9191 - The stack trace of the hi interpreter for uncaught exceptions was improved. 9192 9193 20070823: 9194 - The compiler was improved to support nested exceptions. 9195 - The planets.sd7 example program was improved to contain a panorama with stars and planets. 9196 - An include file (stars.s7i) which contains the names and coordinates of stars was added. 9197 - The intParse function was improved to accepts a plus (+) sign. 9198 - The memory management of the socRecv function was improved. 9199 - Some exception tests were added to chkexc.sd7 9200 - A test for check_atan2 was added to the chkflt.sd7 program. 9201 9202 20070807: 9203 - The handling of local functions in the compiler (comp.sd7) was improved. 9204 - The function 'option' (to get compile time defines) was renamed to 'configValue'. 9205 - The compiler was improved to support the 'configValue' function. 9206 - The 'ord' function for enumerations was changed to work without DYNAMIC. 9207 - The changelog was reversed (sorted now from newest to oldest), and old entries were added. 9208 - The address of the FSF was changed in various files. 9209 9210 20070723: 9211 - The compiler (comp.sd7) was improved to allow local functions. 9212 - The compiler now supports arrays with indices of any type (not just integer indices). 9213 - A new example program (mandelbr.sd7), to display fractals, was added. 9214 - The -O2 option was added to the compiler (advantageous when compiling mandelbr.sd7). 9215 - The compiler now generates static functions to allow more optimizations. 9216 - A *:= operator and the sqrAbs function were added for the type 'complex'. 9217 - The reflection was changed to use the 'getValue' function instead of the 'value' operator. 9218 - The compiler was improved to support the conversion of integers to an enumeration type. 9219 - The compiler now compiles the programs panic.sd7 and castle.sd7. 9220 9221 20070710: 9222 - The compiler (comp.sd7) support for different C compilers was improved. 9223 - A support for socket send and recv was added to the compiler. 9224 - A description of openInetSocket was added to the documentation. 9225 - A pos function and the 'not in' operator was added for the type ref_list. 9226 - The var_conv operator was renamed to varConv. 9227 - Some setters (setCategory, setValue, setParams) were added to the reflection. 9228 - The classtype of the interpreter was renamed to categorytype since it has 9229 nothing to do with classes. 9230 9231 20070624: 9232 - As suggested by several users a socket library (socket.s7i) was added. 9233 - Two example programs tst_srv.sd7 and tst_cli.sd7 to test socket functionality were added. 9234 - The popen function was added (suggested by Leonardo Cecchi). 9235 - The compiler was improved to support hash tables with floats, various for loops over 9236 hash tables and the new socket library. 9237 - The compiler now compiles the programs bas.sd7 and wordcnt.sd7. 9238 - The wator.sd7 example program was improved. 9239 - The heap management and the heap statistic was improved. 9240 - Several function prototypes were changed to use 'const' types. 9241 9242 20070607: 9243 - An explanation of multiple dispatch was added to the FAQ. 9244 - A bug in the 'str' function for 'complex' was fixed (found by Leejun). 9245 - The interpreter was improved to support startsWith, endsWith, array_min_position, heapstat 9246 and @:= (for ref_lists). 9247 - The compiler support for drw_cpy, ref_trace, arr_head, arr_tail, arr_idx, varfunc, wintype, 9248 array literals and dynamic functions (for enumerations) was improved. 9249 - The compiler now writes a message when an uncaught exception was raised. 9250 - The compiler was changed such that destr functions accept also NULL. 9251 - The compiler now compiles the programs snake.sd7 and toutf8.sd7. 9252 - The concentration game was renamed to pairs.sd7 9253 - The functions drwCpy, drwCreate and drwDestr where moved to drw_rtl.c. 9254 - The heap management and the heap statistic was improved. 9255 9256 20070524: 9257 - The file version.h was removed to force the creation of it with the "make depend" command. 9258 - The read_me was changed such that a "rm version.h" is not necessary to compile. 9259 - Several constant types were defined in data_rtl.h. 9260 - The files str_rtl.c, str_rtl.h, set_rtl.c and set_rtl.h were changed to use constant types. 9261 - A bug with compare functions for array sorts and hash tables was fixed. 9262 - The makefile mk_linux.mak was added as copy of 'makefile'. 9263 - The makefile mk_msvc.mak was added to allow experimental compilation with nmake and cl. 9264 9265 20070507: 9266 - As suggested by several users the include files were moved to the 'lib' directory. 9267 - The search for include files was improved to work with an internal search path array. 9268 - The 'hi' interpreter now contains a hardcoded include directory path defined in version.h. 9269 - The makefiles mk_mingw.mak, mk_msys.mak and mk_nmake.mak were added for compilation under MinGW. 9270 - The bigInteger multiplication was changed to use Karatsuba multiplication for bigger integers. 9271 - Several constant types were defined in common.h. 9272 9273 20070419: 9274 - The compiler support for result variables, which are initialized with expressions, was improved. 9275 - The bas (basic interpreter) example program was improved. 9276 - The bigrat.s7i, rational.s7i libraries were improved. 9277 - Some multiplication test cases were added to the chkbig.sd7 example program. 9278 - The compiler was changed to mark its temporary *.c files with a temp_marker. 9279 - Several performance improvements for uBigMultSub, uBigAddTo, uBigDiv, uBigMult, 9280 uBigMultIntoHelp, bigGrow, bigMult and bigShrink were done. 9281 9282 20070404: 9283 - The support and documentation for the functions split, join, log2, bitLength and 9284 the operator *:= were improved. 9285 - The compiler support for the functions raise, log2 and split was improved. 9286 - The bas (basic interpreter) example program was improved to support print using statements. 9287 - The support of the for-step loop in the seed7_05.s7i include file was improved. 9288 - Some improvements for the bigRational and bigInteger library were done. 9289 - A bug in uBigAddTo which could cause an error in bigDiv, bigRem, bigMDiv, bigMod was fixed. 9290 - The chkbig.sd7 program was improved to check the log2 function for bigInteger. 9291 - The chkstr.sd7 program was improved to have more checks for the split function. 9292 9293 20070319: 9294 - The interpreter was changed to execute programs only when they have no errors. 9295 - The option -x to execute programs, even when they have errors, was added to the interpreter. 9296 - The *:= operator for the types integer, float, bigInteger and bigRational was added. 9297 - The chkbig.sd7 program was improved to check the *:= operator for big integers. 9298 - The compiler was improved to support the *:= operator and the arr_cat action. 9299 - Several improvements for compile time error messages were done. 9300 - The err.sd7 example program, which checks compile time error messages, was improved. 9301 9302 20070305: 9303 - The support for float was changed to use IEEE 754 NaN and Infinity instead of exceptions. 9304 - The exception checking program chkexc.sd7 was improved and the chkflt.sd7 program was added. 9305 - All exponentiation operators were improved to evaluate 0 ** 0 to 1. 9306 - The associativity of the ** operator was changed to work right to left. 9307 - A declaration for an = and <> operator was added for interface types. 9308 - Basic support for exceptions in compiled programs was added. 9309 - Parts of the manual describing float operations and exponentiation were improved. 9310 - The performance of the flt_ipow action was improved. 9311 - The compiler was improved to produce better code for the primitive actions 9312 arr_sort, arr_times, cls_eq, cls_ne, flt_isnan, flt_log10, int_fact, 9313 rfl_append, rfl_cpy, rfl_for, rfl_mklist, rfl_ne, rfl_tail and str_str. 9314 9315 20070219: 9316 - The support for hash tables, sets and console output in compiled programs was improved. 9317 - Support for multiple dispatch of interface (DYNAMIC) functions was added to the compiler. 9318 - The handling of parameters in the dispatch functions generated by the compiler was improved. 9319 - Variable global arrays and structs in compiled programs are now initialized 9320 with a copy of the initialization value. 9321 - The compiler was improved to produce better code for the primitive actions 9322 arr_idx, chr_ge, chr_gt, chr_le, chr_lt, fil_seek, set_cpy, str_cpy, 9323 prc_option, prg_match, ref_itftosct, typ_isderived and typ_meta. 9324 - A compare and a hashCode function was added for the type 'color'. 9325 - A check for curr_hash != NULL was removed at various places since isit_hash takes care of it. 9326 9327 20070204: 9328 - An abstract data type to create interface types was added. 9329 - The matching of functions was changed such that interface functions are 9330 preferred over non interface functions. 9331 - The error message which flags wrong access rights of actual parameters was improved. 9332 - The sorting of directory entries for cmd_ls was improved. 9333 - The Unicode support for prc_getenv and prc_option was improved. 9334 - The -v (verbose) option was added to the interpreter. 9335 - A small bug in the startrek.sd7 example program was fixed. 9336 - The handling of interface (DYNAMIC) functions in the compiler was improved. 9337 - The compiler was improved to support the actions arr_cpy, drw_create, drw_destr, 9338 drw_pfarcchord and drw_pfarcpieslice. 9339 - The handling of enumeration types in the compiler was improved. 9340 - Several accessright changes for file functions in seed7_05.s7i and other libraries 9341 allow the compiler to produce working code for more file functions. 9342 9343 20070118: 9344 - The compiler was improved to support interfaces (DYNAMIC functions). 9345 With this improvement several example programs can be compiled now. 9346 - The support for the actions gkb_busy_getc, gkb_xpos, gkb_ypos, kbd_busy_getc, 9347 drw_pfellipse and arr_arrlit2 was added to the compiler. 9348 - The X11 keyboard driver was improved. 9349 9350 20070104: 9351 - The hashtype was changed to maintain the size of the hash instead of computing it. 9352 - The &:= statement for the type ref_list was added. 9353 - The compiler was improved to support 'in var' parameters. 9354 - A new include file (complex.s7i) to support complex numbers was added. 9355 - The support for the bigIConv, bigOrd, cmdMkdir, drwPArc, drwPCircle, drwPFEllipse, 9356 filBigLng, filBigSeek and filBigTell functions was added to the compiler. 9357 9358 20061219: 9359 - Support for local constant declarations was added to the compiler. 9360 - The compiler was improved to support the actions big_abs, big_clit, big_hashcode, 9361 big_value, cmd_ls, flt_grow, flt_shrink, gkb_gets, kbd_gets, set_arrlit and str_chsplit. 9362 - The heap statistic was improved to work for bigInteger objects. 9363 - The array compare functions = and <> have been improved. 9364 - The support for arrays in the compiler was improved. 9365 - The trace level 'h' was added to trace the heapsize. 9366 - The exception handling was corrected to work with hash objects. 9367 - A bug in the in_file handling of the analyzer was fixed. 9368 - The 'hi' interpreter was improved to support the actions rfl_trace and str_split. 9369 9370 20061204: 9371 - The functions bigLength, seek, bigTell were added to support files with 64 bit offsets. 9372 - The file functions getwd, getln, read and readln were changed to remove '\r' before '\n'. 9373 - Parameters of type bigInteger were changed to use call by reference. 9374 - The functions ord and conv for the bigInteger type were added. 9375 - The putf function (to copy a string to a file) was changed and a writef function was added. 9376 - Functions to split and join strings and a check for that functions were added. 9377 - Comparisons = and <> for arrays were added. 9378 - An implementation for 'set of string' based on the 'hash' type was added. 9379 - Keyboard functionality was moved into the new file kbd_rtl.c. 9380 - A new makefile makefile.msy for MinGW MSYS compilation was added. 9381 9382 20061120: 9383 - The rand function and the +:= and -:= operators were added to 9384 the bigInteger library. 9385 - The checks for bigInteger addition and subtraction in chkbig.sd7 9386 were improved and checks for the +:= and -:= operators 9387 were added. 9388 - The compiler support for bigInteger was improved. 9389 - The documentation (manual and faq) was improved. 9390 9391 20061106: 9392 - The hi interpreter was improved to support bigInteger literals. 9393 - Changes have been done to allow a configurable bigdigit size 9394 (Bigdigits are the building elements of a bigInteger). 9395 - The mdiv function was added to the bigInteger library and the 9396 chkbig.sd7 program. 9397 - The chkbig.sd7 program was changed to use bigInteger literals. 9398 - Several bigInteger functions have been improved. 9399 - A bigrat.s7i include file to support bigRational numbers has been added. 9400 - The compiler support for bigInteger, setBaselit and strTrim has 9401 been improved. 9402 9403 20061023: 9404 - The bigInteger library was improved to support modulo, power and 9405 several comparisons (<, >, <=, >=). 9406 - Test cases for incr, decr, modulo, power and compare were added to 9407 the chkbig.sd7 program. 9408 - The compiler was improved to support the new bigInteger functionality. 9409 9410 20061008: 9411 - The bigInteger library was improved to support division and remainder. 9412 - Test cases for division and remainder were added to the chkbig.sd7 program. 9413 - The compiler was improved to support bigInteger division and remainder. 9414 9415 20060926: 9416 - The bigInteger library was improved to support addition, subtraction, 9417 multiplication, negation, absolute value, string conversions and more. 9418 - A lot of test cases have been added to the chkbig.sd7 program. 9419 - The compiler was improved to support more bigInteger functionality. 9420 - The makefile was changed to work on BSD (suggested by Dave Bodenstab). 9421 9422 20060910: 9423 - A new include file (bigint.s7i) and a new example program (chkbig.sd7) were added. 9424 - Changes in the compiler to support some bigInteger functionality were done. 9425 - Support for the str_elemcpy action was added to the compiler. 9426 9427 20060826: 9428 - A description of the 'attr' parameter was added to the manual. 9429 - The first steps towards bigInteger support were done. 9430 - The graphic and keyboard drivers for Windows have been improved. 9431 - A check for the maximum of fish and sharks was added to the wator example program. 9432 9433 20060808: 9434 - A description of the 'func', 'varfunc' and 'proc' types was added to the manual. 9435 - The 'parse' operator for the type 'time' was improved. 9436 - The operators '<=', '>' and '<' were added for the type 'duration'. 9437 - The Windows graphic driver was improved to use the SetPixel function. 9438 - The filOpen function was changed to open files in binary mode. 9439 9440 20060724: 9441 - A new example program (bifurcation) was added. 9442 - A trim function to remove leading and trailing spaces from strings was added. 9443 - The Windows graphic driver was improved to support Windows 98. 9444 - A changelog (chlog) was added. 9445 9446 20060707: 9447 - A little improvement of the castle example program was done. 9448 - The drwText function of the Windows graphic driver 9449 was changed to support Unicode characters. 9450 - A new example program (planets) was added. 9451 9452 20060622: 9453 - A new example program (castle) was added. 9454 Castle was inspired by the castle adventure from 1984. 9455 - The graphic driver for Windows has been improved for 9456 circle, arc, chord, pieslice, fellipse. 9457 9458 20060606: 9459 - The bas (basic interpreter) example program was improved to 9460 support exit statements. 9461 - A tiny bug in the panic example program was fixed. 9462 - The hi interpreter was improved to write a stack trace when 9463 an exception is not caught. 9464 9465 20060520: 9466 - The performance of the interpreter was raised by circa 8% with 9467 an improved free list management. 9468 - The graphic and keyboard drivers for Windows have been improved. 9469 - A new primitive action (set_arrlit) was defined to create sets from 9470 integer arrays. 9471 - The bas (basic interpreter) example program was improved to support do loops. 9472 - A sudoku example program (sudoku7) was added. 9473 9474 20060506: 9475 - The reporting of semantic errors was improved (now the 9476 line number and the line itself is shown). 9477 - A checkmark picture was added to pic16.s7i and pic32.s7i . 9478 - A tiny inaccuracy in the heap statistic was fixed. 9479 - The source and include file management of the interpreter 9480 was simplified. 9481 9482 20060420: 9483 - The driver function tim_await (using seconds since 1970) 9484 was replaced by timAwait (using the Gregorian calendar). 9485 - The driver function timNow was changed to deliver a 9486 timezone which includes the daylight saving time. 9487 - Various pictures where added in pic16.s7i and pic32.s7i . 9488 - The parse function for bitsets was fixed to work for 9489 empty sets. 9490 - A new example program toutf8 to convert files to utf-8 9491 was added. 9492 - The Windows driver function drwPRect was fixed. 9493 9494 20060404: 9495 - Function to close a graph_file 9496 - Write graphic text under Windows 9497 - Parse operator and reading for bitsets 9498 - Allow hashtables for sets 9499 - Date format according to ISO 8601 9500 - New time functions dayOfWeek, julianDayNumber and 9501 julianDayNumToTime 9502 9503 20060314: 9504 - Improvements for arrays and structs in the compiler 9505 - Function strLit to support the compiler 9506 - Improvements in bas example program. 9507 - Subrange and for-loop for bitset 9508 - Allow line comments in string literals 9509 - Empty line count removed 9510 9511 20060223: 9512 - Some compiler improvements for sets and structs. 9513 - New graphic function: copyArea 9514 - Hashes for sets and types 9515 - New time functions: dayOfYear, toGMT, -:= 9516 - Utf-8 characters in string and char literals 9517 - New standard files: STD_UTF8_IN, STD_UTF8_OUT, STD_UTF8_ERR 9518 - Function file_type to get the type of a file 9519 9520 20060205: 9521 - The compiler (comp.sd7) can handle strings now. 9522 - New example program wator.sd7 (Simulation with fish and sharks). 9523 - Improved example program dnafight.sd7 . 9524 - New rand function to select a random element from a set. 9525 9526 20060126: 9527 - Improvements in the compiler (comp.sd7) 9528 - Changed wrinum.s7i to write roman, english and german numbers. 9529 - Moved some pictures to pic16.s7i and pic32.s7i. 9530 - Renamed NO_ERROR to OKAY_NO_ERROR (NO_ERROR is used in Windows). 9531 - Defined compare and hashCode for the type 'reference'. 9532 - In drw_win.c: Map characters 128 to 159 to Unicode chars. 9533 - In scr_win.c: Map console characters to Unicode chars. 9534 - Add #include "string.h" in files that use memcmp. 9535 - Add functions to support compilation: 9536 filLit, drwCpy, strHead, strRange, strTail and others. 9537 - In kbd_inf.c: Add support for UTF-8 keys for KEYBOARD. 9538 9539 20060118: 9540 - Some improvements of the Windows support 9541 - Console mode programs work 9542 - Windows time driver works 9543 - GDI Keyboard driver works 9544 - Graphic programs work to some degree 9545 The Windows port uses MinGW and the makefile "makefile.win". 9546 - Changes in the time driver interface tim_drv.h to support compilation. 9547 - Test program gkbd.sd7 for tests of the keyboard with x11/gdi - Windows. 9548 9549 20060111: 9550 - The beginning of Windows support 9551 (Textmode programs work, Graphic programs work to some degree) 9552 The Windows port uses MinGW and the makefile "makefile.win". 9553 - The definition of 9554$ system "main" main;
9555   has been moved to the seed7_05.s7i library.
9556   Therefore it is not necessary to specify 'system "main"' in every program.
9557
9558 20051203:
9559 - Function to get the unsorted keys of a hash
9560   (for sorted keys use the sort array function: sort(keys(aHash)) )
9561 - Function to get the unsorted values of a hash
9562   (for sorted values use the sort array function: sort(values(aHash)) )
9563 - flip function for hashes to flip keys and values
9564   (the result has the type: hash [baseType] array keyType )
9565 - for loop to loop over the unsorted values of a hash
9566 - for loop to loop over the unsorted keys of a hash
9567 - for loop to loop over the unsorted values and keys of a hash
9568
9569 20051124:
9570 - Function to get the keys of a hash
9571 - Sort function for arrays
9572
9573 20051112:
9574 - Now the Seed7 manual (in the package) uses color.
9575 - Implement seek for UTF-8 files
9576 - Fix and improve the gets function for UTF-8 files
9577 - The Seed7 project page contains also screenshots, a manual
9578   and an FAQ file. See http://sourceforge.net/projects/seed7
9579 - Rename 'NL' system variable to 'writeln' and change the
9580   corresponding logic
9581
9582 20051104:
9583 - Now Seed7 supports reading and writing UTF-8 files
9584 - The Seed7 project page contains also screenshots, a manual
9585   and an FAQ file. See http://sourceforge.net/projects/seed7
9586 - A new pos function to search a string from a given position has
`