Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.glorb.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: mertesthomas@gmail.com Newsgroups: comp.compilers Subject: Seed7 Release 2017-03-05 Date: Wed, 8 Mar 2017 12:05:53 -0500 (EST) Organization: Compilers Central Lines: 79 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <17-03-007@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Injection-Info: miucha.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="94198"; mail-complaints-to="abuse@iecc.com" Keywords: available, OOP Posted-Date: 08 Mar 2017 12:05:53 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:1828 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.