Seed7 Release 2014-02-16
Sun, 16 Feb 2014 02:36:40 -0800 (PST)

          From comp.compilers

Related articles
Seed7 Release 2014-02-16 (2014-02-16)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Sun, 16 Feb 2014 02:36:40 -0800 (PST)
Organization: Compilers Central
Keywords: available, OOP
Posted-Date: 16 Feb 2014 13:59:08 EST


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

- A new numeric escape sequence for string literals has been
    introduced. A backslash followed by an integer literal and a
    semicolon is interpreted as character with the specified ordinal
    number. E.g.: "abc\128;def". With the old numeric escape sequence
    this would be "abc\128\def". Terminating the escape sequence
    with ; instead of \ improves the readability, especially when
    escape sequences follow each other. Instead of "\8\\12\\7\8\9\\\"
    it is now possible to write "\8;\12;\7;8\9;\\" The old escape
    sequence is still supported, but it is deprecated and should not
    be used. Future versions will warn about the deprecated escape
- The conversion functions 'bytes' and 'bytes2Int' in bytedata.s7c
    have been improved to support all combinations of signedness and
- The functions bStriBe and bStriLe have been removed from
    bstring.s7i. The function 'bytes' in bytedata.s7c can be used as
- Checks for lowestSetBit and UNSIGNED conversions with the
    functions 'bytes' and 'bytes2Int' have been added to chkint.sd7.
- Checks for UNSIGNED conversions with the functions 'bytes' and
    'bytes2BigInt' have been added to chkbig.sd7.
- Checks for the function rand have been added to chkset.sd7.
- The parser has been improved to write error messages when the
    source file contains unexpected UTF-8 continuation bytes, solitary
    UTF-8 start bytes, extended control codes from the C1 set or an
    UTF-16 byte order mark.
- In tar.s7i the functions getoct, putspc and putoct have been
    improved. The computation of the size of padding data has also
    been improved.
- The compiler has been improved to optimize string initialisations
    with the function strZero. StrZero creates a string of arbitrary
    length with '\0;' (zero) bytes.
- The compiler has been improved to optimize integer exponentiation
    (action INT_POW). Now the multiplication pattern is determined at
    compile time and the number of multiplications is reduced.
- The performance of the function setCard in set_rtl.c has been
    improved by a factor of 2.5.
- The performance of the function setRand in set_rtl.c has been
    improved by a factor of 2.3.
- Loop unrolling inspired by Duff's device has been introduced in
    striutl.h. The unrolling is used for tight loops which copy byte
    data to Seed7 strings in fil_rtl.c, soc_rtl.c and bst_rtl.c. The
    performance improvement has been verified with gcc and valgrind.
- The example program err.sd7, which checks compile time error
    messages, has been improved.
- The old way to store the data of constant bigIntegers has been
    removed from compiler and runtime library.
- The buffers used in intRadix and intRadixPow2 (file int_rtl.c) have
    been enlarged to fit for the most negative number with a base of 2.
- In itflib.c the functions itf_cpy and itf_cpy2 have been fixed to
    work correctly, when the destination is converted from a struct to
    an interface.
- In traceutl.c the tracing of characters has been improved in the
    functions prot_char, prot_os_stri, prot_stri_unquoted and
- In ut8_rtl.c the function ut8Getc has been improved to use smarter
    checks for ranges of characters.
- The deprecated variant of the function str, which has a second
    parameter to specify a numeric base, has been removed. The
    operators radix and RADIX can be used instead.
- Interpreter and compiler have been improved to support the new
    INT_BYTES_LE_2_INT. The functions intBytesBe, int_bytesBe,
    intBytesLe, int_bytesLe, intBytesBe2Int, int_bytesBe2Int,
    intBytesLe2Int and int_bytesLe2Int have been added.
- Support for the actions BIG_CLIT, INT_TO_BSTRI_BE, INT_TO_BSTRI_LE,
    INT_BYTES_BE_2_UINT and INT_BYTES_LE_2_UINT has been removed from
    interpreter and compiler. The functions bigImport, bigCLit,
    big_clit, intToBStriBe, int_toBStriBe, intToBStriLe, int_toBStriLe,
    intBytesBe2UInt, int_bytes_be_2_uint, intBytesLe2UInt and
    int_bytes_le_2_uint have been removed.

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.