Related articles |
---|
Seed7 Release 2014-02-16 mertesthomas@gmail.com (2014-02-16) |
From: | mertesthomas@gmail.com |
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 |
Hello,
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).
Changelog:
- 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
sequence.
- The conversion functions 'bytes' and 'bytes2Int' in bytedata.s7c
have been improved to support all combinations of signedness and
endianess.
- The functions bStriBe and bStriLe have been removed from
bstring.s7i. The function 'bytes' in bytedata.s7c can be used as
replacement.
- 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
prot_bstri.
- 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
actions INT_BYTES_BE, INT_BYTES_LE, INT_BYTES_BE_2_INT and
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.
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.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.