Seed7 Release 2016-03-30
Sun, 3 Apr 2016 10:34:44 -0400 (EDT)

          From comp.compilers

Related articles
Seed7 Release 2016-03-30 (2016-04-03)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Sun, 3 Apr 2016 10:34:44 -0400 (EDT)
Organization: Compilers Central
Injection-Info:; posting-host=""; logging-data="95584"; mail-complaints-to=""
Keywords: available, OOP
Posted-Date: 03 Apr 2016 10:34:44 EDT


I have released a new version of Seed7: seed7_05_20160330.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 makefile mk_clangw.mak has been added. This makefile supports
    compilation under Windows with the clang compiler.
- The experimental function parentDir has been added to osfiles.s7i.
- The experimental function getServerCertificate has been added to
- The compiler (s7c) has been improved to use the function
    strAppendN, when two or more strings are appended to a string.
- Tests for string append (operator &:= ) have been added to
- The function strAppendN has been added to str_rtl.c.
- The function strCopy in str_rtl.c has been simplified.
- The program chkccomp.c has been improved to write a definition of
    CHAR_BIT, when it is not defined in limits.h.
- Several files have been changed to use CHAR_BIT instead of the
    literal 8.
- in chkccomp.c several string literals have been changed to wide
    string literals (e.g. L"abc" instead of "abc").
- In several files integer literals have been replaced by contants or
    #define macros.
- The function __mulodi4 has been added to int_rtl.c. This function
    is used by clang under Windows, but unfortunately is not part of the
    runtime library. This situation is recognized by chkccomp.c and the
    function __mulodi4 in int_rtl.c is used instead.

Changelog from version 2016-02-29:
- The function fltCmp in flt_rtl.c has been improved to work correct
    in the case that isnan returns neither 0 nor 1 (Many thanks go to
    Arnel L. for reporting this problem).
- The function determineGetaddrlimit in chkccomp.c has been improved
    to include <sys/types.h> before <sys/resource.h>. FreeBSD needs
    that to work correctly (Many thanks go to Pietro Cerutti for
    providing a fix and explaining the background.
- The function getOsCwd has been added to cmd_rtl.c. With this
    function it is possible to read (e.g. under Linux) a current
    working directory that is longer than PATH_MAX.
- Documentation comments have been improved in encoding.s7i.
- The program chkccomp.c has been improved to write definitions of
    os_dirent_struct, os_opendir, os_readdir, os_closedir,
    os_utime_orig, os_utime, os_chdir, OS_GETCWD_MAX_BUFFER_SIZE,
    os_getcwd, os_mkdir, os_rmdir, OS_CHMOD_INCLUDE_IO_H, os_chmod,
    os_remove, os_rename, os_system, os_fopen, os_popen, os_pclose,
    DEFINE_WGETENV, os_getenv
- The functions keys_helem and values_helem in hshlib.c and
    hsh_rtl.c have been improved to use a loop instead of a tail
    recursion. For compilers that don't recognize the tail recursion
    this results in a speed improvement (Gcc recognizes tail
    recursions so there is no speed improvement).
- The functions free_helem and free_hash in hsh_rtl.c have been
    improved to stop searching for helems as soon as the last helem
    has been freed.
- The functions helem_data_to_list and helem_key_to_list have been
    improved to use a loop instead of a tail recursion (see above).

Changelog from version 2016-01-30:
- A code page for pdf doc encoding has been added to charsets.s7i.
- An optimization for the length of concatenated strings has been
    added to the compiler (in file str_act.s7i).
- Checks for the string length function have been added to
- The checks for the string operators := and &:= have been rewritten
    to use one line for each testcase.
- The example program rever.sd7 has been improved to allow a level
    of 10.
- The compiler has been improved to create code that raises the
    exception ACTION_ERROR, when at runtime no implementation function
    is found for an interface function.
- The performance of the hash table functions keys (which returns
    all keys) and values (which returns all values) has been improved
    in interpreted and compiled programs. For an average testcase
    hshKeys() (in hsh_rtl.c) now uses only 27% of the previous runtime
    (measured with gcc and valgrind).
- In hshlib.c the performance of the functions free_hash,
    keys_helem, keys_hash, values_helem, values_hash, for_helem,
    for_hash, for_key_helem, for_key_hash, for_data_key_helem and
    for_data_key_hash has been improved.
- In hsh_rtl.c the performance of the functions free_hash,
    keys_helem, keys_hash, values_helem and values_hash has been
- In listutl.c the performance of the functions helem_data_to_list,
    hash_data_to_list, helem_key_to_list and hash_keys_to_list has
    been improved.
- Several functions in cmd_rtl.c have been improved to work
    correctly, when logError is activated (os_path is freed now after
    its last use in logError).

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.