Seed7 Release 2014-12-07
Mon, 8 Dec 2014 00:02:03 -0800 (PST)

          From comp.compilers

Related articles
Seed7 Release 2014-12-07 (2014-12-08)
Re: Seed7 Release 2014-12-07 (2014-12-11)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Mon, 8 Dec 2014 00:02:03 -0800 (PST)
Organization: Compilers Central
Keywords: available, OOP
Posted-Date: 09 Dec 2014 17:39:15 EST


I have released a new version of Seed7: seed7_05_20141207.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 paragraph in src/read_me.txt, that desribes the compilation
    under Mac OS X, has been improved.
- The function bigIPow1 in big_rtl.c has been changed to call
    bigLog2BaseIPow instead of bigLShiftOne when the base is a power of
    two. This avoids an integer overflow when the shift count is
- The function fltIPow in flt_rtl.c has been changed to avoid a
    division by zero when CHECK_FLOAT_DIV_BY_ZERO has been defined.
- The function fltIPow in flt_rtl.c has been improved to return
    -Infinity for (-0.0) ** n when n is negative.
- The function uint_rand (in int_rtl.c) has been renamed to uintRand
    and changed to ommit the initialisation of the random seed.
- The function setupRand has been added to int_rtl.c. This function
    initializes the random seed of uintRand.
- The function uintRandLimited has been added to int_rtl.c.
- The runtime of the integer random number generator has been reduced
    to 45%.
- The compiler has been improved to generate optimized code for
    special cases of the action INT_RAND. For special cases the
    functions uintRand and uintRandLimited are used instead of intRand.
- The compiler has been improved to optimize the binomial coefficient
    operator (infix operator symbol: ! ).
- Tests for the binomial coefficient (infix operator symbol: ! ) have
    been added to chkint.sd7 and chkovf.st7
- Tests for the integer random number generator have been added to
- Tests for powers of negative zero have been added to chkflt.s7i.
- The database interface headers db_lite.h, db_my.h, db_oci.h,
    db_odbc.h and db_post.h have been added. This include files are
    used when the original database include files are not available.
- The functions decimalValue and basedValue in numlit.c have been
    improved to use an unsigned integer value and a simplified test for
    the maximum value of a literal. The change reduces the runtime of
    decimalValue by 6% (measured with gcc and valgrind).
- The function intBinom (in int_rtl.c) has been improved to work
    correctly as long as the result is representable in an integer of
    type intType. When the result is not representable in an integer
    the exception OVERFLOW_ERROR is raised.
- The function uintBinomNoChk has been added to int_rtl.c. This
    special case function is used by the compiler, when n_number is
    less than a limit.
- The function intSafeMult has been renamed to intMultOvfChk.
- The makefile mk_osxcl.mak has been added. This makefile supports
    compilation under Mac OS X with the clang compiler.
- The file sql_ite.c has been renamed to sql_lite.c.
- The makefiles have been improved to write additional macros to
    chkccomp.h. This macros are used by chkccomp.c to do the database
- The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c
    and sql_post.c have been improved.
- The configuration program chkccomp.c has been improved:
    - Now it writes definitions of INT8TYPE and INT16TYPE to version.h.
    - Now it adds /opt/X11/include to the include path, when
        /usr/include/X11 does not exist. This is required for Mac OS X.
    - The functions that write define macros for databases have been
        improved to take the new database interface headers (db_*.h) into

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.