Seed7 Release 2016-12-31
Sat, 31 Dec 2016 08:31:33 -0800 (PST)

          From comp.compilers

Related articles
Seed7 Release 2016-12-31 (2016-12-31)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Sat, 31 Dec 2016 08:31:33 -0800 (PST)
Organization: Compilers Central
Injection-Info:; posting-host=""; logging-data="11776"; mail-complaints-to=""
Keywords: OOP, available
Posted-Date: 31 Dec 2016 11:47:24 EST


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

- The function toArray has been added to the libraries bitset.s7i,
    bitsetof.s7i and hashsetof.s7i. This function creates an array
    with all values from a given set.
- Experimental functions to access TAR and ZIP archives as file system
    have been added to tar.s7i and zip.s7i. This is work in progress, so
    the API might change.
- The compiler has been improved to work correctly with a C++ compiler
    backend (Now it uses strRaiseError insead of intRaiseError) for the
    code generated for BIN_RADIX and INT_RADIX.
- The compiler has been improved to use sigaction(), when available
- The compiler has been improved to reactivate the signal handler,
    when necessary (SIGNAL_RESETS_HANDLER is TRUE).
- Testcases for the parse function with whitespace and control
    characters have been added to chkbig.sd7.
- in big_gmp.c the functions bigParse and bigParseBased have been
    improved, to raise RANGE_ERROR when whitespace characters are in the
- The configuration values HAS_SIGACTION and SIGNAL_RESETS_HANDLER
    have been added to cc_conf.s7i.
- The program chkccomp.c has been improved to define
- The function checkMoveDirectory has been removed from chkccomp.c.
- In several files the literal 8 has been replaced by CHAR_BIT, when 8
    refers to the number of bits is a char.
- Several integer literals have been replaced by defined constants.
- Documentation comments have been added or improved in bitset.s7i,
    bitsetof.s7i, hashsetof.s7i, cc_conf.s7i, ftp.s7i, tar.s7i, zip.s7i,
    arrlib.c, arr_rtl.c, big_rtl.c, conlib.c, dll_unx.c, dll_win.c,
    fillib.c, fil_rtl.c, heaputl.c, hshlib.c, hsh_rtl.c, numlit.c,
    numutl.c, pcs_unx.c, pcs_win.c, pol_dos.c, pollib.c, pol_sel.c,
    pol_unx.c, sctlib.c, setlib.c, set_rtl.c, str_rtl.c and typlib.c.

Changelog from version 2016-12-04:
- A description, how compiler optimizations can reduce the potential
    of integer overflow, has been added to the manual.
- Documentation comments have been improved in cc_conf.s7i,
    integer.s7i, int_rtl.c, stat_win.c and tim_win.c.
- The compiler has been improved to optimize expressions, where
    several terms are added or subtracted in combination with the
    functions succ or pred. It is possible to combine adjacent constant
    terms at compile time. This simplifies overflow checks.
- The compiler has been improved to optionally generate programs,
    that trace function calls. This is activated with the option -tf.
- Checks have been added to chkint.sd7, where several terms are added
    in combination with the functions succ or pred.
- The functions wstati64Ext (in stat_win.c) and alternate_utime (in
    tim_win.c) have been improved to avoid the strange time adjustments
    of windows for Daylight Saving Time: For the same file different
    times are retrieved respectively set in summer and winter. Now the
    times do not depend on the time when they are retrieved or set.
- In stat_win.c a check for wildcards in a path has been removed from
- The performance of dirRead in dir_rtl.c has been improved by 10%
    (measured with gcc and valgrind). A smarter check for the
    directories . and .. reduces the CPU time used.
- In cmd_rtl.c the functions remove_dir and copy_dir have been
    improved with a smarter check for the directories . and .. to
    reduce the CPU time used.
- The function getSearchPath in cmd_rtl.c has been improved to work
    correctly, when there is no environment variable named PATH.
- Definitions of macros to check the st_mode field of struct stat
    (e.g. S_ISDIR, S_ISREG, etc.) have been moved from fil_rtl.h to
- The program chkccomp.c has been improved to work correct, when
    C compiler options are separated by linefeeds (\n). In this case the
    linefeeds are replaced by spaces. The linefeeds are used in
    cc_conf.s7i to allow the definition of SYSTEM_DB_LIBS as an array of
    database libraries.
- In sudo.c the call of ShellExecute() has been replaced by a call of
- A definition of FMT_T, a printf format for time_t values, has been
    added to common.h.
- The makefile mk_clangw.mak has been improved to use the library
    extension ".lib".
- Calls of logFunction and logError have been added or improved in
    cmd_rtl.c, cmd_win.c, gkb_win.c, flt_rtl.c, int_rtl.c, pcslib.c,
    reflib.c, rfllib.c, stat_win.c and tim_win.c.
- In dir_rtl.c the function readVolumeName has been improved to
    consider only directories as volumes.
- In int_rtl.c the functions uint_mult, uint2_mult and uint2_add
    have been renamed to uintMult, uint2Mult and uint2Add respectively.
- In stat_win.c the functions filetime_to_unixtime and
    fileattr_to_unixmode have been renamed to fileTime2UnixTime and
    fileAttr2UnixMode respectively.
- In tim_win.c the function alternate_utime has been improved to
    avoid calling os_utime_orig, because the utime functions of Windows
    do different time adjustments for the same time in summer and

Changelog from version 2016-10-31:
- The examples about multiple dispatch in the FAQ and in the manual
    have been changed.
- In dir_win.c the functions opendir and wopendir have been improved
    to work correctly, when a volume is empty. FindFirstFile returns
    INVALID_HANDLE_VALUE, when the path refers to an empty volume
    (a directory that does not contain the . and .. directories).
    After FindFirstFile fails GetFileAttributesEx is used to recognize
    empty volumes.
- In stat_win.c the function wstati64Ext has been improved to
    recognize empty volumes correctly. Now GetFileAttributesEx is used
    instead of FindFirstFile to get information about a file.
- The function openVolumeList has been moved from cmd_win.c and
    cmd_unx.c to dir_win.c.
- The definition of volumeListType has been moved from cmd_drv.h to
- In str_rtl.c the function strAppendN has been improved to work
    correctly, when an appended string is identical to the destination
    or a slice of it. There was already code to handle this case, but
    this code could access freed memory in rare situations.
- The makefiles mk_nmake.mak and mk_msvc.mak have been changed to
    include the file 'macros' before the macro SYSTEM_DB_LIBS is used.
- Rand functions have been added to bin32.s7i and bin64.s7i.
- The compiler has been improved to optimize the float shift
    operators << and >> .
- Documentation comments have been improved in float.s7i,
    integer.s7i, osfiles.s7i, big_gmp.c, big_rtl.c, bstlib.c and

Changelog from version 2016-10-02:
- Definitions of float shift operators << and >> have been added to
    float.s7i (A << B is equivalent to A * 2.0 ** B and A >> B is
    equivalent to A / 2.0 ** B).
- Checks for the operators << and >> have been added to chflt.sd7.
- Interpreter and compiler have been improved to support the primitiv
    actions FLT_LSHIFT and FLT_RSHIFT.
- The example program find7.sd7 has been added. This program is an
    utility to search for files and file contents.
- Documentation comments have been added to arrlib.c, biglib.c,
    blnlib.c, bstlib.c, fillib.c, pcslib.c, prclib.c, prglib.c and

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.