Seed7 Release 2018-05-13
Sun, 13 May 2018 02:10:23 -0700 (PDT)

          From comp.compilers

Related articles
Seed7 Release 2018-05-13 (2018-05-13)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Sun, 13 May 2018 02:10:23 -0700 (PDT)
Organization: Compilers Central
Injection-Info:; posting-host=""; logging-data="2314"; mail-complaints-to=""
Keywords: available, OOP
Posted-Date: 16 May 2018 17:11:24 EDT


I have released a new version of Seed7: seed7_05_20180513.tgz
The download is here:
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).

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

Thomas Mertes

Seed7 Homepage:
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.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.