Seed7 Release 2017-03-05

mertesthomas@gmail.com
Wed, 8 Mar 2017 12:05:53 -0500 (EST)

          From comp.compilers

Related articles
Seed7 Release 2017-03-05 mertesthomas@gmail.com (2017-03-08)
| List of all articles for this month |

From: mertesthomas@gmail.com
Newsgroups: comp.compilers
Date: Wed, 8 Mar 2017 12:05:53 -0500 (EST)
Organization: Compilers Central
Keywords: available, OOP

Hello,


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


Changelog:
- The performance of the function bigIPow in big_rtl.c has been
    improved by a factor of 15 (measured with gcc and valgrind when
    bitLength(123456789_**123456) is computed). Now Karatsuba
    multiplication and Karatsuba squaring is used to compute the power.
- The performance of the function uBigMult in big_rtl.c has been
    improved by 22% (measured with gcc and valgrind).
- The compiler has been improved to optimize expressions like:
        stri := stri & ....
        stri := stri[pos ..];
        stri := lower(stri);
        stri := upper(stri);
    The optimization avoids an unnecessary copy of the string result of
    the right hand side expression.
- The code generated by the compiler for the action STR_FOR has been
    improved. Now correct code is generated, when the for-statement
    loops over a string expression.
- The library seed7_05.s7i has been improved to support if-statements
    with omitted statement after the keyword 'then'.
- The functions getFile and putFile have been added to osfiles.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
    Support for the commands FILES and LOAD has been added.
- Testcases for the power operator (**) and the operators div, rem,
    mdiv and mod have been added to chkbig.sd7.
- Testcases for the new string optimizations done by the compiler have
    been added to chkstr.sd7.
- Interpreter and compiler have been improved to support the action
    PRC_IF_NOOP.
- The new library http_response.s7i has been added. It contains
    support for HTTP responses.
- The comanche webserver has been improved to work with the new
    library http_response.s7i.
- In big_rtl.c the functions bigIPow and bigIPowN have been improved
    to use uBigSquareK and uBigMultK instead of uBigSquare and
    uBigMultIntoHelp.
- In big_rtl.c an improved version of uBigDigitMult has been added and
    an older deactivated (but faster) version of uBigMult has been
    reactivated.
- In str_rtl.c the function strHeadTemp has been improved to avoid a
    heap corruption for the strange corner case that shrinking a memory
    area fails. Additionally this can only happen with the new compiler
    optimization that generates the expression:
        aString = strHeadTemp(aString, anIndex);
- The functions uBigMultIntoHelp and uBigSquare have been removed from
    big_rtl.c
- In flt_rtl.c the functions fltDgts and fltSci have been improved to
    work correct, when printf() does not have a fixed maximum for the
    float precision.
- The program chkccomp.c has been changed such that several test
    programs link with SYSTEM_LIBS, when wide variants of system file
    funtions are tested.
- The test programs of chkccomp.c, which determine BOOLTYPE,
    FLOAT_ZERO_DIV_ERROR, PRINTF_FMT_E_MAXIMUM_FLOAT_PRECISION and
    PRINTF_FMT_F_MAXIMUM_FLOAT_PRECISION have been improved.
- The test programs of chkccomp.c, which determine database include
    files have been improved to use something from the include file.
    This way the correct include file is selected when a C compiler just
    warns about a missing include file instead of flagging an error.


Regards,
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.


Post a followup to this message

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