HomeFreeBSD

lang/seed7: update to 05_20191229

Description

lang/seed7: update to 05_20191229

20191229:

  • Spelling corrections have been done in several files. Many thanks go to Jens Schleusener, for sending a source code misspelling report from Fossies.
  • The memory management has been improved:
    • In exec.c the functions res_restore() and exec_action() have been improved to free unneeded memory, in case an exception has been raised.
    • In prclib.c the functions prc_block(), prc_block_catch_all() and prc_block_otherwise() have been improved to free the fail_expression, in case an exception has been caught.
    • In numutl.c the function getDecimalBigRational() has been improved to free the temporary string.
    • In sql_rtl.c the function sqlColumnBigRat() has been improved to free the old values of numerator and denominator.
  • In sql_base.s7i the function openDatabase() with DB_ODBC and dbPath has been improved to use a DSN (data source name), if colon and slash are missing. E.g.: openDatabase(DB_ODBC, "anyDsn", "test", "test")
  • The compiler has been improved to support the action PRC_HEAPSTAT.
  • In flistutl.c the functions heapStatistic() and check_heap() have been improved to consider processes, sql functions, databases, prepared statements and fetched data. The function heap_statistic() has been renamed to heapStatistic().
  • In sql_cli.c the functions sqlColumnBigInt(), sqlColumnBigRat(), sqlColumnBStri(), sqlColumnFloat() and sqlColumnStri() have been improved to check, if the length returned by the database is greater than the buffer_length. In this case a DATABASE_ERROR is raised.
  • In sql_cli.c the function setDecimalBigRat() has been improved to convert integers to a string without decimal point.
  • The function SQLGetFunctions() has been removed from db_odbc.h, sql_cli.c and the makefiles (variable OBJCOPY_PARAMS).
  • In sql_cli.c the element SQLDescribeParam_supported has been removed. Instead the function pointer of SQLDescribeParam is checked and the result of SQLDescribeParam() is compared with SQL_SUCCESS.
  • In sql_odbc.c the function driverConnect() has been improved to search only for a driver, if the driver name is not empty.
  • In sql_odbc.c the function sqlOpenOdbc() has been improved to use the dbName as DSN (data source name) only, if no driver and no server are given.
  • In sql_post.c the function setupDll() has been improved to call dllOpen() instead of a recursive call of setupDll().
  • The new macro ALLOC_RECORD2() has been added to heaputl.h. The macro is used in drw_win.c, drw_x11.c, sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c and sql_post.c.
  • The new macros COUNT_GROW_STRI() and COUNT_SHRINK_STRI() have been added to heaputl.h. This macros are currently empty. They are planned for a heap statistic concerning unused chars in strings with capacity.
  • In chkccomp.c several improvements have been done. In determineFireDefines() a search for the Firebird home directory has been added. In determineDb2Defines() the environment variable DB2_HOME is used now, to determine the Db2 home directory. In determineConsoleDefines() and determineSqlServerDefines() the list of DLLs has been improved.
  • The heap statistic for strings has been improved to use the string capacity instead of the string size.
  • The file config.h has been changed to define the macros USE_ALTERNATE_NEXT_CHARACTER, USE_INFILE_BUFFER, USE_CHUNK_ALLOCS, USE_ALTERNATE_CHUNK_ALLOCS and USE_MAXIMUM_MALLOC_CHECK always. Now these macros can have a value of 0 or 1.

20191215:

  • 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 libtdsodbc.so is used to do the actual communication with the database.
  • The build system of Seed7 has been improved. Logic regarding X11, ncurses and the databases has been moved from the makefiles to chkccomp.c.
  • 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 Server.
  • 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.

20191117:

  • 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 improved.
  • 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 support KEY_MOUSE_FWD and KEY_MOUSE_BACK.
  • 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 REMOVE_REATTEMPTS, SETENV_ALLOWS_KEY_WITH_EQUALS_SIGN and GETENV_ALLOWS_KEY_WITH_EQUALS_SIGN.
  • 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 sql_cli.c.
  • 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 seed7/bin/clangenv.ini.
  • Support for the configuration values CC_ENVIRONMENT_INI and DATABASE_LIB has been added to cc_conf.s7i and cmd_rtl.c (in cmdConfigValue()).
  • 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 conversion.
  • 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.

20191020:

  • The support for Emscripten has been improved to allow the compilation of Seed7 programs.
  • Improvements have been done in sql_odbc.c to support the connection with a DB2 database.
  • Testcases for pos() and rpos() have been added to chkstr.sd7.
  • The compiler has been improved to optimize the functions pos() and rpos() (actions STR_POS, STR_RPOS, STR_CHPOS, STR_RCHPOS).
  • The program setwpath.c has been improved to work correct in more situations (E.g.: If no PATH variable exists, if the path to be added is a substring of an existing path, if the first path in the PATH variable is to be removed, if there is only on path in the PATH variable and this path is to be removed).
  • In fil.unx.c the function setupFiles() has been improved to mount the file systems for Emscripten and node.js with a better strategy.
  • In sql_odbc.c the function sqlStmtColumnName() has been improved to work with one call of SQLColAttributeW(), if the length of the column name is below a limit. Additionally a parameter of NULL as destination for the name has be replaced by a valid address. The usage of NULL triggered an error with DB2.
  • The configuration value LINKED_PROGRAM_EXTENSION has been added to cc_conf.s7i. The linker produces a file with the extension defined by LINKED_PROGRAM_EXTENSION. Usually LINKED_PROGRAM_EXTENSION is identical to EXECUTABLE_FILE_EXTENSION. Except for Emscripten where, the value is ".js".
  • The makefiles mk_emccl.mak and mk_emccw.mak have been improved to define LINKED_PROGRAM_EXTENSION.
  • The compiler (s7c.s7i), the function getProgramName() in arr_rtl.c, the function cmdConfigValue() in cmd_rtl.c and the program chkccomp.c have been improved to use LINKED_PROGRAM_EXTENSION.
  • In chkccomp.c the function determineEnvironDefines() has been improved to determine, if getenv() works case sensitive. A definition of GETENV_IS_CASE_SENSITIVE, with a value of 0 or 1, is written to version.h.
  • The function getSearchPathDelimiter() has been added to cmd_rtl.c. This function is used if SEARCH_PATH_DELIMITER is 0. In this case the search path delimiter must be determined at run-time.
  • The function systemForNodeJs() has been added to cmd_rtl.c. This function is used for Emscripten and node.js as replacement for the C run-time library function system().
  • The files sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c have been improved to work correct, if no database include file could be found. Normally this should not happen, because Seed7 can provide its own database include files.
  • The functions getenv7() and setenv7() have been added to cmd_unx.c. This functions are used for Emscripten, because of a limitation in the Emscripten implementations of getenv() and setenv().
  • Documentation comments have been improved in external_file.s7i, file.s7i, leb128.s7i, scanfile.s7i, scanstri.s7i and string.s7i.
  • Comments explaining the usage of undefined behavior have been added to arrlib.c, bstlib.c, set_rtl.c and strlib.c.

20190919:

  • A chapter about the database abstraction API has been added to the manual.
  • In the manual the chapters about primitive actions and about the foreign function interface have been improved.
  • An explanation of the Seed7 installer and about the download of Seed7 have been added to the FAQ.
  • The new library ico.s7i has been added. This library supports the ICO image file format.
  • The library browser.s7i has been improved to be more robust regarding network events.
  • The database drivers have been improved to raise a DATABASE_ERROR, if the database library could not be found. The error message of the DATABASE_ERROR contains the name of the missing DLL respectively shared object library.
  • Documentation comments have been improved in 85 library/include files (*.s7i). Wrong usages of the word "when" have been replaced by "if".
  • Documentation comments have been improved in 96 C source files. Wrong usages of the word "when" have been replaced by "if".
  • Texts in 9 Seed7 programs (*.sd7) and in a lot of documentation files have been improved. Wrong usages of the word "when" have been replaced by "if".

20190819:

  • A definition of SQL_DRIVER_NOPROMPT has been added to db_odbc.h. Many thanks go to Brett Senior for pointing out a fatal compilation error in sql_odbc.c, when compiling Seed7 version 2019-08-18 under Debian Linux.
  • The example program chkdb.sd7 has been improved to write better error messages.
  • In reflib.c the function ref_select() has been improved to work correct, if a derived struct overrides an element of the parent struct.

Details

Provenance
gahrAuthored on
Parents
rP523008: - Update to 1.13.2
Branches
Unknown
Tags
Unknown