|Seed7 Release 2019-03-03 firstname.lastname@example.org (2019-03-03)|
|Date:||Sun, 3 Mar 2019 10:59:32 -0800 (PST)|
|Injection-Info:||gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="94293"; mail-complaints-to="email@example.com"|
|Posted-Date:||03 Mar 2019 18:27:54 EST|
I have released a new version of Seed7: seed7_05_20190303.tgz
The download is here: https://sourceforge.net/projects/seed7/files
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
Seed7 is covered by the GPL (and LGPL for the Seed7 runtime library).
- The makefile mk_tcc_l.mak has been added. This makefile supports
compiling with the tcc C compiler under Linux.
- The makefile mk_tcc_w.mak has been added. This makefile is
experimental and supports compiling with the tcc C compiler under
- The example program brainf7.sd7 has been added. Brainf7 is a
- The example program hilbert.sd7 has been added. Hilbert displays a
- The example program queen.sd7 has been added. Queen solves the n
- The example program spigotpi.sd7 has been added. Spigotpi writes
digits of PI with a spigot algorithm.
- The new library csv.s7i has been added. This library supports
converting to and from comma-separated values (CSV).
- Several improvements in the Seed7 compiler (s7c) have been done:
- In flt_act.s7i the function to process FLT_ISNAN has been improved
to make sure, that the argument of the isnan() macro never contains
preprocessor directives (e.g. #line directives). Some C compilers
do not allow preprocessor directives in the argument list of a
macro. Many thanks go to Alexander Vlasov for reporting this
problem and for his help to find a solution.
- In comp/str_act.s7i the function optimize_str_cat has been improved
to assign the constant parts of strConcatN() outside of the actual
expression. This might open possibilities to optimize the
- The function process_forward_declaration in the compiler (s7c) has
been improved to avoid, that a prototype of a forward declared
function, is written twice.
- The function process_dynamic_param_implements has been improved to
generate a switch-statement instead of an if-then-else chain.
Additionally double entries are avoided now.
- The function process_const_func_call has been improved to assign
c_params.temp_assigns to c_expr.temp_assigns instead of
- The function processFuncValue has been improved to define the type
and the function of the actual name parameter only once (with
defineActualFuncParam()). A redefinition could happen when
functions, that call functions with name parameters, are inlined.
- The handling of the option -te (trace exceptions) has been
- The function process_const_func_declaration() has been improved to
request, that for functions using the result mechanism the result
is returned, when possible, as c_expr.expr_result. This way
process_return_value() does not need to copy this string values.
E.g. When the result of intStrToBuffer(), chrCLitToBuffer(),
chrStrMacro(), strHeadSlice(), chrStrMacro() or strTailSlice() is
used as the result value of a user defined function.
- The function defineFunctype has been added and the function
getAnyParamToTempAssigns has been improved to provide addresses
of plain INTOBJECT, FLOATOBJECT, CHAROBJECT, STRIOBJECT and
BSTRIOBJECT values. In this case the address is taken from a
- In write_file_head() and init_type_constants() the creation of type
constants has been improved.
- The functions skip() and copyFile() have been added to file.s7i.
- The function makeParentDirs() has been added to osfiles.s7i.
- In cli_cmds.s7i the function doMkdirCmd has been improved to call
the new function makeParentDirs().
- In tar_cmds.s7i the functions tarXtract and tarCreate have been
improved to avoid, that the whole file is read into a string. This
avoids a MEMORY_ERROR, when the file does not fit into a string.
- The function tarXtract has been improved to extract empty regular
files and to create non-existing parent directories (with
- In gzip.s7i the functions openGzipFile(), close() and write() have
been improved, to write the compressed data in blocks with a maximum
size. This avoids a MEMORY_ERROR, when huge files are compressed.
- In gzip.s7i the function openGunzipFile has been changed to have a
file as parameter instead of a string. This way it is not necessary
to read the whole compressed data into a string.
- A variant of the function readGzipHeader has been added to gzip.s7i.
- A variant of the function getAsciiz has been added to bytedata.s7i.
- A variant of the function crc32 has been added to crc32.s7i.
- The program ftp7.sd7 has been improved to support the commands
!ls -l, !dir, !ls, !pwd, !mkdir and !rmdir.
- The function noCtrlChars has been removed from db7.sd7 and sql7.sd7
and added to seed7_05.s7i.
- The program chkchr.sd7 has been has been improved to check the
functions literal() and c_literal().
- Tests for the function str(), when str() assigned to a variable and
when str() is called via a function, have been added to chkint.sd7.
- Tests for aString[.. pos], aString[pos ..], aString[pos1 .. pos2],
aString[pos len length], when they are called via a function, have
been added to chkstr.sd7.
- The example program chkdb.sd7 has been improved to test decimal and
numeric fields with negative values.
- In x509cert.s7i the constant stdCertificate has been improved to
have a new validity (until end of 2021).
- The program chkccomp.c has been improved to determine, if
preprocessor directives are allowed in the argument list of a macro
- In fil_rtl.c the functions filBigLng() and filLng() have been
improved to determine the file length always with os_fseek and
os_ftell. This guarantees that the correct length is returned, when
data is written to a file and it has not been flushed.
- The function ftelli64Ext() has been added to fil_win.c. This
function is used when fseeki64() is available and ftelli64() is
missing. Either fgetpos() or _telli64() is used to implement
- Calls of logFunction have been added in ref_data.c and typ_data.c.
- In sql_my.c the function sqlBindDuration() has been improved.
- In sql_odbc.c the function getNumericAsCStri() has been added.
- In sql_odbc.c the function getNumericFloat() has been improved to
convert a SQL_NUMERIC_STRUCT to a double via the decimal
- In sql_post.c the functions getNumericAsCStri(), getNumericAsStri()
and getNumericAsFloat have been improved.
- The program chkccomp.c has been improved to define the macros
'os_isatty' and 'os_fileno', when the functions isatty() and
fileno() are not available.
- A definition of 'isatty' and 'fileno' has been added to os_decls.h.
- The mechanism to check for stack overflow has been improved. By
default the mechanism is deactivated.
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
Search the comp.compilers archives again.