Seed7 / News: Recent posts

New Seed7 Release 2017-05-01

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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 compiler (in bin_act.s7i). This function optimizes the expression bin64(aBigNumber mod aPowerOfTwo) to bigLowerBits64(aBigNumber) & ord(pred(aPowerOfTwo)). This optimization converts to bin64 earlier. This allows the usage of cheap bin64 operations instead of bigInteger operations.
  • The functions optimizeAddSubElement and optimizeAddSubList have been added to comp/bin_act.s7i.
  • In big_rtl.c the performance of the functions bigFromUInt32 and bigFromUInt64 has been improved.
  • The function bigLowerBits64 has been added to big_rtl.c and big_gmp.c. This function is used by the compiler to optimize expressions like bin64(aBigNumber mod aPowerOfTwo).
  • The program chkccomp.c has been improved to check for the presence of snprintf() and vsnprintf().
  • The functions sql_eq_db, sql_eq_stmt, sql_ne_db and sql_ne_stmt have been added to sqllib.c.
  • Interpreter and compiler have been improved to support the actions DRW_CONVPOINTLIST, SQL_CMP_DB, SQL_CMP_STMT, SQL_EQ_DB, SQL_EQ_STMT, SQL_ERR_CODE, SQL_ERR_DB_FUNC, SQL_ERR_LIB_FUNC, SQL_ERR_MESSAGE, SQL_NE_DB and SQL_NE_STMT.
  • Support for the action DRW_CONVPOINTLIST has been added to drwlib.c, drwlib.h, drw_win.c and drw_x11.c.
  • A definition of snprintf has been added to fil_win.c.
  • The function list_length has been added to listutl.c.
  • The new files sql_base.c and sql_base.h have been added. This files contain definitions of dbLibError, dbInconsistentMsg and dbError. The makefiles have been adjusted to use sql_base.c.
  • The database drivers sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c have been improved to write database errors to the struct dbError. The content of dbError can be obtained with the actions SQL_ERR_CODE, SQL_ERR_DB_FUNC, SQL_ERR_LIB_FUNC and SQL_ERR_MESSAGE.
  • The functions sqlErrCode, sqlErrDbFunc, sqlErrLibFunc and sqlErrMessage have been added to sql_rtl.c
  • The handing of local variables has been changed in blockutl.c (improved function get_local_var_list) and prclib.c (new functions process_local_decl and evaluate_local_decls). Instead of executing the local declarations as a whole they are now executed line by line. This change might be useful for future improvements.... read more
Posted by Thomas Mertes 2017-05-01

New Seed7 Release 2017-03-28

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • A chapter about signals has been added to the manual.
  • The handling of ctrl-c (respectively the signal SIGINT), when s7 or s7c are used with the option -ts, has been improved:
    • A dialog offers several possibilities: Continue, terminate, trigger SIGFPE or raising an exception.
    • If the program was waiting for an input at the console the input can be entered again.
    • Under windows signal handler and the program that waits for an input are synchronized now.
  • The library aes.s7i with AES (Advanced Encryption Standard) cipher support has been improved to support key lengths of 192 and 256 bits.
  • The library tls.s7i has been improved to support the cipher suits TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256 and TLS_RSA_WITH_AES_256_CBC_SHA256.
  • The performance of the function bigMultAssign in big_rtl.c has been improved by a factor of 22 (measured with gcc and valgrind when big1 := 123456789_**123456; big1 *:= 123456789_**123456; is computed). Now Karatsuba multiplication is used to compute *:= .
  • The functions wildcardMatch and findMatchingFiles have been moved from cli_cmds.s7i to the new library wildcard.s7i.
  • The function flush has been added to pixmap_file.s7i.
  • The signal handling of interpreted and compiled programs has been unified. Now the signal handling is done in sigutl.c.
  • Sigutl.c has been moved from the library s7_comp.a to the run-time library seed7_05.a.
  • Code to generate signal handling functions has been removed from s7c.sd7.
  • The functions kbdKeyPressed and kbdGetc in con_win.c have been rewritten to use Win32 functions (PeekConsoleInputW and ReadConsoleInputW) instead of functions from conio.h (kbhit and getch). The include directive for conio.h has been removed.
  • Code to use conio.h has been moved from con_win.c to con_con.c.
  • In fil_win.c the function stdinReady has been added and calls of kbhit have been replaced by calls of stdinReady. The include of conio.h has been removed.
  • Checks that test if NaN is returned as error value for math functions have been added to chkflt.sd7.
  • Checks that test if sqrt of a negative number raises NUMERIC_ERROR have been added to chkbig.sd7 and chkint.sd7.
  • Checks for sqrt have been added to chkint.sd7.
  • Checks for *:= have been added to chkbig.sd7.
  • The configuration value SQRT_FUNCTION_OKAY has been added to cc_conf.s7i.
  • The program esc2qte.c has been improved to avoid generating output with a newline character inside a quoted part.
  • The function readChar has been renamed to readCharChkCtrlC and moved from fil_rtl.c to fil_unx.c and fil_win.c.
  • The function readCharFromTerminal has been added to fil_rtl.c. This function allows to re-enter the input, when a program is resumed after a ctrl-c.
  • The functions doLineRead and doWordRead have been removed from fil_rtl.c. The content of this functions has been moved to filLineRead respectively filWordRead.
  • The function fltSqrt has been added to flt_rtl.c. This function checks for negative arguments. This avoids a bug of MinGW-w64 where sqrt(-2.0) returns -2.0 instead of NaN.
  • The configuration value SQRT_FUNCTION_OKAY has been added to cc_conf.s7i.
  • The compiler (s7c) has been improved to use fltSqrt when SQRT_FUNCTION_OKAY is FALSE.
  • The functions sqlCpyDbGeneric, sqlCpyStmtGeneric, sqlCreateDbGeneric, sqlCreateStmtGeneric, sqlDestrDbGeneric and sqlDestrStmtGeneric have been added to sql_rtl.c.
  • The function suspendInterpreter has been added to exec.c.
  • The function uncaught_exception has been added to runerr.c.
  • In executl.c the functions old_do_create, do_create, do_destroy, old_do_copy and do_copy have been improved. Now the functions write a message about an uncaught exception, when the function fails and exception tracing is switched on.
  • The file stat_drv.h has been improved to optionally define the st_mode macros and the struct stati64Ext.
  • In stat_win.c the function fstati64Ext has been improved to use os_fstat_orig or for work without os_fstat_orig.
  • In chkccomp.c the code that searches for the MySql include file has been fixed.
  • The program chkccomp.c has been improved to define the macros likely, unlikely, NORETURN, INTPTR_T_DEFINED, FLOAT_ZERO_DIV_ERROR, FREXP_INFINITY_NAN_OKAY and LIMITED_CSTRI_LITERAL_LEN always.
  • The program chkccomp.c has been improved to define the macro DIGRAPH_SEQUENCES_ARE_REPLACED.
  • The file config.h has been changed to define the macros WITH_STRI_CAPACITY, ALLOW_STRITYPE_SLICES, ALLOW_BSTRITYPE_SLICES, WITH_LIST_FREELIST, WITH_NODE_FREELIST, WITH_FILE_FREELIST, STACK_LIKE_ALLOC_FOR_OS_STRI, FLOATTYPE_DOUBLE, MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS, FORBID_DRIVE_LETTERS and EMULATE_ROOT_CWD always.
  • At several places #ifdef has been replaced by #if to adopt to the macros that are always defined.
  • Documentation comments have been added or improved in big_rtl.c, con_cap.c, con_con.c, con_cur.c, con_dos.c, con_rtl.c, con_tcp.c, intlib.c, asn1.s7i and wildcard.s7i.... read more
Posted by Thomas Mertes 2017-03-28

New Seed7 Release 2017-03-05

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The performance of the function bigIPow in big_rtl.c has been improved by a factor of 15 (measured with gcc and valgrind when bitLength(123456789_**123456) is computed). Now Karatsuba multiplication and Karatsuba squaring is used to compute the power.
  • The performance of the function uBigMult in big_rtl.c has been improved by 22% (measured with gcc and valgrind).
  • The compiler has been improved to optimize expressions like:
    stri := stri & ....
    stri := stri[pos ..];
    stri := lower(stri);
    stri := upper(stri);
    The optimization avoids an unnecessary copy of the string result of the right hand side expression.
  • The code generated by the compiler for the action STR_FOR has been improved. Now correct code is generated, when the for-statement loops over a string expression.
  • The library seed7_05.s7i has been improved to support if-statements with omitted statement after the keyword 'then'.
  • The functions getFile and putFile have been added to osfiles.s7i.
  • The bas7.sd7 (basic interpreter) example program has been improved. Support for the commands FILES and LOAD has been added.
  • Testcases for the power operator (**) and the operators div, rem, mdiv and mod have been added to chkbig.sd7.
  • Testcases for the new string optimizations done by the compiler have been added to chkstr.sd7.
  • Interpreter and compiler have been improved to support the action PRC_IF_NOOP.
  • The new library http_response.s7i has been added. It contains support for HTTP responses.
  • The comanche webserver has been improved to work with the new library http_response.s7i.
  • In big_rtl.c the functions bigIPow and bigIPowN have been improved to use uBigSquareK and uBigMultK instead of uBigSquare and uBigMultIntoHelp.
  • In big_rtl.c an improved version of uBigDigitMult has been added and an older deactivated (but faster) version of uBigMult has been reactivated.
  • In str_rtl.c the function strHeadTemp has been improved to avoid a heap corruption for the strange corner case that shrinking a memory area fails. Additionally this can only happen with the new compiler optimization that generates the expression:
    aString = strHeadTemp(aString, anIndex);
  • The functions uBigMultIntoHelp and uBigSquare have been removed from big_rtl.c
  • In flt_rtl.c the functions fltDgts and fltSci have been improved to work correct, when printf() does not have a fixed maximum for the float precision.
  • The program chkccomp.c has been changed such that several test programs link with SYSTEM_LIBS, when wide variants of system file funtions are tested.
  • The test programs of chkccomp.c, which determine BOOLTYPE, FLOAT_ZERO_DIV_ERROR, PRINTF_FMT_E_MAXIMUM_FLOAT_PRECISION and PRINTF_FMT_F_MAXIMUM_FLOAT_PRECISION have been improved.
  • The test programs of chkccomp.c, which determine database include files have been improved to use something from the include file. This way the correct include file is selected when a C compiler just warns about a missing include file instead of flagging an error**.... read more
Posted by Thomas Mertes 2017-03-05

New Seed7 Release 2017-01-29

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2017-01-29

New Seed7 Release 2016-12-31

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-12-31

New Seed7 Release 2016-12-04

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-12-04

New Seed7 Release 2016-10-31

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-10-31

New Seed7 Release 2016-10-02

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-10-02

New Seed7 Release 2016-08-31

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-08-31

New Seed7 Release 2016-07-31

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-07-31

New Seed7 Release 2016-06-30

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-06-30

New Seed7 Release 2016-05-31

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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. REDIRECT_FILDES_1, REDIRECT_FILDES_2, NULL_DEVICE, REDIRECT_C_ERRORS and CC_ERROR_FILDES have been improved.
  • The functions find_sysvar and concat_path have been renamed to findSysvar and concatPath respectively.... read more
Posted by Thomas Mertes 2016-05-31

New Seed7 Release 2016-04-30

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-04-30

New Seed7 Release 2016-03-30

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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.... read more
Posted by Thomas Mertes 2016-03-30

New Seed7 Release 2016-02-29

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • 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).... read more
Posted by Thomas Mertes 2016-02-29

New Seed7 Release 2016-01-30

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

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

New Seed7 Release 2015-12-16

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • A compiler bug, triggered with a nested function and an array parameter, has been fixed. Many thanks go to "rfnbs" for providing an excellent bug report. The bug was fixed by changing the type of the global variable 'prog' and by saving and restoring the 'prog' variable in the functions get_create_call_obj and get_destroy_call_obj.
  • The functions toAscii85 and fromAscii85 have been added to the library encoding.s7i.
  • Definitions of for-each-loops, which have an until condition and loop over the characters of a string, have been added to the library forloop.s7i.
  • The function gzcompress has been added to the library gzip.s7i.
  • The type of the global variable 'prog' has been changed from progRecord to progType (pointer to progRecord).
  • Changes have been done in analyze.c, atom.c, blockutl.c, dcllib.c, doany.c, entutl.c, error.c, exec.c, expr.c, findid.c, findid.h, match.c, name.c, parser.c, prclib.c, prg_comp.c, prglib.c, reflib.c, runerr.c, s7.c, sctlib.c, syntax.c, syvarutl.c, syvarutl.h, traceutl.c and type.c to reflect that the type of the variable 'prog' changed from struct to pointer to struct.
  • The functions get_create_call_obj and get_destroy_call_obj in executl.c have been changed to save, set and restore the variable 'prog'.
  • In chkccomp.c all functions, which have a name starting with 'detemine', have been renamed such that the name starts with 'determine'.... read more
Posted by Thomas Mertes 2015-12-16

New Seed7 Release 2015-11-29

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The library bitdata.s7i, which provides functions to read and write bits to and from strings, has been added.
  • The libraries deflate.s7i and inflate.s7i have been changed to use functions from bitdata.s7i.
  • The undocumented function reverseBits has been moved from deflate.s7i to bitdata.s7i. The meaning of the two parameters has been changed.
  • The constant array reverseBits has been added to bitdata.s7i. All calls of the function reverseBits have been removed.
  • Calls of the function reverseBits in deflate.s7i have been replaced by usages of the array reverseBits.
  • In inflate.s7i two loops have been replaced by usages of the array reverseBits.
  • The library lzw.s7i, which provides support for Lempel-Ziv-Welch compression and decompression, has been added.
  • The function gzuncompress has been added to gzip.s7i. This function decompresses a string that was compressed with zlib (RFC 1950).
  • The function literal(in char: ch) in seed7_05.s7i has been changed to write character literals with the new numeric escape sequence.
  • In the function detemineOdbcDefines (file chkccomp.c) the test program, that verifies the linker option for the static lib, has been improved to work correctly under Windows.
  • Definitions for SQLGetData() have been added to db_odbc.h and sql_odbc.c.
  • Support to read a CLOB (Character large object) from an ODBC database has been added to sql_odbc.c.... read more
Posted by Thomas Mertes 2015-11-29

New Seed7 Release 2015-11-10

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The program toutf8.sd7 has been improved to accept byte order marks for the encodings UTF-16BE and UTF-16LE.
  • Documentation comments have been improved in bigint.s7i, integer.s7i, big_gmp.c, big_rtl.c, bst_rtl.c, flt_rtl.c, int_rtl.c, pcs_rtl.c, rfl_data.c, set_rtl.c, str_rtl.c and typ_data.c.
  • In analyze.c and prg_comp.c function names and parameter names have been changed to use camel case.
  • The global variable programPath and the function relativeToProgramPath have been removed. They were only used when the makefile setting PATHS_RELATIVE_TO_EXECUTABLE was active (this setting was not used by any makefile for years).
  • All explanations related to PATHS_RELATIVE_TO_EXECUTABLE has been removed from the FAQ and from src/read_me.txt.
  • The functions hsh_incl and hsh_update in hshlib.c have been changed to raise RANGE_ERROR when cmp_func is NULL.... read more
Posted by Thomas Mertes 2015-11-10

New Seed7 Release 2015-10-29

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The explanation in the FAQ, how Seed7 programs can be debugged with Eclipse, has been improved.
  • The function commandPath in process.s7i has been improved to return always "", when the executable is not found.
  • The functions processOptions and printOptions in s7.c have been improved to use a parameter instead of a global variable.
  • Calls of logFunction have been added to hsh_rtl.c, listutl.c, match.c and rfl_data.c.
  • In striAsUnquotedCStri and bstriAsUnquotedCStri (file striutl.c) the size of the static char buffer is computed at compile-time instead of estimated.
  • Several numeric literals have been replaced by defined constants.
  • The makefile mk_freebsd.mk has been changed to use numutl.c instead of sql_util.c.
  • To improve the readability the maximum line length in several C source files has been reduced.... read more
Posted by Thomas Mertes 2015-10-29

New Seed7 Release 2015-10-11

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • Errors in the bigInteger operators +:= and -:= have been fixed. This errors were triggered with expressions like A +:= A; when the value of A has a value in a specific range. Thanks go to Fausto C. for reporting this problem.
  • The example program ide7.sd7 has been improved to start programs as process and to allow their termination.
  • The chapter about errors in the manual has been improved.
  • The picture terminate_pic has been added to pic16.s7i and pic32.s7i.
  • Checks for +:=, -:= and *:= have been added to chkbig.sd7.
  • Documentation comments have been added to aes.s7i, arc4.s7i, bin32.s7i, bin64.s7i, complex.s7i, des.s7i and tdes.s7i.
  • Errors in the functions bigAddAssign and bigSbtrAssign have been fixed. Now the check for a negative delta is done before the variable is changed. This fixes the errors with A +:= A; and A -:= A; .
  • The makefile mk_mingc.mak has been improved such that it can be called without the parameters S7_LIB_DIR and SEED7_LIBRARY.
  • The program chkccomp.c has been improved to check if pow() works correct when the exponent is the maximum odd value that fits in a float respectively double.
  • A buffer in a test program used by chkccomp.c has been enlarged to avoid a possible buffer overflow.
  • Calls of logFunction have been added to big_gmp.c, big_rtl.c and traceutl.c.
  • The definition of CATCH_SIGNALS has been removed from the makefiles. Now signal handlers are used when one of the functions sigaction() and signal() is available.
  • The function socAddressCStri() has been added to soc_rtl.c. Now this function is used instead of bstriAsUnquotedCStri(), to write addresses in log functions.
  • The function printParameters() has been added to pcs_unx.c and pcs_win.c. In log functions this function is now used to print parameter lists.
  • The unused functions bin_add and bin_add_assign have been removed from bin64.s7i, binlib.c, binlib.h and primitiv.c.... read more
Posted by Thomas Mertes 2015-10-11

New Seed7 Release 2015-09-27

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The library cgidialog.s7i, which provides dialogs that are shown with a web browser, has been added.
  • The example program ide7.sd7 has been added. This program is a cgi dialog demo program.
  • The library browser.s7i, which opens a web browser and provides a connection to it, has been added.
  • The chapter about types in the manual has been improved.
  • The compiler has been improved to create code for the action FLT_DIV_ASSIGN in a way that works with icc (icc has problems when */ precedes /= ).
  • The program chkccomp.c has been improved to write definitions of OVERFLOW_SIGNAL and PRINTF_SUPPORTS_VARIABLE_FORMATS.... read more
Posted by Thomas Mertes 2015-09-27

New Seed7 Release 2015-09-14

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The FAQ has been improved to explain the support for Unicode names and how Unicode names are activated with a pragma.
  • The heap management for strings has been improved to determine the maximum length of the free lists automatically at run-time. This improves the runtime, when the compiler (s7c) compiles itself, by 2.7% (measured with gcc and valgrind). In many other situations this optimization has also a positive effect.
  • The interpreter has been improved to allow experimental support for case statements with a string decision expression.
  • The compiler has been improved to use the functions abs() respectively labs() for the absolute value of an integer (when overflow checking is switched off).
  • Tests for abs have been added to chkint.sd7.
  • The example program raytrace.sd7 has been improved to use result variables with descriptive names.
  • The configuration values LONG_SIZE and BOOLTYPE have been added to cc_conf.s7i.
  • Interpreter and compiler have been changed to use the type _Bool or bool for boolean values, when one of them is available. This allows some optimizations by the C compiler, since the possible values are restricted to 0 and 1.
  • The deprecated functions open_utf8, open_utf16, open_echo, open_line, open_tee, open_more, open_upper, open_lower, open_reverse, open_window and open_field have been removed. The replacement functions are openUtf8, openUtf16, openEcho, openLine, openTee, openMore, openUpper, openLower, openReverse, openWindow and openField.
  • The deprecated function removeAnyFile has been removed. The replacement function is removeTree.
  • The macros 'likely' and 'unlikely' have been added to functions in analyze.c, arrlib.c, biglib.c, bstlib.c, chrlib.c, cmdlib.c, dcllib.c, drw_win.c, drw_x11.c, fillib.c, fil_unx.c, fil_win.c, numutl.c, pollib.c, prclib.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c, sql_post.c and ut8_rtl.c.
  • The definition of the macro logFunction in common.h has been improved to write the file name.
  • Calls of logFunction have been added to arrlib.c, prclib.c, big_gmp.c, cmd_unx.c cmd_win.c dir_dos.c, dir_win.c, drw_win.c, set_rtl.c, sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c, sql_post.c and sql_rtl.c.
  • Checks for err_info != OKAY_NO_ERROR have been replaced by checks for pointer variables beeing NULL in sql_lite.c, sql_my.c, sql_oci.c, sql_odbc.c and sql_post.c. Since the address of err_info is used this variable cannot be placed into a register.
  • Several variables have been changed to constants.
  • Several calls of strlen() have been replaced with calls of the macro STRLEN() (STRLEN() computes the string size of a literal at compile-time).
  • The files drw_win.c and tim_win.c have been improved to reduce the number of C compiler warnings.
  • The function setupFiles in fil_win.c has been improved to set only redirected files to _O_BINARY mode. Real console files are left in _O_TEXT mode. This way the ENTER key is translated to '\n'.
  • The function freelistStatistic has been added to heaputl.c.
  • Several definitions have been changed to use a static storage class.... read more
Posted by Thomas Mertes 2015-09-14

New Seed7 Release 2015-08-23

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • The example program raytrace.sd7 has been added. This program is a raytracing demo.
  • The library vector3d.s7i, which supports 3D vectors, has been added.
  • The compiler s7c has been improved to create code to manage free lists for struct data. This avoids many calls of malloc() and free(). The maximum length of the free lists is determined automatically at run-time.
  • In color.s7i the elements of the type color have been renamed to redLight, greenLight and blueLight. The files mahjong.sd7 and draw.s7i have been changed to use the new element names of the type color.
  • The functions doubleToCharBuffer, fltDgts and fltSci in flt_rtl.c have been improved to work without calls of strlen().
  • The function bigHexCStri in big_rtl.c has been improved to use fewer calls of memmove() and strlen().
  • The function process_pragma() in analyze.c has been improved to use fewer calls of strlen().
  • The function opendir in dir_dos.c and dir_win.c has been improved to work without calls of strcat().
  • The functions striAsUnquotedCStri and bstriAsUnquotedCStri in striutl.c have been improved to use fewer calls of strlen().
  • The function cp_to_command in striutl.c has been improved to use fewer calls of os_stri_strlen.
  • The function getcaps in trm_cap.c has been improved to use fewer calls of strcat().
  • The function fix_capability in trm_inf.c has been improved to use fewer calls of strcat().
  • The function strLit in str_rtl.c has been improved to work without calls of strlen().
  • The functions calculate_output_length and print_stri in error.c have been improved to use fewer calls of strlen().
  • The function prot_os_stri has been removed from traceutl.c.
  • The macros 'likely' and 'unlikely' have been added to functions in act_comp.c, analyze.c, arr_rtl.c, big_gmp.c, big_rtl.c, chr_rtl.c, cmd_rtl.c, cmd_unx.c, cmd_win.c, con_win.c, hshlib.c, hsh_rtl.c, soc_rtl.c, striutl.c and traceutl.c.
  • Checks for err_info != OKAY_NO_ERROR have been replaced by checks for pointer variables beeing NULL in cmd_win.c, dir_rtl.c, fil_rtl.c, pcs_unx.c, pcs_win.c, striutl.c. Since references to err_info are used this variable cannot be placed into a register. The pointer variables used now can be placed into a register.
  • Variables in big_rtl.c, dir_rtl.c and striutl.c have been changed to constants.... read more
Posted by Thomas Mertes 2015-08-23

New Seed7 Release 2015-08-02

A new version of the extensible programming language Seed7, has been released.
See: http://seed7.sourceforge.net

Changelog:

  • An explanation, how Seed7 programs can be debugged with Eclipse, has been added to the FAQ.
  • Checks for the operators << and >> have been added to chkbig.sd7.
  • Checks for string comparisons ( < <= > >= ) and the operator 'mult' have been added to chkstr.sd7.
  • The functions bigLShift, bigLShiftAssign, bigRShift and bigRShiftAssign in big_gmp.c and big_rtl.c have been improved to avoid a signed integer overflow, when the shift count is the most negative integer.
  • The compiler has been improved to optimize code for bigInteger shifts and compares.
  • The compiler has been improved to create inline code for some string comparisons ( < <= > >= ) and the operator 'mult'.
  • In int_rtl.c the function intLpad0 has been improved to avoid a signed integer overflow when the number is the most negative integer.
  • In numlit.c the functions decimalValue, basedValue, readBigBased, basedInteger, intExponent and lit_number have been changed to work with unsigned integers.
  • Calls of logFunction have been added to atom.c, doany.c, entutl.c, exec.c, executl.c, expr.c, findid.c, libpath.c, name.c, object.c, parser.c, syntax.c, token.c and type.c.
  • The type of digit_value elements has been changed to uintType.
  • The function drwImage in drw_win.c has been improved to avoid a multiplication in the inner loop.... read more
Posted by Thomas Mertes 2015-08-03

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks