Seed7 Release 2019-12-15 (and 2019-11-17)
Mon, 16 Dec 2019 13:34:27 -0800 (PST)

          From comp.compilers

Related articles
Seed7 Release 2019-12-15 (and 2019-11-17) (2019-12-16)
| List of all articles for this month |

Newsgroups: comp.compilers
Date: Mon, 16 Dec 2019 13:34:27 -0800 (PST)
Organization: Compilers Central
Injection-Info:; posting-host=""; logging-data="86158"; mail-complaints-to=""
Keywords: available, OOP
Posted-Date: 16 Dec 2019 17:25:05 EST


I have released a new version of Seed7: seed7_05_20191215.tgz
The download is here:
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 database libraries sql_srv.c and sql_cli.c have been improved to
    allow the connection to a SQL Server database from Linux. The library is used to do the actual communication with the
- The build system of Seed7 has been improved. Logic regarding X11,
    ncurses and the databases has been moved from the makefiles to
- The build for Linux has been improved to work even if essential
    header files (for X11 or ncurses) are missing. This should only be
    used, if it is impossible to install the development packages of X11
    or ncurses.
- The example program chkdb.sd7 has been improved to do tests for SQL
- In the FAQ the explanation of "What is necessary to compile Seed7
    with database connections", has been improved.
- In chkccomp.c the functions findIncludeFile(), findStaticLib(),
    findLinkerOption(), listDynamicLibs() and determineConsoleDefines()
    have been added.
- In chkccomp.c the functions determineEnvironDefines(),
    determineStatFunctions(), determineX11Includes(),
    determineMySqlDefines(), determineSqliteDefines(),
    determinePostgresDefines(), determineOdbcDefines(),
    determineOciDefines(), determineFireDefines(), determineDb2Defines(),
    determineSqlServerDefines(), determineIncludesAndLibs() and main()
    have been improved.
- The files fwd_term.c and fwd_term.h have been added. The functions in
    fwd_term.c forward calls to a shared terminfo library.
- The files con_inf.c, kbd_inf.c, kbd_poll.c, trm_cap.c and trm_inf.c
    have been improved to work with fwd_term.c and fwd_term.h.
- The file fwd_x11.c has been added. The functions in fwd_x11.c forward
    X11 calls to a shared X11 library. Fwd_x11.c is used, if it is not
    possible to link to a static X11 library.
- The file x11_x.h has been added. This file is used, if no X11 include
    file can be found.
- The files drw_x11.c and gkb_x11.c have been improved to work with
    x11_x.h and x11_x.h.
- The makefiles have been adjusted to work with the new build system.
- The program warn.c has been added. This program writes a warning, if
    header files of X11 or ncurses are missing.
- Documentation has been added to read_me.txt.
- In dll_win.c the function dllOpen() has been improved to assure, that
    a path to a DLL uses a backslash as path delimiter. This is required
    by the function LoadLibrary().
- The files bin/call_cl.bat and bin/call_lib.bat have been removed.

Changes from Seed7 version 2019-11-17:
- Support for mice with forward and back button has been added to the
    Seed7 run-time library. Many thanks go to Zachary Menzies, for
    driving my focus towards mice with additional buttons.
- Support for the C compiler from Visual Studio 2019 has been added.
    Many thanks go to Alexander Yu. Vlasov for pointing out compilation
    problems with Visual Studio 2019 and for investigating the problems.
- Interpreter and compiler have been improved to support DB2 and SQL
    Server databases.
- In the manual the chapter about the database abstraction API has been
- The compiler has been improved to optimize the function replace()
    (action STR_REPL). Special functions (strChRepl() and strChChRepl())
    are used, if the searched or the replaced string consist of one
    character. This works even, if a character is converted to a string
    with the function str().
- Testcases for replace() have been added to chkstr.sd7.
- The program bigfiles.sd7 has been improved to search for the biggest
    directories additionally to the biggest files.
- The libraries keybd.s7i and keydescr.s7i have been improved to
- The library sql_base.s7i and the programs db7.sd7 and sql7.sd7 have
    been improved to support DB_DB2 and DB_SQL_SERVER.
- In striutl.c the function stri_to_standard_path() has been improved,
    to do a smarter mapping from a DOS/Windows path to the Seed7 standard
    path representation.
- In osfiles.s7i the functions makeParentDirs() and convDosPath() have
    been improved. Now convDosPath() and stri_to_standard_path() use the
    same algorithm to map from a DOS/Windows path to the Seed7 standard
    path representation.
- The function strChChRepl() has been added to str_rtl.c.
- The program chkccomp.c has been improved to define the macros
- The functions determineDb2Defines() and determineSqlServerDefines()
    have been added to chkccomp.c.
- The names of database DLLs (shared libraries) has been moved from
    the makefiles to chkccomp.c.
- The database driver sql_odbc.c has been refactored to be based on
    sql_cli.c. Most of the contents of sql_odbc.c has been moved to
    sql_cli.c and sql_odbc.c now includes sql_cli.c.
- The new database drivers sql_db2.c (for DB2) and sql_srv.c (for SQL
    Server) have been added. Like sql_odbc.c this drivers also include
- In cmd_rtl.c the function cmdChdir() has been improved to use an
    extended length path only, if it is absolutely necessary. In Windows
    an extended length path starts with \\?\ and can have a length
    greater equal 260. Many subprocesses cannot handle a current working
    directory with an extended length path.
- The makefiles mk_msvc.mak and mk_clangw.mak have been improved to
    write INI files with all environment variables. The INI files are
    seed7/bin/cl_env.ini and seed7/bin/clangenv.ini. This INI files
    contain the environment variables necessary to use the C compiler.
- The program setpaths.c has been improved to optionally write a
    definition of the macro CC_ENVIRONMENT_INI to version.h. The macro
    CC_ENVIRONMENT_INI defines the path of seed7/bin/cl_env.ini or
- Support for the configuration values CC_ENVIRONMENT_INI and
    DATABASE_LIB has been added to cc_conf.s7i and cmd_rtl.c (in
- The function unsetenv7() has been added to cmd_unx.c.
- In gkb_x11.c and gkb_x11.c the functions gkbGetc() and
    gkbKeyPressed() have been improved to support KEY_MOUSE_FWD and
    KEY_MOUSE_BACK. Additionally the macro TRACE_EVENTS, to optionally
    trace events has been introduced.
- The makefiles have been improved to create the new library s7_db.a
    (s7_db.lib), which contains all database drivers.
- The files sql_cli.c (former sql_odbc.c) and sql_fire.c have been
    improved to reduce the number of C compiler warnings.
- In sql_cli.c (former sql_odbc.c) the function setDbErrorMsg() has
    been improved to work for database error messages with Unicode
    characters. The function wstri_to_cstri8() has been added to do the
- The file db_odbc.h has been improved to define wide character
    functions instead of ASCII functions. This was needed by sql_srv.c
    because it links dynamically to sqlsrv32.dll, which only defines
    wide character functions.

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.