"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
8 is described in src/read_me.txt.
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
124 added to entutl.c.
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).
138 - The function omitWindowDecorationsAndTaskbarEntry() has been added
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.
144 - In error.c the functions read_ustri8_line(), read_and_print_line()
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
148 jump to analyzeProg().
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
197 ACTION_ERROR instead of RANGE_ERROR.
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.
209 - In cmd_rtl.c code has been moved from cmdReadlink(), cmdFileTypeSL()
210 and cmdGetcwd() to the new functions doReadLink(), getFileTypeSL()
211 and doGetCwd() respectively. The new functions use err_info to
212 report errors instead of raising an exception. The old functions
213 have been refactored to call the new functions.
214 - In cmd_rtl.c the function followLink() has been refactored to call
215 getFileTypeSL() and doReadLink().
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
238 experimental (see also src/read_me.txt).
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 "").
245 - The function readPropertyFile8() has been added to the library
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
252 added to chkfil.sd7.
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.
311 - Definitions of LINKER_OPT_SPECIAL_LIB and SPECIAL_LIB have been added
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.
318 - Documentation comments have been added or improved in cc_conf.s7i,
319 cgi.s7i, csv.s7i, propertyfile.s7i and graph.s7i.
320
321 20201208:
322 - Answers to two new questions have been added to the FAQ. Answers to
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
360 FREAD_WRONG_FOR_WRITE_ONLY_FILES.
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
363 different width due to prototype" has been added to src/read_me.txt.
364 - Documentation comments have been added or improved in dialog.s7i,
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,
393 CC_OPT_LINK_TIME_OPTIMIZATION and LINKER_OPT_LTO_MANDATORY have been
394 added to cc_conf.s7i.
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,
407 CC_OPT_LINK_TIME_OPTIMIZATION and LINKER_OPT_LTO_MANDATORY.
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.
451 - The functions addCopiedStriToArray() and addCopiedStriToRtlArray()
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.
458 - In str_rtl.c the function strHeadSlice(), strHead(), strHeadTemp(),
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
466 cmdSymlink() have been improved.
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
551 to use the catalog instead of file numbers.
552 - Checks for the payload digest and for file digests have
553 been added.
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(),
557 createRegister(), getInt(), readCatalogEntry(),
558 updateIndexEntry(), updateMetadata(), doSettings(), getDigest(),
559 checkPayloadDigest(), archiveFilePath(), getOwner(), setOwner(),
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.
575 - Chapters about the exception RANGE_ERROR and about the suppresson
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.
608 - The function linkerOptionAllowed() has been added to chkccomp.c.
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
632 payload.
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
749 chkbig.sd7. The function bigInteger() and the operators radix, RADIX
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
765 instead of raising OVERFLOW_ERROR.
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,
782 BUILTIN_ADD_OVERFLOW, BUILTIN_SUB_OVERFLOW, BUILTIN_MULT_OVERFLOW
783 and SYSTEM_DATABASE_LIBS have been added to cc_conf.s7i, confval.sd7
784 and cmd_rtl.c.
785 - Documentation comments have been added or improved in cc_conf.s7i,
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
795 payload.
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
800 added. E.g. buttonPressed(KEYBOARD, KEY_SHIFT). Additionally several
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
835 check_mod_by_computed_power_of_two_optimization() have been added
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
849 read_me.txt.
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
879 been added to cc_conf.s7i.
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:
905 - Tests with comments in sql statements have been added.
906 - Tests that fetch boolean values from numeric fields have been
907 added.
908 - Tests for date, time, datetime and timestamp fields have been
909 added.
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(),
1070 findLinkerOption(), listDynamicLibs() and determineConsoleDefines()
1071 have been added.
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.
1093 - Documentation has been added to read_me.txt.
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
1096 by the function LoadLibrary().
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.
1197 - The configuration value LINKED_PROGRAM_EXTENSION has been added to
1198 cc_conf.s7i. The linker produces a file with the extension defined by
1199 LINKED_PROGRAM_EXTENSION. Usually LINKED_PROGRAM_EXTENSION is
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
1203 define LINKED_PROGRAM_EXTENSION.
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.
1234 - An explanation of the Seed7 installer and about the download of Seed7
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
1281 with openTar(). The function readMinimumOfHead has been improved to
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
1451 added.
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
1506 and putBitsMsb have been added to bitdata.s7i. This functions read
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.
1530 - Documentation has been added to chkccomp.c and read_me.txt.
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
1558 support of Emscripten is experimental (see also src/read_me.txt).
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.
1634 - In chkccomp.c the functions to configure access to PostgreSql,
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.
1717 - A variant of the function readGzipHeader has been added to gzip.s7i.
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
1723 and added to seed7_05.s7i.
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
1730 been added to chkstr.sd7.
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
1832 doFetch have been added.
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
1938 been added to bigint.s7i.
1939 - The function string (it converts a bstring to a string) has
1940 been added to bstring.s7i.
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
1957 additional parameter err_info.
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
1990 been added to time.s7i. Additionally parsing of time literals 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.
2001 - Documentation comments have been added or improved in sockbase.s7i,
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
2019 added to striutl.c.
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
2030 added to the FAQ.
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
2053 added to the file config.h instead.
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
2151 added to fil_dos.c.
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
2191 been added to chkcmd.sd7.
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.
2283 - Documentation comments have been added or improved in bigint.s7i,
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
2293 hsh_rand_key have been added.
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,
3173 mbfBits2Float, str, radix and RADIX.
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
3187 added to integer.s7i.
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
3253 been added to process.s7i.
3254 - The functions childStdIn, childStdOut and childStdErr have been
3255 added to process.s7i.
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,
3263 CC_FLAGS, LINKER_FLAGS, SYSTEM_LIBS, SYSTEM_CONSOLE_LIBS,
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
3268 NULL_DEVICE have been added.
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
3289 been added to pcs_rtl.c.
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
3307 has been added.
3308 - In chkccomp.c the function writeReadBufferEmptyMacro has been
3309 improved to optionally use _get_stream_buffer_pointers() to define
3310 the macro read_buffer_empty.
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,
3363 os_dirent_struct, os_opendir, os_readdir, os_closedir,
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
3491 return always "", when the executable is not found.
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
3498 instead of estimated.
3499 - Several numeric literals have been replaced by defined constants.
3500 - The makefile mk_freebsd.mk has been changed to use numutl.c
3501 instead of sql_util.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.
3518 - Documentation comments have been added to aes.s7i, arc4.s7i,
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.
3536 - The function socAddressCStri() has been added to soc_rtl.c. Now
3537 this function is used instead of bstriAsUnquotedCStri(), to write
3538 addresses in log functions.
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.
3542 - The unused functions bin_add and bin_add_assign have been removed
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
3621 added.
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
3670 bigRShiftAssign in big_gmp.c and big_rtl.c have been improved to
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.
3712 - Documentation comments have been added to string.s7i, strlib.c and
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
3770 been added to chkflt.sd7.
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.
3775 - Documentation comments have been added to float.s7i, cc_conf.s7i,
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
3841 added to chkint.sd7
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,
3863 ATOF_ACCEPTS_DENORMAL_NUMBERS, HAS_SYMBOLIC_LINKS and HAS_READLINK.
3864 - The config value ISNAN_WITH_UNDERLINE has been removed. Instead the
3865 macro os_isnan has been defined.
3866 - The macro HAS_SYMLINKS has been renamed to HAS_SYMBOLIC_LINKS.
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.
3888 - Documentation comments have been added to the functions
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
3920 Emscripten is experimental (see also src/read_me.txt).
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
3930 FILE_SYMLINK, when the chain of symbolic links is too long.
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
3941 requests, has been added.
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.
3974 - In soc_rtl.c the function read_and_alloc_stri has been added. This
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
4006 been added to sockbase.s7i.
4007 - A new variant of openServerTls, with a certAndKey parameter, has
4008 been added to tls.s7i.
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.
4012 - The functions localAddress, peerAddress and ord have been added to
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
4034 been added to striutl.c.
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
4039 SOC_GET_LOCAL_ADDR, SOC_GET_PEER_ADDR and SOC_ORD (SOC_GET_ADDR has
4040 been renamed to SOC_GET_LOCAL_ADDR).
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 (either $HOME
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.
6355 - The functions flt_div and flt_div_assign in fltlib.c were improved
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
6359 read_me.txt.
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
6421 without following symbolic links.
6422 - The function path(PROGRAM) was improved, to follow symbolic links
6423 (see function followLink in cmd_rtl.c). Consequently dir(PROGRAM)
6424 also follows symbolic links.
6425 - The function CommandLineToArgvW in cmd_win.c was improved.
6426 - The files itf_rtl.c and itf_rtl.h, which contain interface
6427 functions, were added.
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"
6477 and "config.h" was added to the file "src/read_me.txt".
6478 - Parameter names were added to function definitions in various
6479 libraries.
6480 - Documentation comments were added or improved in the files
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.
6490 - Documentation comments were added to the file "striutl.c".
6491 - A description of several C preprocessor macros used in "version.h"
6492 was added to the file "src/read_me.txt".
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.
6501 - The function readDir was added to the library tar.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.
6513 - Documentation comments were added and improved in the file
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
6588 additional links improve also the Seed7 homepage.
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.
6594 - Documentation comments were added to "array.s7i", "idxarray.s7i",
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
6605 additional links improve also the Seed7 homepage.
6606 - Documentation comments were added to "boolean.s7i", "charsets.s7i"
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
6680 "src/read_me.txt".
6681 - In "shell.s7i" the function 'shell' was overloaded and the
6682 function 'callOwnProgram' was added.
6683
6684 20120415:
6685 - Documentation comments were added to "shell.s7i".
6686 - A description of several C preprocessor macros used in "version.h"
6687 was added to the file "src/read_me.txt".
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
6720 modern27, was added.
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
6739 added.
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.
6795 - The function 'readDir' was added to "osfiles.s7i" as replacement
6796 for 'read_dir'. The function 'read_dir' is deprecated and
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"
6804 was added to the file "src/read_me.txt".
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
6812 Seed7, were added.
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
6873 'numericAddress', 'inetSocketAddress', 'inetListenerAddress' and
6874 'getHostname'.
6875 - The file "pol_dos.c" was added (thanks to "Rugxulo" for pointing
6876 out, that it was missing).
6877 - Support for the actions POL_ADD_READ_CHECK POL_ADD_WRITE_CHECK,
6878 POL_FILES, POL_HAS_NEXT_READ_FILE, POL_HAS_NEXT_WRITE_FILE,
6879 POL_NEXT_READ_FILE, POL_NEXT_WRITE_FILE, POL_READY_FOR_READ,
6880 POL_READY_FOR_WRITE, POL_REMOVE_READ_CHECK,
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,
6885 POL_NEXT_FILE, POL_REMOVE_CHECK and SOC_GET_ADDR was added to
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:
6898 - The type 'pollData' and the functions 'clear', 'addReadCheck',
6899 'addWriteCheck', 'removeReadCheck', 'removeWriteCheck', 'poll',
6900 'readyForRead', 'readyForWrite', 'files', 'hasNextReadFile',
6901 'hasNextWriteFile', 'nextReadFile' and 'nextWriteFile' were added
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
6911 'pollData' (polltype) and the actions "POL_ADD_READ_CHECK",
6912 "POL_ADD_WRITE_CHECK", "POL_CLEAR", "POL_CPY", "POL_FILES",
6913 "POL_HAS_NEXT_READ_FILE", "POL_HAS_NEXT_WRITE_FILE",
6914 "POL_NEXT_READ_FILE", "POL_NEXT_WRITE_FILE", "POL_POLL",
6915 "POL_READY_FOR_READ", "POL_READY_FOR_WRITE",
6916 "POL_REMOVE_READ_CHECK", "POL_REMOVE_WRITE_CHECK" and "POL_VALUE".
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".
7007 - Documentation comments were added to "utf8.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
7053 function 'isNegativeZero' was added.
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".
7110 - The experimental function 'inputReady' was added to "file.s7i",
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.
7114 - Support for 'SOC_INPUT_READY' was added to the compiler (comp.sd7).
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.
7124 - Documentation comments were added to "math.s7i", "shell.s7i"
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.
7152 - Documentation comments were added to "integer.s7i", "string.s7i"
7153 and "wrinum.s7i".
7154 - The function 'inputReady' was added to the "socket.s7i" library.
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).
7179 - The operator lpad0 (function strLpad0 in "str_rtl.c") was improved
7180 to add zero characters ('0') after an optional leading sign
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
7199 added to "cmd_win.c".
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,
7228 was added.
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".
7271 - The function 'socInetAddr' in "soc_rtl.c" (defined as 'inetSocketAddress'
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'.
7285 - Several explanations were added to the file "src/read_me.txt".
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,
7295 was added.
7296 - The "ftp.s7i" library, which supports the FTP protocol, was added.
7297 - The functions 'numericAddress', 'service' and 'getHostname' were added to
7298 the "socket.s7i" library.
7299 - Support for the actions SOC_ADDR_NUMERIC, SOC_ADDR_SERVICE and
7300 SOC_GET_HOSTNAME were added to the compiler (comp.sd7).
7301 - The compiler was improved to recognize unsupported options and superfluous
7302 parameters.
7303 - The functions 'socAddrNumeric', 'socAddrService', 'socGetAddr', 'socSelect',
7304 'socSelectOne', 'socGetHostname' and 'socInputReady' were added to
7305 "soc_rtl.c" (some were commented out).
7306 - The functions 'select_addrinfo' and 'dump_addrinfo' in "soc_rtl.c" were
7307 improved.
7308 - The functions 'soc_addr_numeric', 'soc_addr_service', 'soc_get_addr',
7309 'soc_get_hostname', 'soc_input_ready' and 'soc_select' were added to
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".
7331 - Documentation comments were added or improved in the files
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".
7339 - The function 'read_zip_dir' was added to the "zip.s7i" library.
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
7348 added.
7349 - The functions 'disconnect_entity' and 'disconnect_param_entities' were
7350 added to "name.c".
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:
7389 - FAQ answers about Seed7s application area, Unicode support, Seed7s
7390 closures and how the compiler implements them, were added.
7391 - A new example program (sydir7.sd7), an utility to synchronize directory
7392 trees, was added.
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
7422 to the file "src/read_me.txt".
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
7446 added to the file "src/read_me.txt".
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.
7478 - The function 'addrFamily' was added to the "socket.s7i" library.
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".
7486 - The functions 'socInetAddr', 'socInetLocalAddr' and 'socInetServAddr' in
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
7491 action SOC_ADDR_FAMILY.
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
7542 added and improved respectively.
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
9587 been added.
9588
9589 20051025:
9590 - Initial release.