From: tm on 21 Jun 2010 03:10
I have released a new version of Seed7: seed7_05_20100620.tgz
In the Seed7 programming language new statements and operators
can be declared easily. Types are first class objects and therefore
templates/generics need no special syntax. Object orientation is
used when it brings advantages and not in places when other
solutions are more obvious.
Seed7 is covered by the GPL (and LGPL for the Seed7 runtime library).
- Documentation comments were added to the libraries "graph.s7i",
"keybd.s7i" and "time.s7i".
- The compiler (comp.sd7) was improved to support the option -te
which enables tracing of exceptions in the generated executeble.
- Some types generated by the compiler were renamed to make them
unique (This helps a debugger to distinguish types when values are
- The declaration of 'flush' in "seed7_05.s7i" was improved (This way
the compiled example program "sl.sd7" works with the correct cursor
- The functions 'prc_for_to' and 'prc_for_downto' in "prclib.c" were
changed to terminate the loop when an exception was raised (This
way the loop variable has the correct value when an exception
- The performance of the functions 'strAppend', 'strAppendTemp',
'strConcatTemp', 'strHeadTemp' and 'strPush' in "str_rtl.c" was
- Several functions in "big_rtl.c" were improved to avoid a
MEMORY_ERROR in the strange case when a 'realloc' which shrinks
- The function alloc_positive_copy_of_negative_big and its calls in
"big_rtl.c" were improved to avoid memory leaks in out of memory
- The functions 'bigIncr' and 'bigDecr' in "big_rtl.c" were improved
to work as transactions in out of memory situations.
- The functions 'bigSuccTemp' and 'bigPredTemp' were improved to work
without calling 'bigIncr' and 'bigDecr' respectively.
- The handling of constant expressions for values with the categories
ARRAYOBJECT, STRUCTOBJECT, HASHOBJECT and INTERFACEOBJECT in the
compiler was improved.
- The support for the actions "CMD_SHELL" and "REF_TRACE" in the
compiler was improved.
- Code in the compiler was moved from the function 'generate_main' to
'init_hash_constants' and 'init_interface_constants'.
- The creation of array constants in the compiler was improved to use
a 'for' loop over a 'ref_list' instead of an 'integer' 'for' loop
and an index access to an element of the (possible long) 'ref_list'
(This speeds up compilation of programs with huge array constants).
- The function 'addTypeCategoryForLocalVars' was added to the
- The macro 'unlikely' was added to if statements which check for
error conditions in the files "str_rtl.c", "big_rtl.c" and
- The macros 'likely' and 'unlikely' were defined in the file
"common.h" and in several makefiles.
- Several functions in "flistutl.c" and "heaputl.c" were improved to
produce a correct heap statistic.
- The const qualifier was added to function prototypes in
"prg_comp.c" and "prg_comp.h".
- The functions 'prg_decl_objects', 'prg_error_count', 'prg_match',
'prg_match_expr', 'prg_syobject' and 'prg_sysvar' in "prglib.c"
were changed to call the corresponding functions from "prg_comp.c".
- The functions 'scr_setpos' and 'scr_write' in "scrlib.c" were
changed to call the corresponding functions from "scr_rtl.c".
- The function 'printparam' was added to "traceutl.c".
Greetings Thomas Mertes
Seed7 Homepage: http://seed7.sourceforge.net
Seed7 - The extensible programming language: User defined statements
and operators, abstract data types, templates without special
syntax, OO with interfaces and multiple dispatch, statically typed,
interpreted or compiled, portable, runs under linux/unix/windows.