Seed7 Release 2014-07-20
Sun, 20 Jul 2014 10:50:06 -0700 (PDT)

          From comp.compilers

Related articles
Seed7 Release 2014-07-20 (2014-07-20)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Sun, 20 Jul 2014 10:50:06 -0700 (PDT)
Organization: Compilers Central
Keywords: available, OOP
Posted-Date: 20 Jul 2014 18:27:11 EDT


I have released a new version of Seed7: seed7_05_20140720.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).

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

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.