Commit Graph

133 Commits

Author SHA1 Message Date
Pietro Cerutti a51d36440c lang/seed7: update to 05_20210106
Changelog:
- The declaration of in-parameters has been changed to work the same
  way as all other parameter declarations (val-, ref-, inout-, attr-
  and in-var-parameters). Many thanks go to Zachary Menzies for
  pointing out a problem with in-parameters and for providing a test
  program. The new in-parameters fix this problem.
- The support for function types (func aType and proc) in interpreter
  and compiler has been improved.
- The support for Emscripten (a C compiler that generates JavaScript
  and WebAssembly) has been improved. The support of Emscripten is
  experimental (see also src/read_me.txt).
- The library http_response.s7i has been improved to set the correct
  content-type for more file types (css, javascript, wasm, gif, bmp,
  pdf). This way the comanche webserver also works better.
- The function getCgiParameters() in cgi.s7i has been improved to
  accept also elements wihout equals sign (in this case value is
  assumed to be "").
- The function readPropertyFile8() has been added to the library
  propertyfile.s7i. This function processes an UTF-8 encoded property
  file.
- In propertyfile.s7i the function readPropertyNameOrValue() has been
  changed to work correct for unicode escapes (\u) and for escaped
  newlines. An extended unicode escape (\U) has been added also.
- Testcases that check if seek() does clear the EOF flag have been
  added to chkfil.sd7.
- The Seed7 parser (used by interpreter and compiler) has been
  improved, to recognize if the same syntax is declared twice. In this
  case a compile-time error is written.
- The FAQ has been improved to explain the simple profiling of the
  Seed7 compiler.
- The simple profiling of the compiler has been improved to recognize,
  if a function has been left without taking profiling into account.
- The compiler has been improved to recognize if a raise statement
  leaves a function and generates code to make the profiling work
  correct (if it has been enabled).
- The recognition of constant expressions in the compiler has been
  improved to consider variable functions as variable. The changes
  are in comp/const.s7i in two functions named isConstantCall().
- Changes have been done in seed7_05.s7i and integer.s7i such that the
  new in-parameters work as expected.
- The interpreter has been improved to support the actions DCL_IN1,
  DCL_IN2, TYP_SET_IN_PARAM_REF and TYP_SET_IN_PARAM_VALUE.
- The functions dcl_in1() and dcl_in2() have been added to dcllib.c.
- The functions typ_set_in_param_ref() and typ_set_in_param_value()
  have been added to typlib.c.
- Changes in syntax.c and token.c make sure that the new error
  SYNTAX_DECLARED_TWICE is recognized.
- In prclib.c the function prc_cpy() has been improved to take into
  account that MATCHOBJECT is constant (and the underlaying object
  is variable).
- In cmd_unx.c the function setenv7() has been improved to work
  correct, if a value is enlarged.
- In cmd_unx.c the functions getenv7(), setenv7() and unsetenv7() have
  been improved to optionally work case insensitive.
- Changes in cmd_drv.h, cmd_rtl.c and fil_unx.c allow that some
  operating system properties are determined at run-time. This is used
  for Emscripten.
- The functions setenvForNodeJs() and unsetenvForNodeJs() have been
  added to cmd_unx.c. Now setenv() and unsetenv() have also an effect
  on the environment used by Node.
- The file drw_emc.c has been added. This file provides graphic access
  using browser capabilities. It is used if Seed7 is compiled with
  emcc.
- The file pre_js.js has been added. This JavaScript code is included
  by Emscripten. It sets up program path and arguments, if the program
  runs in the browser.
- In cmd_rtl.c the function systemForNodeJs() has been improved to
  return -1, if the command cannot be executed.
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  store the environment variables in seed7/bin/emcc_env.ini. The macro
  CC_ENVIRONMENT_INI, which defines the path of seed7/bin/emcc_env.ini,
  is now written to version.h. This way the Seed7 compiler can be used
  without setting up Emscripten.
- Changes have been done in error.c and error.h to introduce the new
  errors SYNTAX_DECLARED_TWICE and KIND_OF_IN_PARAM_UNDEFINED. The
  error UNEXPECTED_SYMBOL has been replaced with EXPECTED_SYMBO.
- The functions increaseLevelOfCatchedExceptions() and
  decreaseLevelOfCatchedExceptions() have been added to comp/error.s7i.
  These functions are used in comp/prc_act.s7i.
- In comp/expr.s7i the function declare_type_if_necessary() has been
  improved to take a existing typeCategory of BLOCKOBJECT into account.
- In comp/type.s7i the function getExprResultType() has been improved
  to check that the category is a CALLOBJECT.
- Definitions of LINKER_OPT_SPECIAL_LIB and SPECIAL_LIB have been added
  to cc_conf.s7i.
- The files s7c.sd7, confval.sd7, cmd_rtl.c, mk_emccl.mak and
  mk_emccw.mak have been improved to use the new configuration values.
- The parameter list of the functions cmdSetGroup() and cmdSetOwner()
  has been changed in comp/cmd_act.s7i, cmd_drv.h, cmd_unx.c and
  cmd_win.c. Now group and owner are constant strings.
- Documentation comments have been added or improved in cc_conf.s7i,
  cgi.s7i, csv.s7i, propertyfile.s7i and graph.s7i.
2021-01-11 17:04:05 +00:00
Pietro Cerutti db7fc24e0e lang/seed7: update to 05_20201208
Relnotes:	https://github.com/ThomasMertes/seed7/blob/a19763a/doc/chlog.txt
2020-12-11 17:29:54 +00:00
Pietro Cerutti 7564c1edb4 lang/seed7: update to 05_20200531
20200531:
- The libraries tar.s7i, cpio.s7i and rpm.s7i have been improved such
  that the file system functions follow symbolic links (inside of the
  archive).
- The library zip.s7i has been improved to support the functions
  setFileMode(), setMTime() and putFile().
- The library ar.s7i has been improved to allow UTF-8 file names and to
  support the functions setFileMode(), setMTime(), putFile() and
  removeFile().
- The library rpm.s7i has been improved to support a LZMA compressed
  payload.
- The library cpio.s7i has been improved such that setFileMode(),
  putFile() and mkdir() work correct.
- The library lzma.s7i has been fixed such that xz.s7i can handle
  uncompressed chunks in an XZ archive. A bug in the function length()
  has been fixed also.
- The new library fileutil.s7i has been added. This library supports
  inserting and deleting areas in a file. The function copyFile, which
  copies data between open files, has been moved from file.s7i to
  fileutil.s7i.
- The function truncate(), which changes the length of a file, has been
  added to file.s7i, external_file.s7i, clib_file.s7i, strifile.s7i and
  utf16.s7i.
- The library iobuffer.s7i has been improved to allow switching between
  reading and writing (and vice versa) as long as seek() is called in
  between. The functions flush() and close() have been added and the
  functions seek(), tell() and moveLeft() have been improved.
- The function deflate(), which deflates a string has been added to the
  library deflate.s7i.
- The function moveLeft() has been improved in strifile.s7i and
  stritext.s7i.
- The function timestamp1601 has been added to time.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for LINPUT statements, for the function RPT$ and for the
  string concatenation operator & has been added. The predefined
  subprogram CHAR has been improved. Now PRINT statemens allow a colon
  (:) between strings to describe a line break. Now INPUT statements
  allow a colon (:) between input prompt and variable list. A dummy
  implementation of the predefined subprogram SOUND has been defined.
- In seed7_05.s7i the definition of ::= for the type void has been
  changed to use the action ENU_CREATE instead of PRC_NOOP. This avoids
  a strange interpreter message (loc not dumped) if a void value is
  written.
- Tests in chkint.sd7 have been split into several functions.
- Documentation in the FAQ, the manual and s7c.1 has been improved.
- Interpreter and compiler have been improved to support the new action
  FIL_TRUNCATE.
- The compiler has been improved (in comp/inline.s7i in the function
  push_inline_func_param) to add a "const" for a parameter definition.
  This avoids a compilation error with g++.
2020-06-04 16:11:01 +00:00
Pietro Cerutti 2d20eca127 lang/seed7: update to 05_20200502
20200502:
- As suggested by Zachary Menzies a detection of more modifier keys has
  been added. E.g.: KEY_SHIFT_LOCK and KEY_NUM_LOCK. These modifier
  keys have a state. The state of KEY_SHIFT_LOCK can be retrieved with
  buttonPressed(KEYBOARD, KEY_SHIFT_LOCK_ON).
- Several new keys and key combinations such as KEY_PRINT, KEY_PAUSE,
  KEY_ALT_LEFT and KEY_SFT_MENU have been added to keybd.s7i. Existing
  definitions in keybd.s7i have been refactored. Key names in
  keydescr.s7i have been updated.
- The program gkbd.sd7 has been improved to show the new capabilies of
  the keybord interface.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for the predefined subprograms CHAR, CLEAR, COLOR, HCHAR,
  KEY, SCREEN and VCHAR and for the function SEG$ has been added.
- The bitmap font font8x8 has been added. This is a font with 8x8 pixel
  used by the TI-99/4A homecomputer.
- The functions line() and column() have been added to pixmap_file.s7i.
- The function replace1() has been added to string.s7i.
- In the manual the chapters about types and the keyboard have been
  improved.
- The compiler has been improved to link database libraries only if
  they are needed.
- The compiler has been improved to use builtin functions of the C
  compiler (if available) to do integer overflow checks. This reduces
  the runtime of the xz (lzma2) decompression by 4% (measured with gcc
  and valgrind, when decompressing a binary Seed7 package).
- The compiler has been improved to use a better approach to test for
  integer overflow of addition and subtraction, if no builtin functions
  are available. This reduces the runtime of the xz (lzma2)
  decompression by 0.8% (measured with gcc and valgrind, when
  decompressing a binary Seed7 package).
- The compiler has been improved to optionally suppress the generation
  of checks for integer division by zero with the option -sd.
- The simple function profiling of the Seed7 compiler has been improved
  to write the place and the name of the Seed7 function and to avoid
  a C compiler error about "too many initializers".
- The compiler has been improved to write a warning if there is a catch
  statement for an exception although the checks for this exception
  have been suppressed (with the option -s).
- The compiler has been improved to work correct for all corner cases
  of the string operations [, mult and @:=.
- Testcases for the operators [, mult and @:= and for the functions
  pos() and rpos() have been added to chkstr.sd7.
- Testcases for the exception RANGE_ERROR have been added to
  chkbig.sd7. The function bigInteger() and the operators radix, RADIX
  and parse are checked now, if they correctly raise RANGE_ERROR.
- Testcases for the exception RANGE_ERROR have been added to
  chkint.sd7. The functions bytes() and integer() and the operators
  radix, RADIX, sci and parse are checked now, if they correctly raise
  RANGE_ERROR.
- Testcases for the exception NUMERIC_ERROR have been added to
  chkint.sd7. The operators div, rem, mdiv, mod and ** are checked
  now, if they correctly raise NUMERIC_ERROR.
- A lot of testcases has been added to chkint.sd7 and chkovf.sd7 in
  the function check_reduced_overflow_checking_for_sums().
- In comp/big_act.s7i the function process_const_big_ipow has been
  improved to allow that the check for a negative exponent can be
  optionally omitted.
- In chkovf.sd7 the checks for the operators rem and mod have been
  improved to allow that the operators return the correct result
  instead of raising OVERFLOW_ERROR.
- Index access in comp/str_act.s7i and comp/bst_act.s7i has been
  improved to work also for the index integer.first (now the index is
  casted to (unsigned) and afterwards 1 is subtracted).
- In comp/intrange.s7i the function getIntRange has been improved to
  return better ranges for INT_ABS and INT_NEGATE.
- The keyboard driver gkb_x11.c has been improved to support new keys
  and key combinations. Additionally the modifier state is synched now
  with the keypresses. This allows reading a modifier key state (e.g.
  (control has been pressed) from the moment when the main key (e.g.
  the letter A) was pressed.
- The program chkccomp.c has been improved to determine the values
  CHECK_INT_DIV_ZERO_BY_ZERO, HAS_BUILTIN_OVERFLOW_OPERATIONS and
  SYSTEM_DATABASE_LIBS. The logic to determine the values
  CHECK_INT_DIV_BY_ZERO, CHECK_INT_REM_BY_ZERO and
  CHECK_INT_REM_ZERO_BY_ZERO has been improved.
- The configuration value CHECK_INT_DIV_ZERO_BY_ZERO,
  BUILTIN_ADD_OVERFLOW, BUILTIN_SUB_OVERFLOW, BUILTIN_MULT_OVERFLOW
  and SYSTEM_DATABASE_LIBS have been added to cc_conf.s7i, confval.sd7
  and cmd_rtl.c.
- Documentation comments have been added or improved in cc_conf.s7i,
  encoding.s7i, gzip.s7i, lzma.s7i, pixmap_file.s7i, scanfile.s7i,
  sql_base.s7i, string.s7i, xz.s7i, sigutl.c and striutl.c.

20200405:
- The new library xz.s7i has been added. This library supports XZ
  compressed files.
- The new library lzma.s7i has been added. This library supports LZMA
  compressed files.
- The library rpm.s7i has been improved to support an XZ compressed
  payload.
- The library tar_cmds.s7i and the program tar7.s7i have been improved
  to support XZ and LZMA compressed tar archives.
- The library zip.s7i has been improved to support Unicode file names.
- As suggested by Zachary Menzies a detection of modifier keys has been
  added. E.g. buttonPressed(KEYBOARD, KEY_SHIFT). Additionally several
  new key combinations such as KEY_SFT_MOUSE1 and KEY_CTL_PAD_CENTER
  have been added to keybd.s7i.
- The program gkbd.sd7 has been improved to show the new capabilies of
  the keybord interface.
- Interpreter and compiler have been improved, to write a compile time
  error, if a numerical escape sequence in a string or char literal
  is too big.
- The compiler has been improved to omit overflow checks for the
  dividend of the mod operator, if the divisor is a power of two. This
  reduces the runtime of the xz (lzma2) decompression by 2.3% (measured
  with gcc and valgrind, when decompressing a binary Seed7 package).
- The compiler file comp/intrange.s7i has been added. This file defines
  the function getIntRange(), which computes the range of possible
  results for several operators (e.g.: div, rem, mdiv, mod, >>) and
  functions (e.g.: sqrt, length, pos, rand, log).
- The compiler has been improved to use the function getIntRange() to
  omit overflow checks for addition, subtraction, multiplication and
  left shift of integer values. This reduces the runtime of the xz
  (lzma2) decompression by 0.4% (measured with gcc and valgrind, when
  decompressing a binary Seed7 package).
- In the compiler the code generation for the operators div, rem, mdiv,
  mod, * and << has been improved to work without catching the
  exception OVERFLOW_ERROR.
- The compiler has been improved to allow that a range check is
  suppressed with -sr for the action FLT_BITS2SINGLE (convert integer
  to single precision float value).
- The compiler has been improved to generate code that writes the error
  message of a DATABASE_ERROR, if the exception is uncatched.
- The compiler has been improved to suppress the usage of the C
  compiler option CC_OPT_TRAP_OVERFLOW (-ftrapv), if the Seed7 compiler
  option -so (suppress overflow checks) is used.
- The makefiles mk_clang.mak, mk_clangw.mak and mk_osxcl.mak have been
  improved to define CC_OPT_TRAP_OVERFLOW with the value -ftrapv.
- The functions check_mod_by_power_of_two_optimization() and
  check_mod_by_computed_power_of_two_optimization() have been added
  to chkint.sd7. This functions check the mod operator regarding
  the new compiler optimization for the mod dividend.
- The functions check_reduced_overflow_checking_for_sums(),
  check_reduced_overflow_checking_for_mult() and
  check_reduced_overflow_checking_for_lshift() have been added to
  chkint.sd7 and chkovf.sd7. This functions test the compiler
  optimization to reduce overflow checking with getIntRange().
- The libraries aes.s7i, bitdata.s7i, color.s7i, deflate.s7i, draw.s7i,
  ico.s7i, msgdigest.s7i, pkcs1.s7i, showtls.s7i and utf16.s7i have
  been improved to use the division operators 'mdiv' and 'mod' instead
  of 'div' and 'rem'.
- The configuration value CC_OPT_TRAP_OVERFLOW has been introduced in
  cc_conf.s7i, confval.sd7, s7c.sd7, chkccomp.c, cmd_rtl.c and
  read_me.txt.
- The function write_exception_info() has been added to runerr.c. This
  function is called in executl.c.
- The keyboard drivers gkb_win.c and gkb_x11.c have been improved to
  support modifier keys and more key combinations.
- Definitions for 31 new key compinations and 9 modifier keys have
  been added to keybd.s7i and keydescr.s7i.
- Documentation comments have been improved in ar.s7i, cc_conf.s7i
  and csv.s7i.
2020-05-06 15:59:09 +00:00
Pietro Cerutti 11516cb0cf lang/seed8: update to 05_20200308
20200308:
- The new library cpio.s7i has been added. This library supports cpio
  archive files.
- The new library rpm.s7i has been added. This library supports rpm
  archive files.
- The new library ar.s7i has been added. This library supports ar
  archive files.
- The new library subfile.s7i has been added. This library allows to
  open a part of an existing file as read only file.
- The new library filebits.s7i has been added. This library defines
  file mode bits used by archive file systems.
- The libraries bin32.s7i and bin64.s7i have been improved to support
  case statements for the types bin32 and bin64.
- The tarHeader element 'size' has been renamed to 'fileSize' in
  tar.s7i and tar_cmds.s7i.
- Tests for the operator 'conv' and for the functions compare(), str(),
  float(), trunc() and round() have been added to chkflt.sd7.
- The program chkccomp.c has been improved to determine the values
  MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT.
- Definitions of MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT have
  been added to cc_conf.s7i.
- The compiler (s7c) has been improved (in comp/flt_act.s7i) such that
  the actions FLT_TRUNC and FLT_ROUND do the correct check for the
  exception RANGE_ERROR.
- The database driver sql_oci.c has been improved to support the types
  BINARY_FLOAT and BINARY_DOUBLE.
- Tests for FLOAT and DOUBLE fields have been added to chkdb.sd7.
- A definition of the constant GZIP_MAGIC has been added to gzip.s7i.
- In file.s7i and iobuffer.s7i the functions hasNext() and length()
  have been changed to use an inout parameter for the file. This fixes
  a problem in compiled programs with some file systems where also an
  inout parameter is used for the file.
- The file db_oci.h has been improved to define SQLT_BFLOAT,
  SQLT_IBFLOAT, SQLT_BDOUBLE and SQLT_IBDOUBLE.
- In fltlib.c the functions flt_trunc() and flt_round() have been
  improved to do the correct check for the exception RANGE_ERROR.

20200209:
- The new database driver sql_tds.c has been added. This driver uses
  the Tabular Data Stream (TDS) protocol to transfer data between
  database server and client. TDS is used by SQL Server and Sybase.
  This driver allows the connection to a SQL Server database from
  Linux.
- The new library db_prop.s7i has been added. This library provides a
  collection of database properties.
- The example program chkdb.sd7 has been improved:
  - Tests with comments in sql statements have been added.
  - Tests that fetch boolean values from numeric fields have been
    added.
  - Tests for date, time, datetime and timestamp fields have been
    added.
- In the library time.s7i the function time() has been improved, to
  accept more variants of the ISO 8601 time and date format including
  variants with a time zone.
- The interpreter (s7) has been improved to write the error message of
  a DATABASE_ERROR, if the exception is not catched.
- In tim_rtl.c the function timUtcFromTimestamp() has been improved to
  work without calling gmtime() or gmtime_r() or gmtime_s(). Now the
  function always works with a 64-bit signed timestamp. Gmtime() uses
  time_t, which can be 32-bit or 64-bit and it can be signed or
  unsigned.
- In tim_rtl.c the function timToTimestamp() has been improved to work
  without calling mkutc(). This way the function always works with a
  64-bit signed timestamp. Mkutc() is also defined in tim_rtl.c and it
  uses the system dependend type time_t.
- In tim_rtl.c the functions timToOsTimestamp(), assignTime() and
  dateFromDaysSince1900() have been added and the functions
  timFromBigTimestamp() and timToBigTimestamp() have been removed.
- In exec.c the functions par_restore() and loc_restore() have been
  improved to free unneeded memory, in case an exception has been
  raised.
- In executl.c the function destroy_local_object() has been improved to
  optionally ignore exceptions.
- The functions leaveExceptionHandling(), saveFailState() and
  restoreFailState() have been added to runerr.c. This function is used
  in executl.c and prclib.c.
- In numutl.c the functions getDecimalBigRational() and
  getDecimalFloat() have been improved to accept both, a decimal point
  and a decimal comma.
- In several database drivers the function processStatementStri() has
  been improved to replace a comment with a space.
- Interpreter and compiler have been improved to support the actions
  SQL_ROLLBACK, SQL_GET_AUTO_COMMIT and SQL_SET_AUTO_COMMIT.
- The functions sqlRollback(), sqlGetAutoCommit() and
  sqlSetAutoCommit() have been added to sql_cli.c, sql_lite.c,
  sql_my.c, sql_oci.c, sql_post.c and sql_rtl.c.
- In the database driver sql_lite.c the functions sqlBindTime() and
  sqlColumnTime() have been improved to support more time and date
  formats. The function sqlColumnTime() calls assignTime() to reach
  this goal.
- In the database driver sql_my.c the function sqlColumnTime() has
  been improved to correct values, if they are outside of the allowed
  range.
- The database driver sql_db2.c has been improved to allow that for
  the functions SQLExecute() and SQLFetch() SUCCESS_WITH_INFO is
  treated as SQL_SUCCESS.
- The database driver sql_post.c has been improved:
  - Inserting and selecting time fields is now supported under
    different operating systems and compilers.
  - The type preparedStmtRecord and the functions freePreparedStmt()
    and sqlPrepare() have been improved such that a prepared statement
    maintains a dbType reference instead of a connection (PGconn).
  - The functions doExecSql() and implicitCommit() have been added.
    These functions are used for autocommit and for transaction
    handling.
- The database driver sql_oci.c has been improved:
  - The function sqlBindTime() has been improved to set the timeZone
    and to use a nanosecond as unit for the fraction of a second.
    There is also a check for situations in which the function
    OCIDateTimeConstruct() fails.
  - The function sqlColumnTime() has been improved to use the function
    OCIDateTimeGetTimeZoneOffset() to retrieve a timeZone and to use a
    nanosecond as unit for the fraction of a second.
- The database driver sql_cli.c has been improved:
  - In case of a DATABASE_ERROR exception the native SQL error is
    assigned to the errorCode.
  - The function freePreparedStmt() has been changed to ignore
    possible errors of SQLFreeStmt().
  - Binding SQL_BLOB and SQL_CLOB parameters is supported now.
  - Retrieving SQL_SS_TIME2 and SQL_XML columns is supported now.
  - Retrieving datetime2 columns in sqlColumnTime() has been improved
    to use the function assignTime().
- The database include files db_lite.h, db_my.h, db_oci.h and db_odbc.h
  have been improved.
- In sql_srv.c the functions connectToServer() and
  connectToLocalServer() have been improved to return a boolean value
  instead of a SQLRETURN value.
- In cmd_rtl.c the functions cmdSetATime() and cmdSetMTime() have been
  improved to use the new function timToOsTimestamp().
- The function determineTdsDefines() has been added to chkccomp.c.
- In exec.c the function suspendInterpreter() has been renamed to
  doSuspendInterpreter().
2020-03-09 14:25:20 +00:00
Pietro Cerutti 24c2189e0a 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.
2020-01-14 12:43:57 +00:00
Niclas Zeising 7be404eb3f Add USES=xorg USES=gl, ports categories l
Add USES=xorg and USES=gl to ports in categories starting with 'l'
While here, try to sprinkle other USES (mostly gnome and sdl) as needed.
2019-11-06 18:06:40 +00:00
Pietro Cerutti 52ee6feb3c lang/seed7: update to 05_20190818
20190818:
- Interpreter and compiler have been improved to work correct, when
  a derived struct overrides an element of the parent struct. Many
  thanks go to Zachary Menzies, for reporting this error and for
  providing a test program.
- In the FAQ the explanation, why Seed7 uses UTF-32, has been improved.
  An explanation of the database abstraction layer, which provides an
  database independent API, has also been added to the FAQ.
- In the manual the chapter about the deprecated function
  removeAnyFile() has been replaced by a chapter about the function
  removeTree().
- The program db7.sd7 (Database Inspector) has been improved quote a
  table name from the catalog when doing a select.
- The program sql7.sd7 has been improved to allow the execution of SQL
  statements from a file. The function getSqlStatement has been added,
  which reads a semicolon terminated SQL statement from a file.
- The library tar.s7i has been improved to accept extended headers with
  meta data (PAX format) also when a tar file is opened as file system
  with openTar(). The function readMinimumOfHead has been improved to
  do this.
- A code page for JIS X 0201 encoding has been added to charsets.s7i.
- The program err.sd7 has been improved to contain test cases, where
  UTF-16 surrogate characters and non Unicode characters are written as
  Seed7 string escape sequences.
- In sql_oci.c the function sqlOpenOci() has been improved to allow
  opening a database with host name, port and database name. This way a
  database can be opened without an entry in tnsnames.ora. The type
  connectDataRecord and the function setupConnectData() have been added
  to sql_oci.c.
- The functions sqlOpenMy (in sql_my.c) and sqlOpenPost (in sql_post.c)
  have been improved to allow opening a database with host name, port
  and database name. Now host, port and dbName are parameters. Before
  the functions split the parameter dbName into host and database name.
  Specifying a port was not possible.
- In sql_odbc.c the function sqlOpenOdbc() has been improved to allow
  opening a database with ODBC driver name, server name and database
  name. This way a database can be opened without specifying a data
  source in the ODBC Data Source Administrator (in the Control Panel).
  The type connectDataRecord and the functions getRegularName(),
  wstriSearchCh(), wstriSearch(), connectToServer(), connectToDriver()
  and driverConnect() have been added to sql_odbc.c. A definition of
  SQL_NEED_DATA has been added to db_odbc.h.
- In sql_rtl.c the function sqlErrMessage() has been improved to allow
  database error messages encoded in UTF-8.
- The function sqlOpen() has been removed from sql_rtl.c.
- The function width() has been added to string.s7i and seed7_05.s7i.
  This function computes the sum of the character widths in a string.
  A character width can be 0 (for control characters), 1 (for normal
  printable characters) and 2 (for fullwidth characters, e.g. KANJI).
- The library console.s7i has been improved to use the function
2019-08-19 11:35:52 +00:00
Gerald Pfeifer ea8c8ec7da Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
   c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.

PR:		238330
2019-07-26 20:46:53 +00:00
Pietro Cerutti bb5160ddaa lang/seed7: update to 05_20190714
20190714:
- The library tls.s7i has been improved to support elliptic curve
  diffie hellman key exchange.
- The new library elliptic.s7i has been added. This library supports
  elliptic curve cryptography (ECC). The library defines:
  - Several named curves,
  - Functions to add, double and multiply curve points.
  - Functions for fast multiplication with jacobian coordinates.
  - Functions to encode and decode curve points.
  - Functions to sign and verify messages with the ECDSA.
- The functions emsaPkcs1V15Encoding, emsaPkcs1V15Decoding,
  rsassaPkcs1V15Encrypt and rsassaPkcs1V15Decrypt have been added to
  the library pkcs1.s7i.
- In x509cert.s7i the function getAlgorithmIdentifier has been improved
  to accept algorithm identifiers without algorithm parameters.
- A version of the function createX509Cert, that creates a certificate
  with keys for elliptic curve cryptography, has been added.
- The new library showtls.s7i had been added. This library defines
  functions to show TLS messages. It can be used to debug tls.s7i.
- The library tar.s7i has been improved to accept extended headers with
  meta data (PAX format). Now path and linkpath meta data is accepted.
- A new version of the function bytes() has been added to bytedata.s7i.
  This function converts a bigInteger to a string of bytes with a given
  length.
- Checks for the multiplication operators * and *:= with factors of
  1 and -1 have been added to chkint.sd7.
- Checks for the operator 'lpad0' have been added to chkint.sd7.
- Checks for NaN have been added to chkflt.sd7.
- In the compiler (in comp/const.s7i) the action FLT_MOD has been added
  to the list of pure function actions.
- The compiler has been improved to optimize the actions FLT_REM (in
  comp/flt_act.s7i) and INT_LPAD0 (in comp/int_act.s7i).
- A corner case of the multiplication operator *:= has been fixed in
  the compiler (process_const_int_mult_assign() in comp/int_act.s7i).
  The bug occurred in the overflow checking code, when an array element
  was multiplied with *:= -1. Multiplications of normal variables and
  parameters with *:= and multiplications with other factors except -1
  were not affected by this bug.
- Documentation comments have been improved in cc_conf.s7i and
  pkcs1.s7i.
- In con_win.c the functions kbdKeyPressed() and kbdGetc() have been
  improved to ignore mouse movement and button press events.
- The program chkccomp.c has been improved to have a more detailed
  check for POW_OF_NAN_OKAY.
- In fltlib.c checks for 0.0 have been improved in flt_div() and
  flt_div_assign().
- In flt_rtl.c preprocessor if statements have been improved to check
  for !FLOAT_NAN_COMPARISON_OKAY in fltLog(), fltLog10() fltLog2() and
  fltPow().

20190610:
- The library float.s7i has been improved to support the float
  operators 'rem' (floating-point remainder) and 'mod' (floating-point
  modulo).
- The program chkflt.sd7 has been improved to check floating-point
  literals and the new operators 'rem' and 'mod'. The tests for the
  operator ** have been improved also.
- Compiler and interpreter have been improved to work correct, even
  when the C functions fmod(), exp(), ldexp(), frexp() and sqrt() do
  not work 100% correct.
- The program chkccomp.c has been improved to detect weaknesses of
  numeric functions. These weaknesses happen when handling with NaN,
  Infinity or when other special cases occur.
- A new version of the function timAwait() has been added to tim_unx.c.
  This function is used when AWAIT_WITH_NANOSLEEP is defined.
- The makefiles mk_emccl.mak and mk_emccw.mak have been improved to
  define AWAIT_WITH_NANOSLEEP instead of AWAIT_WITH_SELECT.
- Interpreter and compiler have been improved to support the actions
  FLT_MOD and FLT_REM.
- In the compiler (in comp/flt_act.s7i) a corner case of the action
  FLT_IPOW (when CHECK_FLOAT_DIV_BY_ZERO is TRUE and the exponent is
  negative and the base is zero (0.0 or -0.0)) has been fixed.
- The configuration values FLOAT_COMPARISON_OKAY, FMOD_FUNCTION_OKAY,
  EXP_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY and FREXP_FUNCTION_OKAY have
  been added to cc_conf.s7i. The configuration values
  NAN_COMPARISON_OKAY and FREXP_INFINITY_NAN_OKAY have been removed.
- The functions fltDecompose(), fltExp(), fltLdexp(), fltMod() and
  fltRem() have been added to flt_rtl.c. These functions are used, when
  the corresponding C functions frexp(), exp(), ldexp() and fmod() do
  not work 100% correct.
- In flt_rtl.c the functions fltEq(), fltGe(), fltGt(), fltLe() and
  fltLt() have been improved. These improvements help, when the
  comparison of float or double values does not work 100% correct.
- In flt_rtl.c the functions fltPow(), getMantissaAndExponent(),
  setMantissaAndExponent() and fltSqrt() have been improved. These
  improvements help, when the underlying C functions pow(), frexp(),
  ldexp() and sqrt() do not work 100% correct.
- The program chkccomp.c has been improved to define the macros
  FLOAT_NAN_COMPARISON_OKAY, FLOAT_ZERO_COMPARISON_OKAY,
  SQRT_OF_NAN_OKAY, SQRT_OF_NEGATIVE_OKAY, EXP_OF_NAN_OKAY,
  LDEXP_OF_NAN_OKAY, FREXP_SUBNORMAL_OKAY, FMOD_DIVIDEND_NAN_OKAY,
  FMOD_DIVISOR_NAN_OKAY, FMOD_DIVIDEND_INFINITY_OKAY,
  FMOD_DIVISOR_INFINITY_OKAY and FMOD_DIVISOR_ZERO_OKAY.
- In cmd_rtl.c the function cmdConfigValue has been improved to support
  the config values FLOAT_COMPARISON_OKAY, EXP_FUNCTION_OKAY,
  FMOD_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY and FREXP_FUNCTION_OKAY.
- Definitions of the macros FLOAT_COMPARISON_OKAY, SQRT_FUNCTION_OKAY,
  EXP_FUNCTION_OKAY, LDEXP_FUNCTION_OKAY, FREXP_FUNCTION_OKAY and
  FMOD_FUNCTION_OKAY have been added to commpn.h
- Documentation comments have been improved in intlib.c, int_rtl.c,
  match.c, str_rtl.c, keybd.s7i and vectorfont.s7i.
- In comp/int_act.s7i the variable quotient_name has been renamed to
  remainder_name.

20190523:
- In match.c the function substitute_params() has been fixed to copy
  parameters with expressions instead of calling do_create(). For
  expressions do_create() just creates a reference to the expression
  and this leads later to a double free of the expression. Many thanks
  go to Anton Lobach, for reporting this error and for providing a test
  program.
- The library blowfish.s7i, with Blowfish cipher support, has been
  added.
- The functions column() and line() have been added to the library
  console.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for the keyword ENDIF has been added.
- The compiler (s7c.sd7) has been improved (in set_act.s7i) to optimize
  the expression card(bitset(number)).
- The functions toBase and fromBaseToBigInt have been added to
  encoding.s7i. This functions encode and decode bigInteger numbers
  with a positional numeric system.
- Conversion functions have been added to bitsetof.s7i and bitset.s7i.
- Checks for the function card() have been added to chkset.sd7.
- Interpreter and compiler have been improved to support the actions
  CON_COLUMN, CON_LINE, SET_CONV1, SET_CONV3, SET_SCONV1 and
  SET_SCONV3. The support for the actions SET_CONV and SET_SCONV has
  been removed.
- The libraries bitsetof.s7i and bitset.s7i have been adjusted, to use
  the new actions.
- In con_inf.c the function conWrite() has been improved to change the
  cursor position, when the characters '\n', '\r' and '\b' are written.
- In con_win.c the function conCursor() has been improved, to hide the
  cursor, when it is called with FALSE. The function conOpen() has been
  changed, to set the cursor position to (1, 1) and to hide the cursor.
- The functions conColumn() and conLine() have been added to con_rtl.c,
  con_inf.c, con_win.c, con_wat.c and con_emc.c.
- In set_rtl.c the functions setIConv() and setSConv() have been
  improved. Now setIConv() raises RANGE_ERROR for negative numbers and
  setSConv() raises RANGE_ERROR, when a negative integer would be
  returned.
- Documentation has been improved in console.s7i, string.s7i,
  con_inf.c, con_win.c
- The debug trace mechanism in analyze.c and dcllib.c has been
  improved.
- A call of dlerror() has been added in dll_unx.c.
- In traceutl.c the function prot_list_limited() has been introduced.

20190506:
- The utility program bigfiles.sd7 has been added. Bigfiles is an
  utility program to search for big files. This is useful, when the
  disk is almost full and files must be removed to get more space.
- The utility program sydir7.sd7 has been improved. Now it supports the
  option -n, which assures that no changes are done.
- The program db7.sd7 (Database Inspector) has been improved to write
  an error message, when reading the catalog of database tables fails.
- The program chkbitdata.sd7 has been added. This program checks
  functions from the bitdata.s7i library.
- In the FAQ the explanation, how Seed7 is compiled, has been improved.
- The description of several conversion functions in the manual has
  been improved.
- The function ripemd160 has been added to msgdigest.s7i. This function
  computes a message digest with the RIPEMD-160 algorithm.
- The functions toBase58, fromBase58, toBase and fromBase have been
  added to encoding.s7i. This functions support Base58 encoding and
  similar other encodings with a positional numeric system.
- The functions putBitLsb, putBitsLsb, getBitMsb, getBitsMsb, putBitMsb
  and putBitsMsb have been added to bitdata.s7i. This functions read
  and write bits from and to a file.
- The new library leb128.s7i has been added. This library supports the
  conversion of integers to and from LEB128 encoding. LEB128 is a
  variable-length encoding for integers. It is used e.g. by the DWARF
  debug file format and by WebAssembly.
- Tests for the functions leb128ToInt(), uLeb128ToInt(), leb128() and
  uLeb128() have been added to chkint.sd7.
- The library make.s7i has been improved to avoid a makefile rule
  recursion.
- The function hex2Bytes has been added to bytedata.s7i. This function
  converts a string with hexadecimal digits to a string of bytes.
- The function reverse has been added to string.s7i and seed7_05.s7i.
- The function tableNamesCommand has been added to sql_base.s7i.
- Conversion functions have been added to char.s7i.
- In big_rtl.c the function uBigMult has been changed to be faster,
  when the size of factor2 is 1.
- In con_inf.c code to copy the environment for Emscripten and node.js
  has been added. This code is deactivated, because of a limitation
  in the Emscripten implementations of getenv() and setenv().
- The makefiles have been improved to copy the file version.h to a
  name that corresponds to the makefile. E.g.: The makefile
  mk_linux.mak copies version.h to vers_linux.h. This helps comparing
  different version.h files.
- Documentation has been added to chkccomp.c and read_me.txt.
- The prototype of the function refCatParse has been changed in
  ref_data.c, ref_data.h and ref_act.s7i. The compiler (s7c.sd7) has
  been changed to add a cast in the function init_set_constants().
  In sql_odbc.c casts have been added. This changes avoid C++
  compilation errors.
- Calls of logFunction and logError have been added in con_inf.c,
  dll_unx.c and dll_win.c.
2019-07-24 12:09:15 +00:00
Pietro Cerutti d817d319a0 lang/seed7: update to 05_20190407
20190407:
- The program db7.sd7 (Database Inspector) has been improved to use a
  scrollable list of tables instead of radio buttons for the selection
  of a table.
- The example program findchar.sd7 has been added. Findchar is an
  utility program to search for specific characters in files.
- The new library iobuffer.s7i has been added. This library supports
  buffering of files.
- The new library mixarith.s7i has been added. This library supports
  mixing of arithmethic operations between numeric types.
- The file type fileInTar has been added to the library tar.s7i. This
  file type allows that a specific file from a tar archive can be
  opened. The functions open, getc, gets, eof, hasNext, length, seek,
  tell, and openFileInTar have been added to support the file type
  fileInTar.
- The functions skipClassicComment and getSimpleStringLiteral have been
  added to the libraries scanfile.s7i and scanstri.s7i.
- The makefile mk_emccl.mak has been added. This makefile supports
  compiling with the emcc C compiler from Emscripten under Linux. The
  support of Emscripten is experimental (see also src/read_me.txt).
- The deprecated functions float2Bits and bits2Float have been removed
  from bin32.s7i and bin64.s7i. The functions bin32(), bin64() and
  float() can be used instead, to convert between float and bits in
  IEEE 754 representation.
- In the programs chkbig.sd7, chkovf.sd7, chkset.sd7 and chkstr.sd7
  large functions have been split into smaller functions. This avoids
  Stack errors with Emscripten.
- Tests for allowed field names and CLOB fields have been added to
  chkdb.sd7. The functions create, testFieldNames and testClobField
  have been added to chkdb.sd7.
- The primitive actions BIG_PARSE, BST_PARSE, FLT_PARSE and INT_PARSE
  have been renamed to BIG_PARSE1, BST_PARSE1, FLT_PARSE1 and
  INT_PARSE1 respectively. This actions parse the first argument
  instead of the third argument. The libraries bigint.s7i, bstring.s7i,
  float.s7i and integer.s7i have been improved to use the new actions.
- In several libraries the 'parse' operator has been changed to call
  a function with the name of the type.
- In fil.unx.c the function setupFiles has been improved to correctly
  mount the file system root for emscripten and node.js.
- In sql_fire.c, sql_my.c the support for BLOB and CLOB fields has been
  improved.
- In sql_oci.c, sql_odbc.c and sql_post.c the function
  processStatementStri() has been improved to accept strings enclosed
  in single quotes (') and double quotes (").
- The files db_fire.h and sql_fire.c have been changed to define the
  database client functions with the calling convention __stdcall.
- The files db_post.h, db_lite.h, sql_post and sql_lite.c have been
  changed to define the database client functions with the calling
  convention __cdecl.
- The database driver sql_fire.c has been improved:
  - The function getClob() has been added. This function is used by
    sqlColumnStri() to get a CLOB.
  - The function sqlBindStri() has been improved to work for CLOBs
    and to raise RANGE_ERROR for BLOBs.
  - The function sqlColumnStri() has been improved to work for BLOBs
    and CLOBs.
  - The function sqlColumnBStri() has been improved to work for BLOBs
    and to raise RANGE_ERROR for CLOBs.
  - The function sqlStmtColumnName() has been improved to assume that
    the name of a column is encoded with UTF-8.
- The database driver sql_my.c has been improved:
  - The function processStatementStri() has been improved. In strings
    delimited with single quotes (') backslashes (\) are optionaly
    replaced with double backslashes (\\). Strings delimited with
    double quotes (") are converted into strings, that are delimited
    with a backtick (`).
  - The function setupResultColumn() has been improved to distinguish a
    BLOB from a CLOB.
  - The function sqlColumnStri() has been improved to work for BLOBs
    and CLOBs.
  - The function sqlColumnBStri() has been improved to work for BLOBs
    and to raise RANGE_ERROR for CLOBs.
  - The function determineIfBackslashEscapes has been introduced. This
    function determines, if a backslash is used as escape character in
    string literals. In this case processStatementStri() will double
    escaping backslashes in string literals.
- The database driver sql_odbc.c has been improved:
  - The management of buffer memory in bind functions has been improved
    for the data types SQL_DECIMAL, SQL_NUMERIC, SQL_CHAR, SQL_VARCHAR,
    SQL_LONGVARCHAR, SQL_WCHAR, SQL_WVARCHAR, SQL_WLONGVARCHAR,
    SQL_BINARY, SQL_VARBINARY and SQL_LONGVARBINARY.
- The database driver sql_post.c has been improved:
  - The function setupDll has been improved to open the dll
    libeay32.dll, when necessary.
  - In the function sqlBindStri() the binding of a field with the type
    BYTEAOID (used for BLOB data) has been improved, to work correct,
    when the string contains a zero byte ('\0;').
  - The function sqlColumnBigRat() has been improved to process fields
    with the type FLOAT8OID as double instead of float.
- The program chkccomp.c has been improved. Now the C compiler used to
  compile chkccomp.c can be different from the C compiler checked by
  chkccomp.c. E.g.: For Emscripten chkccomp.c is compiled with gcc,
  but the checked C compiler is emcc.
- In chkccomp.c the function determineFseekFunctions has been improved
  to check fseek() and ftell() without access to the local files.
- In chkccomp.c the functions to configure access to PostgreSql,
  Oracle and Firebird databases has been improved.
- In chkccomp.c code to determine NULL_DEVICE, HAS_CDECL, HAS_STDCALL,
  INTPTR_T_DEFINED, PRINTF_ROUNDING, LINE_DIRECTIVE_ACCEPTS_UTF8,
  HAS_SETJMP and HAS_SIGSETJMP has been added or improved.
- The file sigutl.c has been improved to work correct, when neither
  signal() nor sigaction() are present.
- Log functions have been added or improved in con_emc.c, con_inf.c,
  sql_my.c, sql_post.c and timlib.c.
- Exprerimental code has been added to con_emc.c.
2019-04-08 10:58:18 +00:00
Pietro Cerutti cb80da6344 lang/seed7: update to 05_20190303
20190303:
- 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
  Windows.
- The example program brainf7.sd7 has been added. Brainf7 is a
  Brainfuck interpreter.
- The example program hilbert.sd7 has been added. Hilbert displays a
  Hilbert curve.
- The example program queen.sd7 has been added. Queen solves the n
  queen problem.
- 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
    expression.
  - 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
    c_expr.temp_decls.
  - 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
    improved.
  - 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
    temporary variable.
  - 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
  makeParentDirs())
- 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
  invocation (DIRECTIVES_IN_MACRO_ARGUMENTS_OK).
- 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
  ftelli64Ext().
- 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
  representation.
- 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.

20190126:
- The program db7.sd7 (Database Inspector 7) has been improved to
  provide a list of tables and a possibility to view table contents
  from this list.
- The program tar7.sd7 and the library tar.s7i have been improved to
  support Unicode file names.
- The function setupParameters() in sql_fire.c, sql_lite.c, sql_my.c,
  sql_oci.c, sql_odbc.c and sql_post.c has been improved to avoid
  calling malloc(0). Depending on the run-time library malloc(0) may
  return NULL, which would wrongly trigger a MEMORY_ERROR. The
  improvement recognizes this situation and avoids calling malloc(0).
  Other places in the database drivers, where malloc(0) could be called
  have been fixed also.
- The database driver sql_fire.c has been improved:
  - Now the cursor of a prepared statement is closed (with
    isc_dsql_free_statement), when a parameter is bound to it.
  - The opening of a database now appends the extensions .fdb and .gdb,
    when trying to open the database.
- The database driver sql_my.c has been improved:
  - The function processEscapesInStatement has been renamed to
    processStatementStri. Now it removes comments from the statement
    string.
  - The local variable 'param' has been introduced in the parameter
    binding functions. This improves readability by avoiding many
    accesses to the param_array.
  - The local variable 'columnData' has been introduced in the column
    accessing functions. This improves readability by avoiding many
    accesses to the result_array.
  - The function sqlColumnFloat has been improved to accept integer
    fields with all sizes.
- The database driver sql_oci.c has been improved:
  - Now there is a check if all parameters of a prepared statement are
    bound. This check takes place when a prepared statement is
    executed.
  - The function processBindVarsInStatement has been renamed to
    processStatementStri. Now it removes comments from the statement
    string and determines the number of bind parameters.
  - The functions setupParameters and allParametersBound have been
    added and the function resizeBindArray has been removed.
  - The function getFloat has been improved to convert a SQLT NUMBER
    to a double via the decimal representation.
  - The bind functions have been improved to check, that a parameter
    with the given index exists.
  - The bind functions have been improved to allow that the same
    parameter can be bound again with a different bind function (e.g.
    as integer instead of a bigInteger).
  - The function sqlBindStri has been improved to preserve trailing
    blanks in a string.
  - The local variable 'param' has been introduced in the parameter
    binding functions. This improves readability by avoiding many
    accesses to the param_array.
  - The local variable 'columnData' has been introduced in the column
    accessing functions. This improves readability by avoiding many
    accesses to the result_array.
- The database driver sql_odbc.c has been improved:
  - The maximum number of concurrent activities is determined. If the
    number of concurrent activities is limited the function
    sqlExecute() fetches all results and stores them in a prefetch
    buffer. This way several prepared statements can be used in
    parallel even when the ODBC driver does not support concurrent
    activities.
  - The structure resultDescrRecord has been introduced. It contains
    the result properties of a prepared statement column. The structure
    resultDataRecord has been reduced to just contain the actual
    data buffer and length of a result field.
  - The functions freeFetchData, freeFetch, freePrefetched and
    processStatementStri have been added. The function
    processStatementStri removes comments from the statement string.
    This avoids problems with some ODBC drivers.
  - The functions bindResultColumn, bindResult, copyNonBlobBuffers,
    moveBlobBuffers, copyFetchData, prefetchOne, prefetchAll and
    doFetch have been added.
  - Now the cursor of a prepared statement is closed (with
    SQLFreeStmt), when a parameter is bound to it.
  - The function sqlColumnFloat has been improved to accept integer
    fields with all sizes.
- The database driver sql_post.c has been improved:
  - The function processBindVarsInStatement has been renamed to
    processStatementStri. Now it removes comments from the statement
    string.
  - The local variable 'param' has been introduced in the parameter
    binding functions. This improves readability by avoiding many
    accesses to the param_array.
  - The function sqlColumnFloat has been improved to accept integer
    fields with all sizes.
- The example program chkdb.sd7 has been improved. Now it tests several
  corner cases with empty databases, empty statements, comments and
  literals. The tests with integer fields retrieve the fields now also
  as floats.
- Interpreter and compiler have been improved to support the new
  actions SQL_DRIVER, STR_FOR_KEY and STR_FOR_VAR_KEY.
- The library forloop.s7i has been improved to use the new actions
  STR_FOR_KEY and STR_FOR_VAR_KEY.
- Checks for string for loops have been added to chkstr.sd7.
- The library sql_base.s7i has been improved to support the new
  functions driver() and getTableNames(). The function getTableNames
  returns a list of user table names.
- The function sqlDriver has been added to sql_rtl.c.
2019-03-12 13:38:27 +00:00
Pietro Cerutti 7a0d846e25 lang/seed7: update to 05_20190107
20190107:
- A chapter about the handling of errors in interpreter and run-time
  library has been added to the manual.
- The new database driver sql_fire.c has been added. This driver
  provides database access functions for Firebird/InterBase.
- The database drivers sql_lite.c, sql_my.c, sql_odbc.c and sql_post.c
  have been improved to check that all parameters of a prepared
  statement are bound. This check takes place when a prepared statement
  is executed.
- The bind functions in sql_lite.c and sql_my.c have been improved to
  check, that a parameter with the given index exists.
- The bind functions of sql_my.c and sql_odbc.c have been improved to
  allow that the same parameter can be bound again with a different
  bind function (e.g. as integer instead of a bigInteger).
- The database driver sql_lite.c has been improved:
  - The function sqlBindBigRat has been improved to convert a
    bigRational to a double via the decimal representation.
  - The functions sqlColumnBigInt and sqlColumnInt have been improved
    to accept blob values with a decimal content that ends with ".0".
  - The function sqlColumnFloat has been improved to accept integer
    values.
  - The function sqlExecute has been improved to reset a prepared
    statement, when necessary.
- The database driver sql_my.c has been improved:
  - Medium and large blobs are supported now.
  - The function sqlColumnStri() has been improved to read BLOB data.
  - The function processEscapesInStatement() has been introduced. This
    function assures that string literals in prepared statements do not
    allow backslash escape sequences (e.g. \n or \t). This way a
    backslash in a SQL statement has no special meaning (like it is
    common practice in all other SQL databases).
  - The function sqlExecute() has been improved to call
    mysql_stmt_store_result(). This way the complete result set is
    buffered on the client. Doing so avoids the "Commands out of sync"
    error (e.g. which is triggered (without mysql_stmt_store_result()),
    when a new statement is prepared before all data of an old
    statement is fetched).
  - The function resizeBindArray() has been removed.
- The database driver sql_odbc.c has been improved:
  - The function SQLGetTypeInfo is used to determine if the driver
    supports the type SQL_WCHAR.
  - It is recognized when the function SQLDescribeParam() is missing
    and reasonable default values are used instead.
  - The function SQLFreeStmt() is used now without the precondition
    fetchOkay or fetchFinished.
  - The function setupParameterColumn has been introduced. This
    function allocates memory for parameter buffers.
  - One call of SQLDescribeCol() is used to determine the properties of
    result columns instead of many calls of SQLColAttribute().
  - Blob result data is now recognized by data type (SQL_LONGVARCHAR,
    SQL_WLONGVARCHAR or SQL_LONGVARBINARY) instead of data length.
  - The bind functions have been improved to use a switch depending
    on the data type.
  - Calls of SQLBindParameter() have been changed to use parameters
    determined with SQLDescribeParam().
  - At several places switch statements depending on the c_type are
    used.
  - The function sqlColumnDuration has been improved to accept a
    duration in a VARCHAR field.
  - Experimental code to search for an ODBC driver has been added (but
    it is deactivated for now).
- The database driver sql_post.c has been improved:
  - The function setupParameterColumn() has been introduced. This
    function allocates memory for parameter buffers. The buffers are
    part of the bindDataRecord.
  - The conversion of the internal NUMERIC representation to integer,
    float, bigInteger and bigRational values has been improved. Now
    sqlColumnInt() and sqlColumnFloat() can also read NUMERIC data.
  - The functions getNumericAsCStri(), getNumericAsStri(),
    getNumericAsInt(), getNumericAsBigInt(), getNumericAsBigRat()
    and getNumericAsFloat() have been added.
  - The function sqlColumnStri() has been improved to read BLOB data.
  - The memory management has been improved to recogize out of memory
    situations reliable.
  - The handling of exceptions has been improved.
- The function literal() has been added to bigint.s7i, bigrat.s7i,
  boolean.s7i, bstring.s7i, duration.s7i and time.s7i.
- The function integer (it converts a bigInteger to an integer) has
  been added to bigint.s7i.
- The function string (it converts a bstring to a string) has
  been added to bstring.s7i.
- The example program chkdb.sd7 has been improved to test the
  functionality of a database with much more detail. Chkdb.sd7 now
  supports parameters to specify the database to be checked.
- The programs sql7.sd7 and db7.sd7 has been improved to support
  Firebird/Interbase databases.
- The tests of shift operators have been improved in chkbig.sd7.
- The program chkccomp.c has been improved to determine the settings
  for directory access and for the database driver sql_fire.c.
- An #if instruction has been added to dir_win.c, soc_none.c and
  soc_rtl.c, such that the object file can always be linked.
- The function stri_to_cstri8_buf() has been changed to work without
  err_info parameter.
- Experimental code, to avoid the gmp error "overflow in mpz type" for
  shift operations, has been added to big_gmp.c.
- In big_rtl.c, big_gmp.c and big_drv.h the functions bigToInt16(),
  bigToInt32() and bigToInt64() have been changed to have the
  additional parameter err_info.
- The function setupBig() has been added to big_rtl.c and big_gmp.c.
  Additionally interpreter and compiler have been improved to call
  setupBig().
- Documentation comments have been improved in integer.s7i,
  sql_base.s7i, big_gmp.c, big_rtl.c, sql_rtl.c, intlib.c, int_rtl.c
  and striutl.c
- The file soc_dos.c has been renamed to soc_none.c.
2019-01-09 12:58:22 +00:00
Gerald Pfeifer a9f015d155 Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
   c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.

PR:		231590
2018-12-12 01:35:33 +00:00
Pietro Cerutti e56a1f283c lang/seed7: update to 05_20181125
20181125:
- In sql_odbc.c the handling of blobs has been improved. Selects with
  normal and blob fields work now independend from the order of fields.
  The functions resizeBindArray() and getClob() have been removed. The
  functions setupParameters(), getBlob(), getData() and fetchBlobs()
  have been added and the function getWCLob() has been improved.
- In sql_odbc.c the handling of time values has been improved to
  support the sql type datetime2 and times with fractions of a second.
  The functions sqlBindTime() and sqlColumnTime() have been improved.
- In sql_odbc.c the binding of bigRational and null values has been
  improved. The functons sqlBindBigRat() and sqlBindNull() have been
  improved.
- In the library duration.s7i the function str() and the operator
  'parse' have been improved to use P[nY][nM][nD][T[nH][nM][n[.n]S]] as
  format for the string representation of a duration.
- In dir_rtl.c the function dirRead() has been improved to use the
  functions conv_from_os_stri() and os_stri_strlen() instead of
  os_stri_to_stri(). This reduces the runtime of dirRead() by 2%
  (measured with gcc and valgrind, when reading 1532 directories).
- In the compiler (in comp/const.s7i) the actions BST_PARSE, FLT_PARSE
  and INT_PARSE have been added to the list of special actions.
- The function duration(), which converts a string to a duration value,
  has been added to duration.s7i.
- The function time(), which converts a string to a time value, has
  been added to time.s7i. Additionally parsing of time literals has
  been improved to support negative years.
- The function bstring(), which converts a string to a bstring value,
  has been added to bstring.s7i.
- The function rand(), which computes a pseudo-random time in a given
  range, has been added to time.s7i.
- Tests for the function float(), which converts a string to a float
  value, have been added to chkflt.sd7.
- The program chkccomp.c has been improved to determine INT64_SIZE
  (the size of __int64), HAS_LLABS, HAS_ABS64, STRINGIFY_WORKS,
  HAS_GMTIME_R and HAS_GMTIME_S.
- Documentation comments have been added or improved in sockbase.s7i,
  fil_rtl.c, fil_unx.c, fil_win.c, soclib.c and soc_rtl.c.
- In heaputl.c the function growStri() has been improved to have a
  smarter behavior in the case when malloc() returns NULL.
- The functions sqlBindDuration and sqlColumnDuration have been
  improved in sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and
  sql_post.c.
- The parameter time_zone has been added to the function sqlBindTime()
  in sqllib.c, sql_rtl.h, sql_rtl.c, sql_drv.h, sql_lite.c, sql_my.c,
  sql_oci.c, sql_odbc.c, sql_post.c and comp/sql_act.s7i.
- A function to bind a duration value to a prepared statement has been
  added to the library sql_base.s7i.
- The example program chkdb.sd7 has been improved to check inserting
  and selecting time and duration values into and from a database.
- In sql_lite.c the function sqlColumnTime() has been improved.
- In sql_post.c the functions sqlBindTime() and sqlColumnTime() have
  been improved.
- The functions stringify() and conv_wstri_buf_to_cstri() have been
  added to striutl.c.
- In tim_rtl.c the functions mkutc() and unchecked_mkutc() have been
  improved to work with negative years.
- The function timUtcFromTimestamp() has been added to tim_rtl.c.
2018-11-26 12:53:19 +00:00
Pietro Cerutti e4f8d20d1e lang/seed7: update to 05_20181014
20181014:
- Simple function profiling has been added to the compiler. Profiling
  is enabled, when programs are compiled with the option -p. When
  programs with profiling are executed they write profiling information
  to the file profile_out, when they terminate.
- An explanation of the compiler option -p (simple profiling) has been
  added to the FAQ.
- The function str_dd_mm_yy has been added to the library time.s7i.
- In chkflt.sd7 the tests for the operator ** (with an exponent of NaN)
  have been improved.
- Documentation comments have been improved in integer.s7i, intlib.c,
  int_rtl.c, tim_unx.c and tim_win.c.
- In hsh_rtl.c the function hshIdxEnterDefault has been simplified to
  use fewer parameters. Usages of hshIdxEnterDefault in gkb_win.c,
  gkb_x11.c, pol_sel.c, pol_unx.c, ref_data.c and typ_data.c have been
  adjusted to the reduced number of parameters.
- In int_rtl.c the performance of the function intParse has been
  improved (when two's complement integers are used).
- In pcs_unx.c the function pcsStart has been improved to work correct
  when stdin, stdout or stderr are not redirected.
- In flt_rtl.c the function fltPow() has been improved to work correct,
  when the base is zero and the exponent is NaN.
- The program chkccomp.c has been improved to check the function pow()
  with more test cases.
- In striutl.c the function heapAllocOsStri() has been refactored to
  return the allocated string instead of using a pointer to a string
  variable. This opens the possibility to optimize usages of the macro
  os_stri_alloc().
- The definition of WITH_SQL has been removed from the makefiles and
  added to the file config.h instead.
- The file config.h has been changed to define the macros WITH_FLOAT,
  WITH_REFERENCE, WITH_DRAW, WITH_STATISTIC, WITH_COMPILATION_INFO and
  WITH_TYPE_CHECK always.
- The function timMicroSec in tim_unx.c and tim_win.c has been changed
  to be useable for the simple profiling.
2018-10-15 11:05:29 +00:00
Pietro Cerutti 34be04994c lang/seed7: update to 05_20180821
20180821:
- In fil_dos.c in the function setupFiles the handling of ctrl-c has
  been improved such that ctrl-c is sent immediate (without the need to
  press return afterwards). Additionally redirected stdin, stdout and
  stderr files are switched to binary mode now.
- In the compiler (in comp/const.s7i) the actions BIN_XOR, ENU_ICONV2,
  ENU_ORD2, INT_ICONV1 and INT_ICONV3 have been added to the list of
  special actions.
- The batch files bin/call_gcc.bat and bin/call_ar.bat have been
  improved to set environment variables with the command 'set'. This
  is necessary to execute them successfully under Wine.
- The description of log, log10 and log2 in the manual has been
  improved.
- In flt_rtl.c the functions fltLog, fltLog10 and fltLog2 have been
  added. This functions are based on the original functions log(),
  log10() and log2() and work according to IEEE 754.
- The configuration values LOG_FUNCTION_OKAY, LOG10_FUNCTION_OKAY and
  LOG2_FUNCTION_OKAY have been added to cc_conf.s7i.
- The configuration value HAS_LOG2 has been removed from cc_conf.s7i.
- The compiler (s7c) has been improved to use the functions fltLog,
  fltLog10 and fltLog2.
- In comp/inline.s7i the functions push_inline_func_param,
  pop_inline_func_param, push_inline_proc_param and
  pop_inline_proc_param have been improved to support inline functions
  with 'attr' parameters.
- The example program diff7.sd7 has been improved.
- Documentation comments have been improved in math.s7i and tar.s7i.
- In chkflt.sd7 the tests for the operators 'parse' and 'sci' and for
  the function str() have been improved.
- The program chkccomp.c has been improved to define the macros
  POW_OF_NEGATIVE_OKAY, LOG_OF_NAN_OKAY, LOG_OF_ZERO_OKAY,
  LOG_OF_NEGATIVE_OKAY, LOG10_OF_NAN_OKAY, LOG10_OF_ZERO_OKAY,
  LOG10_OF_NEGATIVE_OKAY, LOG2_OF_NAN_OKAY, LOG2_OF_ZERO_OKAY,
  LOG2_OF_NEGATIVE_OKAY, MEMCMP_RETURNS_SIGNUM and
  WMEMCMP_RETURNS_SIGNUM.
- In chkccomp.c the function determineFseekFunctions has been improved
  to make tests that actually use fseek() and ftell().
- Calls of logFunction have been added in cmd_rtl.c, str_rtl.c,
  strlib.c and striutl.c.
- In bstlib.c the function bst_cmp() has been improved to be based on
  bstCmp().
- The functions strCompare(), str_cmp() and bstCmp() have been
  improved to use different code depending on MEMCMP_RETURNS_SIGNUM
  and WMEMCMP_RETURNS_SIGNUM.
- In s7c.sd7 the function canTakeAddress has been improved to return
  FALSE for a CONSTENUMOBJECT.
2018-09-10 12:54:57 +00:00
Pietro Cerutti b6a3b7af13 lang/seed7: update to 05_20180708
20180708:
- The operating system DOS is supported (with DJGPP) again. The tests
  have been done with Dosbox.
- In the compiler (in comp/const.s7i) the actions BIN_AND and BIN_OR
  have been added to the list of special actions. This way the
  functions rotLeft and rotRight (from bin32.s7i and bin64.s7i) are
  implemented as inline functions. This reduces the runtime of sha256
  (from msgdigest.s7i) by 44% (measured with gcc and valgrind, when
  reading data from 200 https connections). The cpu-time of the whole
  test program was reduced by 17%.
- In msgdigest.s7i the functions md4, md5, sha1, sha224 and sha256
  have been improved to use an index for words instead of an index
  for chunks. This simplifies the conversion to 32-bit words.
- In comp/action.s7i the function process_action has been improved to
  use a case-statement instead of multiple if-statements. This reduces
  the runtime of process_action by 39% (measured with gcc and valgrind,
  when the compiler compiles itself). The runtime of the compiler is
  reduced by 2.5%.
- The contents of the libraries enable_input.s7i and enable_output.s7i
  have been moved to the library enable_io.s7i.
- The library comp/expr_util.s7i has been renamed to comp/expr_utl.s7i.
- The program chkccomp.c has been improved to search 64-bit functions
  for fseek() and ftell(). The findings are stored in version.h with
  the macros _FILE_OFFSET_BITS, OS_OFF_T_SIZE, os_off_t, os_fseek and
  os_ftell.
- In chkflt.sd7 the tests for float shift and logarithm of 0.0 have
  been improved.
- The file src/read_me.txt has been updated.
- In chkccomp.c the functions isNullDevice, initializeNullDevice,
  determineStatFunctions, determineOsFunctions and numericProperties
  have been improved.
- The program chkccomp.c has been improved to work for PostgreSQL
  versions 9.6, 10 and 11.
- In cmd_rtl.c the function getOsCwd has been improved to assure that
  PATH_DELIMITER is used as path delimiter.
- In flt_rtl.c the functions fltDigits and fltSci have been improved,
  to work correct, when printf() with format %f and %e and a huge
  precision crashes. Additionally fltSci() has been improved to work
  correct, when the number of exponent digits written with format %f is
  not fixed.
- In con_wat.c the functions kbdShut and conWrite have been improved
  and the functions term_descr_equal, tcset_term_descr, kbd_init,
  doWriteConsole and doCPuts have been added.
- The functions handleIntSignal, readCharChkCtrlC and filPipe have been
  added to fil_dos.c.
- The function drwConvPointList has been added to drw_dos.c.
- The definitions of volumeListType, IS_VOLUME_LIST and
  openVolumeList() have been moved from dir_win.h to the new file
  vol_drv.h
- In traceutl.c the function prot_cstri has been improved to optionally
2018-07-16 15:32:20 +00:00
Pietro Cerutti 83120e0c21 lang/seed7: update to 05_20180601
20180601:
- The library tls.s7i has been improved to support the server_name
  extension and to process handshake messages, that extend over several
  tls message records. Additionally TLS version 1.2 is used now.
- The library x509cert.s7i has been improved to accept a validity with
  times in GeneralizedTime data elements (additionally to times in
  UTCTime data elements).
- The library browser.s7i has been improved to support calling Safari
  under Mac OS X.
- Tests for the functions environment(), getenv() and setenv() have
  been added to chkcmd.sd7.
- A test that checks the sorting of an array of strings has been added
  to chkstr.sd7. This checks the compare() function for strings.
- The compiler s7c has been improved to create better code for the
  option -tf (trace functions). Now the trace functions are added after
  the declarations (such that older C compilers will accept this also).
- In chkflt.sd7 tests for NaN have been grouped together.
- In chkovf.sd7 tests for the binomial coefficient have been split into
  groups.
- The program chkccomp.c has been improved to define the macros
  LIMITED_CSTRI_LITERAL_LEN, LIMITED_ARRAY_LITERAL_LEN,
  DECLARE_OS_ENVIRON, USE_GET_ENVIRONMENT, INITIALIZE_OS_ENVIRON,
  DEFINE_WGETENV, DEFINE_WSETENV, os_environ, os_getenv, os_setenv,
  os_putenv, DELETE_PUTENV_STRING, DEFINE_WSTATI64_EXT,
  DEFINE_STRUCT_STATI64_EXT, DEFINE_FSTATI64_EXT, os_lstat, os_stat,
  os_fstat, os_stat_struct, os_fstat_struct, HAS_SELECT and HAS_MMAP.
- In int_rtl.c the macro DECIMAL_DIGITS has been improved to work with
  unsigned numbers.
- In str_rtl.c the function strCmpGeneric() has been changed back to
  the old behaviour. Now strCmpGeneric() and strCompare() have again
  the same behaviour. It has turned out that sorting an array of
  strings worked wrong, when the program was compiled.
- In pcs_win.c the function prepareCommandLine has been improved and
  the function copyQuotedPart has been added. Now the command line
  created for CreateProcessW() has fewer quoted parameters. Now
  parameters that contain a space or a quotation (") or a control
  character or a character byond ASCII are quoted. All other parameters
  are not quoted.
- Definitions of USE_MMAP, os_environ, os_fstat, DEFINE_WSTATI64_EXT,
  os_lstat, os_stat, os_stat_orig, os_stat_struct, os_fstat_struct,
  DEFINE_WSETENV, os_setenv, os_putenv and USE_DIRENT have been removed
  from the makefiles.
- In several files usages of USE_MMAP have been replaced by usages of
  HAS_MMAP.
- The file read_me.txt has been updated.
- In chkccomp.c the functions checkForLimitedArrayLiteralLength() and
  determineStatFunctions() have been added and the functions
  determineEnvironDefines() and determineBigIntDefines() have been
  improved. Now the test for the GMP library enforces static linking.
- The macros DEFINE_MATHERR_FUNCTION and DEFINE__MATHERR_FUNCTION have
  been improved to define if matherr() or _matherr() should be defined.
- Log functions have been improved in big_gmp.c, big_rtl.c and
  int_rtl.c.

20180513:
- In the manual descriptions of the binomial coefficient and of several
  conversion functions have been improved.
- The bas7.sd7 (basic interpreter) example program has been improved to
  use case statements with strings.
- The operator &:= has been added to the libraries bitsetof.s7i and
  bitset.s7i.
- The function rand() has been added to the library hashsetof.s7i. This
  function returns a random element from a hash set.
- The compiler (s7c) has been improved to generate code that uses
  memcpy or memmove to copy and create arrays of simple value types
  (e.g. array integer). The destruction of arrays of simple value types
  has also been simplified.
- The compiler has been improved to optimize the action SET_RAND.
- The compiler optimizations for the actions SET_DIFF, SET_UNION and
  SET_UNION_ASSIGN has been improved.
- In the compiler (in comp/const.s7i) the actions BLN_ICONV1,
  BLN_ICONV3, CHR_ICONV3 and SET_RAND have been added to the list of
  special actions. The compiler implements functions, which just call
  one of the special actions as inline functions.
- Interpreter and compiler have been improved to support the actions
  HSH_RAND_KEY and SET_INTERSECT_ASSIGN.
- Tests for the functions card() and rand() for the type set of string
  have been added to chkset.sd7.
- Tests for intersection assignments ( &:= ) have been added to
  chkset.sd7.
- In s7c.sd7 the code to call C compiler and linker has been
  refactored.
- The compiler has been improved (in comp/prc_act.s7i) to use the
  function hshIdxDefault0() instead of hshIdxWithDefault() for case
  statements with hashsets.
- The code generation of the compiler has been improved to trigger the
  signal SIGFPE with a call of triggerSigfpe().
- The compiler has been improved to insert diagnostic line information
  (e.g.: #line 64 "logfile.s7i") into code for the actions ARR_CPY,
  BLN_AND, BLN_OR, ITF_CPY, PRC_IF, PRC_IF_ELSIF, PRC_IF_NOOP
- The compiler has been improved to insert diagnostic line information
  for inlined functions.
- The configuration values in cc_conf.s7i have been improved.
  SWITCH_WORKS_FOR_INT64TYPE, CC_OPT_OPTIMIZE_1, CC_OPT_OPTIMIZE_2 and
  CC_OPT_OPTIMIZE_3 have been added. SYSTEM_DB_LIBS has been renamed
  to ADDITIONAL_SYSTEM_LIBS. HAS_SIGACTION, SIGNAL_RESETS_HANDLER and
  DO_SIGFPE_WITH_DIV_BY_ZERO have been removed.
- The program chkccomp.c has been improved. Now it determines the name
  of the NULL device (/dev/null or NUL:), the system socket library
  (unix sockets or winsocket), the method to read directories, the
  bigInteger implementation used (big_rtl.c or big_gmp.c) and the
  support for switch statements with 64-bit values.
- Documentation comments have been added or improved in bigint.s7i,
  integer.s7i, bitsetof.s7i, bitset.s7i, hashsetof.s7i, cc_conf.s7i,
  fil_rtl.c, dir_drv.h, cmd_rtl.c, set_rtl.c, str_rtl.c and striutl.c.
- In set_rtl.c the function setIntersect() has been improved to create
  a smaller intersection result, if possible.
- In set_rtl.c the function setIntersectAssign has been added.
- In setlib.c the function set_intersect_assign has been added.
- In hsh_rtl.c the functions get_helem_elem, get_hash_elem, hshRand
  and hshIdxDefault0 have been added.
- In hshlib.c the functions get_helem_elem, get_hash_elem and
  hsh_rand_key have been added.
- In gkb_x11.c and gkb_win.c the function find_window() has been
  improved to use hshIdxDefault0() instead of hshIdxWithDefault().
- In big_gmp.c the function bigDivRem has been improved to initialize
  the remainder.
- In str_rtl.c and strlib.c the function strelem_memcmp has been
  renamed to memcmp_strelem.
- In str_rtl.c the function strCmpGeneric has been changed to avoid
  calls of memcmp_strelem(), when the string sizes differ. This
  differs from the behaviour of strCompare, but the difference is not
  important, because strCmpGeneric() is only used for string
  comparisons of hash keys (in compiled programs).
- In striutl.c the function conv_to_cstri has been rewritten to return
  the C string, when the function succeeds, and to work without the
  parameter err_info.
- In striutl.c the function stri_to_bstriw has been rewritten to use
  an err_info parameter.
- In striutl.c the functions with loop unrolling inspired by Duff's
  device have been rewritten.
- In striutl.c the loops in conv_to_cstri, stri_to_cstri and
  conv_to_os_stri have been optimized.
- The macro castIntTypeForSwitch has been introduced to support C
  compilers, that do not support switch statements with 64-bit values.
- Definitions of NULL_DEVICE, USE_GETADDRINFO, USE_WINSOCK and
  BIGINT_LIB_DEFINE have been removed from the makefiles.

20180401:
- The new library logfile.s7i has been added. It defines the interface
  logFile. A logFile works like a normal file unless the log file
  has the value STD_NULL. When a logFile has the value STD_NULL string
  expressions written to the logFile are not evaluated. This reduces
  the overhead, when logging is turned off.
- The bas7.sd7 (basic interpreter) example program has been improved.
  The logging is now done via the new logFile type. This improves the
  performance, when no logging is done. Several DATA statements in one
  line are processed correctly now. Support for IF GOSUB and DISPLAY
  statements and for the function COMMAND$ has been added.
- Tests of nested bigInteger for loops have been added to chkbig.sd7.
- A test with the assignment of a hash variable to itself have been
  added to chkhsh.sd7.
- Tests of the replace function have been added to chkstr.sd7.
- In striutl.c the functions conv_from_os_stri, cstri8_to_stri and
  cstri8_buf_to_stri have been improved. Now they call realloc()
  only, when the size has changed. This improves the performance of
  conv_from_os_stri by 32% (measured with gcc and valgrind, when
  reading a directory).
- In str_rtl.c the function strUtf8ToStri has been improved to call
  realloc() only, when the size has changed.
- In cmd_rtl.c the functions add_stri_to_array and
  complete_stri_array have been renamed to addStriToRtlArray and
  completeRtlStriArray respectively. The renamed functions have also
  been improved to work with a simpler parameter list. Together with
  the improvement of conv_from_os_stri this improves the performance
  of cmdLs by 14% (measured with gcc and valgrind, when reading a
  directory).
- In cmdlib.c the function cmd_ls has been rewritten to be based on
  cmdLs. The functions cmp_mem and read_dir have been removed.
- In cmdlib.c the main loop in the function toArrayType has been
  optimized for performance.
- In str_rtl.c the function add_stri_to_array has been renamed to
  addCopiedStriToRtlArray and the function completeRtlStriArray has
  been introduced. The code of addCopiedStriToRtlArray has also been
  improved to work with a simpler parameter list.
- In strlib.c the function add_stri_to_array has been renamed to
  addCopiedStriToArray and the functions freeStriArray and
  completeStriArray have been introduced. The code of
  addCopiedStriToArray has also been improved to work with a simpler
  parameter list.
- The compiler has been improved to optimize the action HSH_CONTAINS,
  when the hash table is constant and contains one element.
- In the compiler (in comp/const.s7i) the actions BLN_ORD, CHR_ICONV1,
  CHR_ORD and INT_ODD have been added to the list of special actions.
  The compiler implements functions, which just call one of the
  special actions as inline functions. This allows optimizations for
  the boolean and char random number generator.
- The compiler (s7c) has been improved (in comp/destr.s7i) to define
  interface destructors, which take all possible implementation
  types into account. Additionally a switch statement is used instead
  of an if-then-else chain. Double entries are also avoided now.
- The function strChRepl has been added to str_rtl.c.
- The compiler has been improved to use strChRepl instead of strRepl,
  to optimize split operations.
- Unnecessary function parameters have been removed in several
  include files of the compiler.
- In flt_rtl.c the function doubleToCharBuffer has been improved to
  determine the integer value of the exponent without calling
  strtol().
- The function freeRtlStriArray has been added to arr_rtl.c.
- Several #define flags in pol_sel.c have been improved.
- The macro CSTRI_LITERAL_TO_STRI has been defined in striutl.h and
  used in analyze.c, arr_rtl.c, cmd_rtl.c, cmd_unx.c, infile.c,
  pcs_unx.c and pcs_win.c.
- Calls of logError have been added to functions in cmd_rtl.c,
  con_inf.c, prclib.c, soc_rtl.c, tim_dos.c, tim_rtl.c, tim_unx.c and
  tim_win.c.
- Documentation comments have been added or improved in cmdlib.c,
  int_rtl.c and tim_rtl.c.
2018-06-04 13:41:59 +00:00
Pietro Cerutti 67107f0681 lang/seed7: update to 05_20180304
20180304:
- In fil_rtl.c and ut8_rlt.c the functions filLineRead, filWordRead,
  ut8LineRead and ut8WordRead have been improved to use
  getc_unlocked() instead of getc(). This way the performance of the
  functions has been improved by a factor of 2 (filLineRead has been
  measured with gcc and valgrind).
- In listutl.c the performance of the function copy_list has been
  improved by 15% (measured with gcc and valgrind).
- In getf.s7i the performance of the function readf has been improved
  by a factor of 4 (measured with gcc and valgrind).
- The functions free_helem and free_hash in hshlib.c have been
  improved to stop searching for helems as soon as the last helem
  has been freed. This improves the performance free_hash by 36%
  (measured with gcc and valgrind).
- In fil_rtl.c the function read_and_alloc_stri and filGets have been
  improved to have less usages of err_info and num_of_chars_read.
- In soc_rtl.c the function receive_and_alloc_stri has been improved
  to have less usages of err_info and better logError messages.
- In hsh_rtl.c and hshlib.c the function create_hash has been
  improved to use memset to initialize empty hash tables.
- The functions bstCmp, genericCmp, ptrCmp, rflCmp and typCmp have
  been improved to use a result variable named signumValue.
- Interpreter and compiler have been improved to support the actions
  ACT_ICONV1, ACT_ICONV3, INT_ICONV1, INT_ICONV3 and REF_HSHLENGTH.
- The libraries integer.s7i, bin32.s7i, bin64.s7i, category.s7i and
  graph.s7i have been improved to use the new primitive actions.
- The function boolean(), which converts a string to a boolean value,
  has been added to boolean.s7i.
- The function char(), which converts a string to a char value, has
  been added to char.s7i.
- The function float(), which converts a string to a float value, has
  been added to float.s7i.
- The compiler has been improved to support the actions ACT_GEN and
  TYP_VARFUNC.
- The compiler now uses the function process_call_by_name_expr to
  create code for loop conditions, loop bodies and other call by name
  parameters.
- The functions process_match and process_inline_param have been
  added to the compiler.
- The compiler has been improved to implement functions, which just
  call one of the special actions HSH_CONTAINS, HSH_EXCL, HSH_INCL,
  HSH_KEYS, SET_BASELIT, SET_CONV, SET_ELEM, SET_EXCL, SET_INCL,
  SET_NOT_ELEM, as inline functions. This allows optimizations for
  the types set of char and set of string.
- The compiler has been improved to optimize the action HSH_CONTAINS,
  when the hash table is constant.
- The compiler optimizations for the actions SET_ELEM and
  SET_NOT_ELEM have been improved.
- A test, that checks for-loops over hash tables, has been added to
  chkhsh.sd7.
2018-03-05 09:36:29 +00:00
Pietro Cerutti bf4704053c lang/seed7: update to 05_20180107
20180107
- Interpreter and compiler have been improved to allow support
  for case statements with hashsets in the when parts. This allows
  e.g. case statements with string, bigInteger, type and other
  expressions.
- Several discrepancies between s7 and s7c have been fixed. Many
  thanks go to "tipd bmp" who sent a example programs to show the
  discrepancies. Thanks also for finding a bug in the manual.
- The following type conversion functions from integer have been
  introduced: bigInteger(), bigRational(), bitset(), boolean(),
  char(), float(), rational() and complex(). This fits to the
  existing conversion functions bin32() and bin64().
- The files bigrat.s7i, filesys.s7i, int_act.s7i, s7c.sd7, chkdb.sd7,
  dnafight.sd7, printpi1.sd7, printpi2.sd7 and savehd7.sd7 have been
  adjusted to use bigInteger() instead of the conv operator to
  convert an integer to a bigInteger.
- The function bigRational, which converts a string to a bigRational
  number, has been added to bigrat.s7i.
- The function rational, which converts a string to a rational
  number, has been added to rational.s7i.
- In rational.s7i the operator 'parse' has been improved to convert
  a string with a decimal number to a rational number.
- The functions float2Bits and bits2Float in bin32.s7i and bin64.s7i
  are deprecated and will be removed in a future version. The
  functions bin32(), bin64() and float() can be used instead to
  convert between float and bits in IEEE 754 representation.
- The programs bas7.sd7 and chkbin.sd7 have been changed to use the
  functions bin32(), bin64() and float() instead of float2Bits and
  bits2Float.
- Definitions of the operators |:= and &:= have been added to
  hashsetof.s7i.
- The library seed7_05.s7i has been improved to support case
  statements which consist just of an otherwise part.
- The program chkprc.sd7 has been improved to check integer and char
  case statements with otherwise part.
- The program chkprc.sd7 has been improved to check string,
  bigInteger and float case statements with and without otherwise
  part.
- The program chkbig.sd7 has been improved to check the bigInteger()
  conversion function.
- The program chkflt.sd7 has been improved to check the float()
  conversion function.
- Interpreter and compiler have been improved to support the actions
  BIG_ICONV1, BIG_ICONV3, BLN_ICONV1, BLN_ICONV3, CHR_ICONV1,
  CHR_ICONV3, FLT_ICONV1, FLT_ICONV3, SET_ICONV1, SET_ICONV3 and
  REF_ALLOC_VAR.
- The handling of CONSTENUMOBJECT and VARENUMOBJECT objects in
  s7c.sd7 has been improved.
- The functions initCaseLabelsOfWhen, initCaseLabelsOfCase and
  initCaseLabels have been added to s7c.sd7.
2018-01-08 10:40:52 +00:00
Pietro Cerutti 99985805d8 lang/seed7: update to 05_20170915 2017-10-27 12:11:39 +00:00
Mark Linimon 3d4e0b20c4 Sort ARCHS. While here, pet portlint.
Approved by:	portmgr (tier-2 blanket)
2017-06-27 00:05:15 +00:00
Pietro Cerutti ff42e1580f lang/seed7: include orphaned pkg-plist items, bump PORTREVISION 2017-05-04 13:30:23 +00:00
Pietro Cerutti 873a113ffa lang/seed7: update to 05_20170501
With this update, lang/seed7 depends on a number of database client libraries
(MySQL, SQLite, unixODBC and PostgreSQL). The reason for this is that the
configuration stage doesn't allow to specify which database drivers to use, but
rather automatically links against what's installed. This would cause
non-tracked dependencies in the case the user building the port happens to have
any of the drivers installed at build time.

20170501:
- The example program diff7.sd7 has been added. This program compares
  two files line by line.
- The example program hd.sd7 has been added. This program writes a
  hexdump of a given file.
- The functions sha384 and sha512 have been added to msgdigest.s7i.
- The compiler has been improved to optimize expressions like
  bin64(aBigExpression mod aPowerOfTwo).
- The library vectorfont.s7i has been improved to allow scaling of
  vector fonts.
- The dialog element passwordField has been added to cgidialog.s7i.
  The passwordField dialog element allows entering a password without
  readable echo.
- The function readPassword has been added to editline.s7i.
- In array.s7i the for-until loops for arrays have been improved to
  work correct, when the until-condition uses the for variable.
- In cli_cmds.s7i the functions getCommandParameter,
  getUnixCommandParameter and getDosCommandParameter has been
  improved to recognize when a closing quote is missing.
- In cli_cmds.s7i in the function processCommand the handling of
  external commands with redirection of stdin has been improved.
- The functions xyArray and scale have been added to graph.s7i.
- In seed7_05.s7i the exception DATABASE_ERROR has been introduced.
- The programs sql7.sd7 and chkdb.sd7 have been improved to use the
  new exception DATABASE_ERROR.
- A parse operator for dbCategory has been added to sql_base.s7i.
- The pictures return_pic and right_arrow_pic have been added to
  pic32.s7i and pic16.s7i.
- The function checkBinBinaryWithBigMod has been added to chkbin.sd7.
  This function checks the optimizations done with expressions like
  bin64(aBigExpression mod aPowerOfTwo).
- In tls.s7i the type securityParameters has been renamed to
  tlsParameters. The functions showMsg and showMsgType have been
  renamed to showTlsMsg respectively showTlsMsgType.
- In tls.s7i the generation of CLIENT_HELLO, SERVER_HELLO,
  CERTIFICATE, SERVER_HELLO_DONE, CLIENT_KEY_EXCHANGE,
  CHANGE_CIPHER_SPEC, FINISHED, ALERT and APPLICATION_DATA messages
  has been improved.
- In int_act.s7i the types addSubElementType and
  addSubElementListType have been renamed to addSubIntElementType
  respectively addSubIntListType.
- In the compiler (in big_act.s7i, function process_const_big_mod)
  the handling of the bigInteger mod operator, when the divisor is a
  power of two, has been improved. Now a temporary result is freed.
- In the compiler (in big_act.s7i, function process_const_big_mult)
  the handling of the bigInteger multiplication with a negated power
  of two has been improved. Now a temporary result is freed.
- The functions generateAddSubParamList and evaluateConstants have
  been added to comp/big_act.s7i.
- The function optimize_bin_binary_of_big_mod has been added to the
2017-05-04 13:19:04 +00:00
Pietro Cerutti 1f841fa447 lang/seed7: update to 05_20170129
20170129:
- The new library filesys.s7i has been added. It defines the interface
  fileSys. Files of TAR, ZIP and JAR achives and files from FTP and
  the operating system can be accessed via the fileSys interface. The
  file system changes are work in progress.
- The libraries tar.s7i, zip.s7i, ftp.s7i and osfiles.s7i have been
  adjusted to implement the new interface fileSys.
- Definitions of the types fileType, filePermission and fileMode have
  been moved from osfiles.s7i to the new library filesys.s7i.
- A definition of the file system osFiles has been added to
  osfiles.s7i.
- In ftp.s7i the interface ftpFileSys has been added. This interface
  extends fileSys with the functions listDir, getActiveMode,
  setActiveMode, getAsciiTransfer and setAsciiTransfer.
- The functions retrieve and store have been removed from ftp.s7i and
  the function open (to open a file) has been added.
- The new library ftpserv.s7i has been created. This library allows,
  that the backend of an FTP server is also a file system. Most of
  the contents of ftpserv.s7i has been moved from ftpserv.sd7.
- The functions setUpHead, tarTell, tarXtract and tarCreate have been
  moved from tar.s7i to the new library tar_cmds.s7i.
- The conversion functions bin32 and float have been added to
  bin32.s7i. This functions convert values between single precision
  float and bin32.
- The conversion functions bin64 and float have been added to
  bin64.s7i. This functions convert values between double precision
  float and bin64.
- The functions getBitLsb and getBitsLsb have been added to
  bitdata.s7i. This functions read bits from a file in the direction
  from LSB (least significant bit) to MSB (most significant bit).
- The operator |:= has been added to the libraries bitsetof.s7i and
  bitset.s7i.
- The type void has been improved to allow writing a void value.
  This allows that calc7.sd7 can execute procedures.
- The new library inflatefile.s7i has been added. It allows to
  uncompress data from a file with the Inflate algorithm. In contrast
  to inflatefile.s7i the functions from inflate.s7i assume that the
  compressed data is in a string.
- A test of the tar header checksum has been added to tar.s7i.
- A support for long link paths has been added to tar.s7i.
- The function readMinimumOfHead has been added to tar.s7i. With this
  function opening a tar archive can be done faster.
- The functions fileMode and getMTime in zip.s7i have been improved
  to recognize modes and times from different operating systems.
- In zip.s7i the function rposOfMagic has been improved to work with
  one call of seek() and one gets(). This way the function is faster,
  when the file is not a ZIP file.
- In zip.s7i the functions get_local_header, get_central_header and
  get_end_of_central_directory have been improved to read the fixed
  size part of the header with one statement and to convert the data
  afterwards. This improves the performance of get_central_header by
  about 10%.
- In zip.s7i a map of extra header fields has been introduced.
- In zip.s7i the function getContent has been renamed to getFile.
  Additionally the function has been improved to work when the local
  header does not contain the compressed size. In this case the new
  library inflatefile.s7i is used.
- The function timestamp1601ToTime has been added to time.s7i.
- A test for the operator |:= has been added to chkset.sd7.
- The function filGets in fil_rtl.c has been improved to recognize a
  request to read zero characters earlier. This improves this special
  case a little bit, without a negative effect on the normal case.
- The function uintCard has been added to int_rtl.c.
- The computation of the mode in the function fileAttr2UnixMode in
  stat_win.c has been improved.
- The program ftp7.sd7 has been improved to work with the new
  ftpFileSys interface.
- The program ftpserv.sd7 has been improved to work with the new
  library ftpserv.s7i.
- In seed7_05.s7i the function to convert an integer to a string with
  a given base has been improved.
- Interpreter and compiler have been improved to support the actions
  BIN_CARD, SET_UNION_ASSIGN and STR_FOR.
- In the compiler (s7c) the generation of inline code for the actions
  STR_RANGE and STR_SUBSTR has been improved. When some parameters are
  constant checks can be done at compile-time instead of run-time.
- In drw_x11.c the function redraw() has been improved and the new
  function setupBackup() has been added. This changes have been done
  to handle EXPOSE events correctly, when backing store has the value
  WhenMapped.
- In runerr.c the functions continue_question, run_error, empty_value
  and var_required have been changed to allow the repacement of the
  current exception with a new one.
- The function str_for has been added to strlib.c.
2017-01-30 12:44:27 +00:00
Pietro Cerutti 0ceaa4516a lang/seed7: update to 05_20161231
20161231:
- 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
  (HAS_SIGACTION is TRUE).
- 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
  string.
- 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
  SIGNAL_RESETS_HANDLER.
- 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.

20161204:
- 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
  wstati64Ext.
- 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
  stat_drv.h.
- 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
  ShellExecuteA().
- 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
  winter.
2017-01-02 17:47:52 +00:00
Pietro Cerutti 9af570eb34 lang/seed7: update to 05_20161031
- 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
  dir_win.h.
- 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
  bst_rtl.c.
2016-11-23 12:39:53 +00:00
John Marino 6fd38bbcad lang/seed7: Fix ports ncurses header inclusion
seed7 can only find the base ncurses headers, so augment the CFLAGS
so it can find the headers for the ncurses library it uses.

Approved by:	ncurses blanket
2016-11-20 00:06:14 +00:00
Pietro Cerutti 6b54361030 lang/seed7: update to 05_20161002
20161002:
- 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
  strlib.c.
2016-10-03 13:49:37 +00:00
Pietro Cerutti e4de22cc95 lang/seed7: update to 05_20160831
- The Seed7 runtime library has been improved to allow paths longer
  than PATH_MAX (260) characters under Windows.
- The program sydir7.sd7 has been improved. Now it is avoided to copy
  a file, when source and destination differ only by date. The
  option -c has been added. With -c the source is copied and files
  that are missing in the source are removed from the destination.
- The function readVolumeName in dir_rtl.c has been improved to allow
  extended length paths (This paths exist under Windows and have a
  prefix of \\?\ ).
- The functions opendir and wopendir in dir_win.c have been improved
  to allow paths longer than 260.
- In the library seed7_05.s7i the undocumented function xalloc has
  been removed.
- The function printArgv has been added to arr_rtl.c to improve the
  logging.
- The program chkccomp.c has been improved to write settings to
  always use the directory functions from dir_win.c under Windows.
- The function adjustCwdForShell has been added to cmd_rtl.c. This
  function sets the current working directory to something acceptable
  by cmd.exe.
- In stat_win.c the function wstati64 has been renamed to wstati64Ext
  and improved to call the original stat function, when possible.
- The new file stat_drv.h has been added. In this file a prototype
  of wstati64Ext is defined when necessary.
- The program wrdepend.c has been improved to work correctly, when
  the INCLUDE_OPTIONS macro contains newline characters.
- Calls of logFunction have been added to arr_rtl.c, cmd_rtl.c,
  dir_rtl.c, executl.c, fil_rtl.c, pcs_win.c, runerr.c, sctlib.c,
  sigutl.c, stat_win.c and striutl.c.
- Calls of logError have been added to arrlib.c, blnlib.c, cmd_rtl.c,
  conlib.c, dir_win.c, drwlib.c, enulib.c, fil_rtl.c, itflib.c,
  lstlib.c, prclib.c, reflib.c and striutl.c.
2016-09-02 08:26:56 +00:00
Pietro Cerutti 7cbf0d7841 lang/seed7: update to 05_20160731
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for CVD, CVDMBF, CVS, CVSMBF, HPLOT, MKD$, MKDMBF$, MKS$,
  MKSMBF$, PLOT, SCREEN, SHARED and VARPTR$ has been improved.
  Creating Cga, Ega and Vga images from arrays has been improved to
  work also for float and double arrays.
- The functions bin32, compare, hashCode, float2Bits, bits2Float,
  float2MbfBits and mbfBits2Float have been added to bin32.s7i. The
  functions fourBytesLeToBin32 and fourBytesBeToBin32 have been
  removed (The new function bin32 can be used instead).
- The functions bin64, compare, hashCode, float2Bits, bits2Float,
  float2MbfBits and mbfBits2Float have been added to bin64.s7i. The
  functions eightBytesLeToBin64 and eightBytesBeToBin64 have been
  removed (The new function bin64 can be used instead).
- The program chkbin.sd7 has been added. This program checks the
  correctness of the functions float2Bits, bits2Float, float2MbfBits,
  mbfBits2Float, str, radix and RADIX.
- Checks for the function decompose have been added to chkflt.sd7.
- The compiler has been improved optimize expressions where several
  terms are added or subtracted. It is possible to combine adjacent
  constant terms at compile time. This simplifies overflow checks.
- The compiler has been improved to store NaN values as bin64
  literals.
- The calc7 example program has been improved to support bin32 and
  bin64 functions.
- The function decompose and the type floatElements have been added
  to the library float.s7i. The function decompose splits a float into
  a normalized fraction and an integral exponent for 2. The result
  of decompose uses the type floatElements.
- The function integer (it converts a string to an integer) has been
  added to integer.s7i.
- In the library seed7_05.s7i the undocumented function xalloc has
  been replaced by the function create.
- The functions uintCmp and uintCmpGeneric have been added to
  int_rtl.c.
- The configuration value FREXP_INFINITY_NAN_OKAY has been added to
  cc_conf.s7i.
- The primitive action FLT_A2TAN has been renamed to FLT_ATAN2 in
  interpreter, compiler and runtime library.
- Documentation comments have been improved in bitdata.s7i, arrlib.c,
  binlib.c, bstlib.c, bst_rtl.c, fillib.c, kbdlib.c, literal.c.
- Interpreter and compiler have been improved to support the primitiv
  actions BIN_CMP, FLT_BITS2DOUBLE, FLT_BITS2SINGLE, FLT_DECOMPOSE,
  FLT_DOUBLE2BITS and FLT_SINGLE2BITS.
- The program chkccomp.c has been improved to define
  FREXP_INFINITY_NAN_OKAY and to work for PostgreSQL version 9.5.
2016-08-29 12:26:43 +00:00
Pietro Cerutti 443707c4c6 lang/seed7: update to 05_20160630
- The bas7.sd7 (basic interpreter) example program has been improved.
  Support for CVSMBF, CVDMBF, FLASH, FRE, GR, HGR, HOME, HTAB,
  INVERSE, NORMAL, TEXT, PR# and VTAB has been added. Support for
  CLEAR, COLOR, GET, INPUT, LOG, SQR and RUN has been improved.
  Some keywords can now be used as label.
- Documentation comments have been added or improved in several files.
- Definitions of the operator @:= have been added to bitset.s7i,
  bitsetof.s7i and hashsetof.s7i.
- The compiler has been improved optimize expressions like
  factor*base**exponent when the base is a power of two.
- In x509cert.s7i the constant stdCertificate has been improved to
  have a new validity (until end of 2017).
- In drw_win.c the function privateConsole has been improved to
  determine a private console window (A cmd.exe console that was
  invoked implizit when the program started) more reliable. This
  avoids that an already existing console (from which the program was
  started) is accidentally hidden.
- The function redraw in drw_x11.c has been improved to ignore NULL
  windows (EXPOSE events can arrive after a window has been freed).
- The function drwFree in drw_x11.c has been improved to free also the
  backup pixmap.
- Compiler and interpreter have been improved to support the action
  REF_ALLOC_INT.
- Checks for factor*base**exponent when the base is a power of two
  have been added to chkflt.sd7.
- Checks with several summands in a chain and checks of the
  subtraction of integer.first have been added to chkint.s7i.
- First steps have been done for a compiler optimization of adding
  and subtracting several summands in a chain.
- Occurances of nodeValue and MDULEOBJECT have been removed from
  interpreter and runtime library.
- The function prg_find has been removed from prglib.c.
- The function ref_find has been removed from reflib.c.
- The support for the actions PRG_FIND and REF_FIND has been removed
  from the interpreter.
- Function and variable definitions in setpaths.c and wrdepend.c have
  been changed to static definitions.
2016-07-01 13:07:55 +00:00
Pietro Cerutti 649d5fceac lang/seed7: update to 05_20160531
Changes:
- Documentation comments have been added or improved in many files.
- The compiler (s7c) has been improved to start C compiler and linker
  direct and not via a shell (except when the compiler must be started
  with a script).
- The program chkccomp.c has been improved to use consecutive numbers
  for test program files.
- The program chkccomp.c has been improved to show the progress of the
  tests done.
- The experimental function startProcess, with files to redirect, has
  been added to process.s7i.
- The functions childStdIn, childStdOut and childStdErr have been
  added to process.s7i.
- The function shellParameters has been added to shell.s7i.
- The function noEmptyStrings has been added to seed7_05.s7i.
- A conv operator to convert an interface object to a specific
  implementation type has been added to seed7_05.s7i.
- The compiler (s7c) has been improved to support the new conv
  operator defined in seed7_05.s7i.
- In cc_conf.s7i the configuration values CC_OPT_DEBUG_INFO,
  CC_FLAGS, LINKER_FLAGS, SYSTEM_LIBS, SYSTEM_CONSOLE_LIBS,
  SYSTEM_DRAW_LIBS and SYSTEM_DB_LIBS have been changed to be arrays
  of strings instead of strings.
- In cc_conf.s7i the configuration values CALL_C_COMPILER_FROM_SHELL,
  CC_ERROR_FILDES, REDIRECT_FILDES_1, REDIRECT_FILDES_2 and
  NULL_DEVICE have been added.
- In cc_conf.s7i the configuration value REDIRECT_C_ERRORS has been
  removed.
- Interpreter and compiler have been improved to support the actions
  PCS_CHILD_STDERR, PCS_CHILD_STDIN, PCS_CHILD_STDOUT, FIL_PIPE and
  FIL_OPEN_NULL_DEVICE.
- The function analyzeProg in analyze.c has been improved to have less
  usages of the global variable prog.
- The functions in chkccomp.c have been changed to static functions.
- The program chkccomp.c has been improved to define
  POPEN_SUPPORTS_CLOEXEC_MODE, FOPEN_SUPPORTS_CLOEXEC_MODE,
  HAS_FCNTL_SETFD_CLOEXEC and HAS_PIPE2.
- The function filPipe has been added to fil_unx.c and fil_win.c.
- In fil_rtl.c the functions filOpen and filPopen have been improved
  to open files with the CLOEXEC flag, when possible.
- The function filOpenNullDevice has been added to fil_rtl.c.
- The functions init_findid, init_entity and init_sysvar have been
  changed to use a progType parameter.
- The functions pcsStart in pcs_unx.c and pcs_win.c have been improved
  to have parameters for stdin, stdout and stderr.
- The functions pcsChildStdErr, pcsChildStdIn and pcsChildStdOut have
  been added to pcs_rtl.c.
. The functions pcs_childStdErr, pcs_childStdIn and pcs_childStdOut
  have been added to pcslib.c.
- In src/read_me.txt descriptions of SEARCH_PATH_DELIMITER.
2016-06-01 13:55:55 +00:00
Pietro Cerutti 32ca74e267 lang/seed7: update to 05_20160430
Changes:
- The makefile mk_clangw.mak has been improved, such that compilation
  with newer versions of clang under windows works better.
- Tests for integer parse have been added to chkexc.sd7.
- The function doRemove in chkccomp.c has been improved to write
  nothing to the console.
- The function showErrors has been added to chkccomp.c.
- In actutl.c the functions searchAction and findAction have been
  improved to use fewer parameters and the function getActIllegal
  has been added.
- In chkccomp.c the function writeReadBufferEmptyMacro has been
  improved to optionally use _get_stream_buffer_pointers() to define
  the macro read_buffer_empty.
- The operator 'char conv' has been improved to check if the integer
  fits in a character.
- Documentation comments have been improved in float.s7i, poll.s7i,
  actlib.c actutl.c, big_gmp.c, big_rtl.c, bln_rtl.c, bst_rtl.c,
  chr_rtl.c, cmd_rtl.c, dir_dos.c, dir_win.c, drw_rtl.c, fltlib.c,
  flt_rtl.c, int_rtl.c, pcs_rtl.c, pollib.c, pol_sel.c, pol_unx.c,
  prg_comp.c, rfl_data.c, setlib.c, set_rtl.c and str_rtl.c.
- Calls of logFunction have been added to functions in cmdlib.c and
  flt_rtl.c,.
- Calls of logError have been added to functions in actlib.c,
  biglib.c, bstlib.c, chrlib.c, cmdlib.c, drwlib.c, fillib.c,
  fltlib.c, hshlib.c, intlib.c, pcslib.c, pollib.c, prglib.c,
  rfl_data.c, rfllib.c, sctlib.c, setlib.c, strlib.c and typlib.c.
2016-05-20 15:38:52 +00:00
Dmitry Marakasov 4e942b6419 - Fix trailing whitespace in pkg-descrs, categories [g-n]*
Approved by:	portmgr blanket
2016-05-19 10:44:11 +00:00
Pietro Cerutti 777955df30 lang/seed7: update to 05_20160330
Changes:

- 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
  tls.s7i.
- 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
  chkstr.sd7.
- 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.
2016-04-08 09:16:10 +00:00
Pietro Cerutti b2d9aa469e lang/seed7: update to 05_20160229
Changes:

- 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
  USE_DIRENT, USE_DIRWIN, OS_WIDE_DIR_INCLUDE_DIR_H, os_DIR,
  os_dirent_struct, os_opendir, os_readdir, os_closedir,
  INCLUDE_SYS_UTIME, os_utimbuf_struct, USE_ALTERNATE_UTIME,
  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).
2016-03-08 11:20:23 +00:00
Pietro Cerutti fe905235c7 land/seed7: better patch for missing uint64_t 2016-02-23 12:49:42 +00:00
John Marino 92295a547c lang/seed7: document ncurses requirement (USES+=ncurses)
approved by:	infrastructure blanket
2016-02-08 19:31:12 +00:00
Pietro Cerutti 5c86446f98 lang/seed7: take back this port, update to 05_20160130.
Release notes:
http://sourceforge.net/projects/seed7/files/seed7/seed7_05_20160130/relnote_20160130.txt
2016-02-05 16:31:10 +00:00
Jimmy Olgeni 41a7072cfb Typos, whitespace and capitalization fixes (G-P). 2015-09-20 20:54:08 +00:00
Pietro Cerutti c020107379 - Reset maintainership of my ports 2014-12-10 22:29:14 +00:00
Baptiste Daroussin 77cba41a62 Cleanup plist 2014-10-27 15:23:30 +00:00
Pietro Cerutti b3a83969da - Update to 05_20140907
Changes:
  * The function setSearchPath has been added to the library
    process.s7i.
  * The compiler has been improved to write an error message, when the
    sets of a case-statement overlap. Until now this situation was only
    recognized by the C compiler.
  * The interpreter has been improved to raise an exception, when the
    current value of a case-statement is element of two sets.
  * There have been changes in the libraries makedata.s7i and make.s7i.
  * The macro expansion in makedata.s7i has been changed. Now all macro
    expansions (except the expansions of internal macros) are done with
    the function applyMacros.
  * In makedata.s7i the function applyMacros has been improved to
    process the makefile macro functions wildcard, error and warning.
  * The functions evalFunction and getMacro, that where used to do
    macro expansion when the makefile is read, have been removed.
  * The code to read the definition of recursively expanded variables
    has been changed to do no macro expansion. This macros are expanded
    when they are used.
  * The library make.s7i has been improved to read the parameters
    for the commands rm, cp, and mv as Unix shell parameters (with the
    function getUnixCommandParameter).
  * The library make.s7i has been improved to read the parameters
    for the commands del, copy, xcopy and move as Dos/Windows batch
    parameters (with the function getDosCommandParameter).
  * Interpreter and compiler have been improved to support the action
    CMD_SET_SEARCH_PATH.
  * The batch file bin/call_gcc.bat has been changed to work correctly,
    when it is called from any directory.
  * Writing error messages in error.c has been changed to use prot_...
    functions instead of printf.
2014-09-10 06:58:49 +00:00
Pietro Cerutti 2cac42ef5a - Update to 05_20140817
Changelog:

  * The chapter about files in the manual has been improved.
  * Variants of the for-each-loop with an until condition have been
    added to array.s7i.
  * The parse operator for characters has been improved to accept only
    strings with a length of 1.
  * The function trimValue has been introduced. This function trims a
    string such that it can be converted to a specified type.
  * The exception handlers for RANGE_ERROR have been removed from the
    functions read and readln in enable_input.s7i. The functions read
    and readln now raise range RANGE_ERROR when the conversion to the
    target type fails.
  * Occurances of io_ok, io_error, io_empty and io_filled have been
    removed from the libraries. This undocumented feature was not used
    for years. The function succeeds and the functions read and readln
    with default value are better suited for error checking, when data
    is read.
  * The exception handlers in interpreter and compiler have been
    improved to allow an otherwise part.
  * The function succeeds has been introduced. This function executes
    a statement and returns TRUE when no exception occurs.
  * The example programs nicoma.sd7 and savehd7.sd7 have been improved
    to use the new function succeeds.
  * The parse operator for float has been changed to raise RANGE_ERROR
    when leading whitespace is found.
  * The library make.s7i has been improved to accept the commands
    erase, xcopy, mv, move and rem.
  * The library makedata.s7i has been improved to accept the macro
    functions subst and patsubst.
  * The reading of rules in makedata.s7i has been improved to read
    commands without macro substitution. The macros in commands are
    substituted just before the commands are executed.
  * The make functions in make.s7i have been changed to raise
    FILE_ERROR when a command fails.
  * The function applyMacros in makedata.s7i has been improved to
    accept macro functions and the shorthands of patsubst.
  * The function replaceSuffixes in makedata.s7i has been improved to
    accept pattern substitution with the % character.
  * In the library make.s7i the logging has been removed from the
    functions doRm, doCp, doPwd, doEcho, doCd, doMake, doOneCommand,
    doCommands and processCommand.
  * The program chkflt.sd7 has been adjusted to work with the strict
    parse operator for float.
  * Interpreter and compiler have been improved to support the actions
    PRC_BLOCK_CATCH_ALL and PRC_BLOCK_OTHERWISE.
  * The program sudo.c has been improved to work without upper limit
    for the parameter length.
  * The functions checkIfOutsideRange and negate have been added to
    int_act.s7i.
2014-08-28 10:36:27 +00:00
Pietro Cerutti 7d89615715 - Update to 05_20140803
Changes:

  * The handling of ctrl-c has been changed to work better under
    windows.
  * The runtime of the function intPowOvfChk in int_rtl.c has been
    reduced to 57% (measured with gcc and valgrind).
  * The generation of code in the compiler for the action INT_POW has
    been improved. When the base is a negative power of two the
    exponentiation is done with a shift instead of a call of intPow
    (respectively intPowOvfChk).
  * The overflow checking for INT_POW in the compiler has been
    improved. When base or exponent is known the overflow checking is
    done with inline code and intPow is called instead of intPowOvfChk.
  * Documentation comments have been added to bitsetof.s7i
  * Tests for ** have been added to chkint.sd7 and chkovf.st7
  * The tests for * and *:= in chkovf.st7 have been reorganized.
  * An interrupt_flag has been introduced in the interpreter. This flag
    is used for exception handling and for signal handling. Exceptions
    set interrupt_flag and fail_flag (with the macro set_fail_flag).
    Signals set only the interrupt_flag (file sigutl.c). The
    interrupt_flag is handled in exec_action (file exec.c).
  * The functions signal_name, handle_signals, handle_segv_signal,
    handle_term_signal and activate_signal_handlers in sigutl.c have
    been improved.
  * The functions continue_question, write_curr_position and
    show_signal in runerr.c have been improved.
  * The functions handle_int_signal, readChar, doGetcFromTerminal,
    doGetsFromTerminal, doLineRead, doLineReadFromTerminal, doWordRead,
    doWordReadFromTerminal, filGetcChkCtrlC, filGetsChkCtrlC,
    filHasNextChkCtrlC, filLineReadChkCtrlC and filWordReadChkCtrlC
    have been added to fil_rtl.c. This functions support reading from
    a terminal with a check for ctrl*c. This functions are used by the
    interpreter (file intlib.c).
  * Tracing has been added to functions in int_rtl.c.
  * Configuration defines for CTRL_C_SENDS_EOF,
    SIGNAL_HANDLER_CAN_DO_IO and INT64TYPE_NO_SUFFIX_BUT_CAST have been
    added to makefiles.
2014-08-04 12:04:58 +00:00
Pietro Cerutti 364a875e6d - Update to 05_20140720
Changes:

  * The compiler has been improved to generate overflow checking code
    by default. The generation of overflow checking code can be
    switched off with the option -so.
  * The exception OVERFLOW_ERROR has been introduced. It is raised by
    the interpreter and by compiled programs when an integer overflow
    occurs.
  * A paragraph about integer overflow and the installation of Seed7
    has been added to the FAQ.
  * The chapter about exceptions in the manual has been improved.
  * The program chkovf.sd7, which checks the recogition of integer
    overflows, has been added.
  * Checks for +, -, *, rem, mod, <<, +:=, -:=, *:=, succ, pred, incr
    and decr have been added to chkint.sd7.
  * Checks for the lpad operator have been added to chkstr.sd7.
  * The compiler option -r has been replace by the option -sr.
  * The program calc7.sd7 has been improved to report MEMORY_ERROR and
    OVERFLOW_ERROR.
  * The library make.s7i has been improved such that make7.sd7 accepts
    echo (and echo.) statements without parameters.
  * The function eof has been defined for the type tlsFile in tls.s7i.
  * The function gets in tls.s7i has been improved.
  * The function getHttp in gethttp.s7i has been improved to avoid an
    endless loop when eof has been reached.
  * The function memcpy_from_strelem has been added to striutl.c. This
    function uses loop unrolling inspired by Duff's device and a trick
    with a binary or (|=) to check for allowed values.
  * The functions filWrite, socWrite and bstParse have been changed
    to use memcpy_from_strelem. The reduction in runtime has been
    measured with gcc and valgrind. The runtime of filWrite, socWrite
    and bstParse has been reduced to 53%, 61% and 56% respectively.
  * Documentation comments have been added to integer.s7i, bin32.s7i,
    intlib.c and striutl.c.
  * The compiler has been improved to generate overflow checking code
    for *, <<, >>, *:=, <<:= and >>:= .
  * The generation of overflow checking code for the operators rem and
    mod has been improved.
  * Checks for overflow, division by zero, numeric error and index out
    of bounds in compiled programs now use the macros ovfChk, divChk,
    numChk and idxChk. This macros inform the C compiler about the
    unlikeliness of an exception.
  * The function fltIPow has been improved to avoid a signed integer
    overflow, when the exponent is the most negative integer.
  * The primitive actions INT_ULSHIFT and INT_ULSHIFT_ASSIGN have been
    added and supported in interpreter and compiler.
  * A version of the function uint_rand, which uses 128-bit integers,
    has been added to int_rtl.c.
  * The function raise_error3 in runerr.c has been renamed to
    interprRaiseError.
  * The configuration values INT128TYPE, UINT128TYPE and MACRO_DEFS
    have been added to cc_conf.s7i. The configuration value
    SIGILL_ON_OVERFLOW has been replaced with OVERFLOW_SIGNAL.
  * The functions constValueIsEqual, checkRangeFromZero,
    process_const_int_lshift, process_const_int_lshift_assign,
    process_const_int_rshift_assign, process_const_int_mult,
    process_const_int_mult_assign, process_const_int_ulshift_assign,
    process_const_int_ulshift and process_const_int_urshift_assign
    have been added to int_act.s7i.
  * The function intExpr in chkbig.sd7, chkexc.sd7, chkint.sd7 and
    chkstr.sd7 has been changed to make sure that the C compiler
    cannot evaluate it at compile time.
  * The runtime of the functions str_lpad, strLpad and strLpadTemp has
    been improved.
2014-07-21 08:34:26 +00:00
Pietro Cerutti 6b5bcc894a - Update to 05_20140706
Changes:
  * The interpreter has been improved to recognize integer overflow.
    Now the exception NUMERIC_ERROR is raised, when a program triggers
    an integer overflow. The checks for overflow are done in software,
    but the overhead is small. With overflow checks the interpreter
    needs 0.5% (zero point five percent) more run-time to execute the
    program chkint.sd7 (verified with gcc and valgrind).
  * A chapter about the Seed7 Structured Syntax Description (S7SSD)
    has been added to the manual.
  * The for-until-loops in bitset.s7i and bitsetof.s7i have been
    improved such that the for-variable has the correct value, when it
    is used in the until-condition.
  * The function replaceN has been added to string.s7i. This function
    does replacements until no occurance of the target string is left.
    This function is used by toStdPath to replace multiple occurances
    of a character by one occurance (replace("/a///b////c", "//", "/")
    returns "/a/b/c").
  * The program calc.sd7 has been renamed to calc7.sd7.
  * The program calc7.sd7 has been changed to accept the commands
    'quit' and 'exit'. This commands can be used to exit the program.
    The possibility to leave the program with an empty input line has
    been removed.
  * The program calc7.sd7 has been improved to write the name of the
    exception, when it has been raised.
  * The compiler has been improved to allow the generation of overflow
    checking code. Overflow checking code can be generated for the
    operators +, -, **, +:= and -:= and the functions abs, succ, pred,
    incr and decr. Until the rest of the functions is implemented and
    enough tests have been added to chkint.sd7 the functionality is
    switched off.
  * The template FOR_UNTIL_DECLS has been added to forloop.s7i. This
    template defines for-loops with a condition.
  * The function abs has been moved from the library math.s7i to the
    library float.s7i.
  * Checks for addition, subtraction, multiplication, power and abs
    have been added to chkint.sd7.
  * In the compiler the statements to write the C prototypes have been
    moved from s7c.sd7 to functions in the files comp/xxx_act.s7i
    (xxx is the abbreviation for the corresponding primitive type).
  * The functions getReference getParameterAsReference have been added
    to comp/expr_util.s7i.
  * The function isit_bool from objutl.c has been replaced by the macro
    isit_bool (defined in objutl.h). This improves the speed of the
    interpreter.
  * The function set_card has been improved to call setCard, which
    computes the cardinality of a set much quicker.
2014-07-08 07:29:30 +00:00
Pietro Cerutti 8d1ecbb00a - Update to 05_20140615
Changes:

  * The makefile mk_freebsd.mk has been changed to work with the new
    version of chkccomp.c. Thanks go to Pietro Cerutti for pointing out
    the problem.
  * The self extracting Seed7 package for windows has been improved to
    use gcc version 4.8.1 instead of 4.5.0.
  * The new function removeTree, which removes a directory tree, has
    been introduced in osfiles.s7i. The function removeAnyFile, which
    has been used for the same purpose, is deprecated. Deprecated
    functions will be removed in a future version.
  * Checks for hash tables with character keys have been added to
    chkhsh.sd7.
  * The test program "chkcmd.sd7" has been added. This program checks
    functions that copy, move and remove files. Note that windows has
    race conditions when files are copied, moved and removed quickly in
    succession. This bug of windows cannot be fixed in a runtime
    library.
  * The function temp_name_in_dir has been added to striutl.c.
  * The typedef of socketType in common.h has been changed such that
    socketType is always int.
  * Functions in soc_rtl.c, pol_sel.c and pol_unx.c have been changed
    to use the type os_socketType.
  * Tracing statements in hsh_rtl.c, cmd_rtl.c, drw_win.c and drw_x11.c
    have been changed to use the FMT_ strings from common.h. This way
    the tracing is more portable.
  * Under Windows the functions cmdRemoveFile and cmdRemoveTree now
    rename a file before it is removed. When the renaming fails the
    directory is left intact. This avoids half removed directory trees
    under Windows, when a process has the current working directory
    somewhere in the directory that is to be removed. The renaming also
    lowers the probability of race conditions under Windows, but they
    still can happen.
  * The function checkMoveDirectory has been added to chkccomp.c.
  * The target make7 has been added to the makefiles. With 'make make7'
    an executable of the make7 program is generated and placed in
    seed7/bin.
2014-06-23 12:40:05 +00:00