Related articles |
---|
Seed7 Release 2014-07-20 mertesthomas@gmail.com (2014-07-20) |
From: | mertesthomas@gmail.com |
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 |
Hello,
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).
Changelog:
- 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
occurs.
- 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
OVERFLOW_ERROR.
- 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
interprRaiseError.
- 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.
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.