aboutsummaryrefslogtreecommitdiff
path: root/lang/seed7
Commit message (Collapse)AuthorAgeFilesLines
* */*: Sunset 12.4-RELEASE/12-STABLE from ports treeMuhammad Moinur Rahman2023-12-311-1/+1
| | | | | | | | | | | | | | | | | | | | | - Remove all references to defunct ARCH arm - Remove all references to defunct ARCH sparc64 - Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64 ARCH - Remove sysutils/afbinit requires defunct sparc64 ARCH - Remove all references to bktr driver - Remove all references to defunct FreeBSD_12 - Remove all references to OSVERSION/OSREL corresponding to 12 - Remove conditionals in Mk/Uses/cabal.mk - Remove sparc reference from Mk/Uses/qt-dist.mk - Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64 - Remove BROKEN_FreeBSD_12* from: - Remove OpenSSL patches from: - Remove conditional flags for OSVERSION >= 1300000 to fixed flags. Also move conditional flags for non sparc64/arm ARCH to fixed flags. Reviewed by: brooks, jbeich, rene, salvadore Differential Revision: https://reviews.freebsd.org/D42068
* */*: Update WWW to use HTTPS for sourceforge.net projectsRodrigo Osorio2023-11-061-1/+1
| | | | | | | | Homepage link is permanent redirected to its HTTPS counterpart Issue reported by repology : https://repology.org/repository/freebsd/problems Approved by: portmgr (blanket) PR: 274888
* lang/seed7: update to 05_20230913Pietro Cerutti2023-09-142-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20230913: - The parameters of getHttp(), getHttps() and getFtp() have been renamed from 'url' to 'location'. A location is a URL without http://, https:// and ftp://, respectively. Many thanks to Liam O'Brien for pointing out that getHttps("https://example.com/") does not work. The documentation has been improved to contain the example getHttps("example.com"). - The exit() function has been moved from seed7_05.s7i to the library environment.s7i. Many thanks to u/IllegalMigrant for pointing out that exit() was not documented. - The libraries lower.s7i, more.s7i, upper.s7i, archive_base.s7i, http_response.s7i, makedata.s7i, tar_cmds.s7i and tee.s7i have been added to the library section and the subject index of the homepage. Many thanks to Liam O'Brien for pointing out that they were missing. - The contrast of menus in the Seed7 homepage has been improved. Many thanks u/SachemAgogic for pointing out that the contrast was too low. - The make7 example program has been improved to support C++. Now the macros CXX and CXXFLAGS are supported as well as the target .cpp.o and the pattern rule "%.o" with a dependency of "%.cpp" (changes have been made in make.s7i and makedata.s7i). - Chapters about the types 'database' and 'sqlStatement' have been added to the manual. - The file to generate a man page for the Seed7 compiler (doc/s7c.1) has been improved. - A test program for time functions (chktime.sd7) has been added. - The program findchar.sd7 has been improved to support the option -e (specify extension) and to allow a search for any char (with the option c). - The program calc7.sd7 has been improved to support the function getFtp(). - The program tar7.sd7 has been improved: - Wildcards can be used when an archive is created. This works even if the OS shell does not support wildcards. - Specific members from an archive can be requested when an archive is extracted (or when listing archive contents with tell). - The library tar_cmds.s7i has been improved to support the changes of tar7.sd7. - In lib/comp/int_act.s7i the integer overflow checks created by the compiler have been improved. This improvement is used if both factors are unknown at compile time and for C compilers that have neither builtin overflow operations, nor an option like -ftrapv, nor support for 128-bit integers. - Tests for the improved overflow checks have been added to chkint.sd7 and chkovf.sd7. - In the library makedata.s7i, the rule 'name' has been renamed to 'target'. The library make.s7i has been adjusted to use 'target'. - In scanfile.s7i and scanstri.s7i the functions getNextXmlAttribute() and getNextHtmlAttribute() have been aligned to behave identically if there are no more attributes in a tag. - In htmldom.s7i the function readHtmlNode has been adjusted to the change of getNextHtmlAttribute(). - Several improvements have been made in the time.s7i library: - The function time() with a micro seconds parameter has been added. - The function toLocalTZ() has been added. - The functions hashCode(), toUTC(), timestamp1601() and timestamp1601ToTime() have been fixed to work correctly. - In duration.s7i the function hashCode() has been fixed to work correctly. - In httpserv.s7i the functions processHttpRequest() and getRequest() have been renamed to getHttpRequest(). The webserver comanche.sd7 has been changed to call getHttpRequest() instead of getRequest(). - In tee.s7i the type teeFile has been improved to allow writing to many files at once. - The libraries lower.s7i, more.s7i, tee.s7i and lower.s7i have been refactored to use camel case identifiers and documentation comments. - In asn1.s7i the struct asn1DataElement has been changed. Using the tagCategory of an asn1DataElement is deprecated now. Use tagType instead of tagCategory as tagType is also used in the ASN.1 documentation. The renaming has also been done in x509cert.s7i. - The program chk_all.sd7 has been improved to write a warning if the execution of a test program fails. - Tests for hash tables with time keys and values have been added to chkhsh.sd7. - In tim_rtl.c the function timSetLocalTZ() has been improved to raise RANGE_ERROR if a value is not in the allowed range. - In sql_cli.c and sql_lite.c calls of timSetLocalTZ() have been simplified. - The abstract data type (template) to define enumeration types has been moved from seed7_05.s7i to the new enumeration.s7i library. - In drw_emc.c and gkb_emc.c opening a window with a requested size has been improved to work correctly if the Firefox window is maximized. - Logging functions have been added in con_emc.c, drw_emc.c, emc_utl.c, gkb_emc.c, tim_rtl.c and tim_unx.c. - In str_rtl.c comments about the silencing of a C compiler warning have been added to strHeadAssign() and strHeadTemp(). - In common.h the definitions of TIME_T_MIN, TIME_T_MAX and inTimeTRange() have been improved. - Documentation comments have been added or improved in ar.s7i, archive_base.s7i, array.s7i, asn1.s7i, bitset.s7i, bitsetof.s7i, boolean.s7i, cpio.s7i, ftp.s7i, gethttp.s7i, gethttps.s7i, hashsetof.s7i, http_response.s7i, httpserv.s7i, idxarray.s7i, lower.s7i, makedata.s7i, more.s7i, pkcs1.s7i, rpm.s7i, scanfile.s7i, scanstri.s7i, sql_base.s7i, tar.s7i, tar_cmds.s7i, tee.s7i, time.s7i, upper.s7i, zip.s7i, tim_rtl.c and tim_unx.c.
* lang/seed7: 05_20230709Pietro Cerutti2023-08-293-39/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20230709: - Explanations about the initialization with 'is', the 'return' declaration construct and the meaning of dollar signs have been added or improved in the FAQ. - A chapters about arrays has been added to the tutorial. - In the manual, chapters about variants of for-each loops have been added or improved. - A chapter about the exception GRAPHIC_ERROR has been added to the manual. - The compiler (s7c.sd7) has been improved: - The generated code for array indexing that always raises INDEX_ERROR, has been improved to be accepted by clang. A cast to the desired type has been added. - The code generation for the hash set functions card() and rand() has been improved to support temporary sets. - Spezialized code is now generated, if the hash set function rand() is used with constant sets. - The functions strHeadAssign and strTailAssign are used now. They are always called like this: aString = strHeadAssign(aString, pos); - In the library gzip.s7i the functions length() and tell() have been added for a gzipWriteFile. - In the library tar.s7i the function putFile() has been improved to check for seekable() before aplying seek(). - The function pemObject() which creates a PEM object from 'pemType' and 'content' has been added to pem.s7i. - Support for the generation of non-self-signed certificates has been added to the x509cert.s7i library. - Support for X509 extensions has been added to the x509cert.s7i library. - A function to create an x509Name has been added to x509cert.s7i. - In x509cert.s7i several things have been renamed: - The types validityType and nameType have been renamed to x509Validity and x509Name respectively. - The function getName() has been renamed to getX509Name(). - The parameter encryptionKey has been renamed to issuerKey. - In x509cert.s7i the type x509cert is deprecated now. The type x509Cert should be used instead. - In asn1.s7i and x509cert.s7i parameters and result variables have been renamed from 'stri' to 'asn1'. - In pkcs1.s7i an additional function to generate a RSA key pair has been added. - Now 'in varfunc' call-by-name parameters can be specified with 'in' and 'ref'. This is done in the library seed7_05.s7i by defining IN_PARAM_IS_REFERENCE(varfunc aType). - In seed7_05.s7i the boolean condition parameters of loops have been changed to be defined with 'ref'. This corresponds to the fact that changing a condition variable in the loop body can terminate the loop. - The test suite has been improved to increase the code coverage. - A test program for enumerations (chkenum.sd7) has been added. - Tests have been added to chkbig.sd7: - Tests for bigInteger comparisons (=, <>, <, <=, >=, > and compare). - Tests for the optimization of ord(a mod b). - Tests for the multiplication of a constant with a bigInteger. - Tests for the divRem operator and for the rand and gcd functions. - Tests for the modulus of a bigInteger by a power of two. - Tests have been added to chkbin.sd7: - Tests for the bin64 &, | and >< operators. - Tests for the optimization of bin64(a mod b). - Tests for bin64 shift operator have been improved. - Tests have been added to chkbst.sd7: - Tests for bstring length. - Improve tests for bstring assignments. - Tests have been added to chkchr.sd7: - Tests for char literals and conversions - Tests for the char functions succ(), pred(), lower() and upper(). - Tests in chkhsh.sd7 have been improved: - Tests for hash tables with enumeration type keys and values have been added. - Tests for hash tables with bstring keys and values have been added. - Tests for hash tables with bitset keys and values have been added. - Tests for hash keys() and values() function have been added. - Tests in chkstr.sd7 have been improved: - Tests for c_literal() have been added. - Tests for string head (stri[.. stop]) have been added. - Tests for string tail (stri[start ..]) have been added. - Tests for the string pos(), rpos() and replace() functions have been added. These tests trigger a Boyer-Moore string search. - Tests for fromUtf8() have been added. - Tests for lower() and upper() have been added. - Tests for string assignment have been added. - Tests for the expression A * B ** C have been added to chkint.sd7 and chkovf.sd7. - Tests for string head (stri[.. n]) and string tail (stri[n ..]) have been added to chkidx.sd7. - In chkset.sd7 tests for the hash set functions card(), rand() and toArray() have been added. Tests for the operators 'in' and 'not in' have been added as well. - In chkprc.sd7 tests for for-until loops have been added. - Tests for the type clib_file and for the functions seekable(), tell(), bigTell() and seek() have been added to chkfil.sd7. - The handling of the version level (the last number in the version string) has been improved: - The file src/level_rl.h which contains the release level has been introduced. - The files src/level.h and src/level_bk.h have been removed from the release. - In the makefiles the target distclean has been improved to remove src/level.h and src/level_bk.h. - The program levelup.c has been improved to maintain the file level.h. If level_rl.h has changed it will be copied to level.h. If there is no change in level_rl.h every compilation of s7 will increment the level. - The program wrdepend.c has been improved to check if level.h is missing. In this case, level_rl.h is copied to level.h. - The minor version number of s7 and s7c has been incremented. - In seed7_05.s7i, forloop.s7i, chkarr.sd7, chkbig.sd7, chkbin.sd7, chkbst.sd7, chkfil.sd7, chkflt.sd7, chkidx.sd7, chkint.sd7, chkovf.sd7, chkset.sd7 and chkstr.sd7 'ref func' parameters have been replaced with 'in func' parameters. - In chk_all.sd7, chkarr.sd7, chkfil.sd7, chkidx.sd7, chkovf.sd7 and chkstr.sd7 'ref proc' parameters have been replaced with 'in proc' parameters. - In str_rtl.c the functions strHeadAssign and strTailAssign have been introduced. These functions leave the string parameter intact in case of an error. - In str_rtl.c the function strHeadTemp has been refactored to assume that the string parameter is always tempory and can be freed in case of an error. - Documentation comments have been improved in pem.s7i and x509cert.s7i.
* lang/seed7: update to 05_20230529Pietro Cerutti2023-06-014-4/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20230529: - The FAQ concerning break and continue has been improved. - Chapters about assignment and constants have been added to the tutorial, which is part of the manual. A description of the function fraction() has been added to the chapter about predefined types. - The new library archive_base.s7i has been added. This library defines common functions for file archives. It currently defines the function readDir() which is used by the archive libraries ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i. - In the zip.s7i library the function readDir() has been improved to work for absolute paths (by calling readDir() from archive_base.s7i). - Several improvements have been made in the rpm.s7i library: - The signature section digests are checked when the RPM file is opened. - The payload digests are only checked if the payload is used. - Provided and required dependencies are read when the RPM file is opened. - The compiler (s7c.sd7) has been improved: - It recognizes if an array index access would always raise INDEX_ERROR. This is done for a constant array and with the range of possible index values. - The optimization of the floating point power operator with an integer exponent has been improved. There are cases where the base is constant, and the range of possible exponents allows a simplification. - The optimization of the floating point left and right shift operators has been improved. It considers cases where the number that needs to be shifted is constant and cases where nothing is constant. In both situations the range of possible shift amounts allows simplifications. - The optimization of A * B ** C with A and B float and C integer, has been improved. This considers cases where B is a power of two and the range of possible exponents C allows a simplification. - It is recognized if the integer left shift operator would always raise OVERFLOW_ERROR. Depending on the range of possible values for the shift amount and the value to be shifted, this optimization is made. - The number of checks for OVERFLOW_ERROR and NUMERIC_ERROR of the integer power operator has been reduced. Depending on the range of possible values for base and exponent, some checks can be omitted. - Now the range of possible integer values is determined for the expression ord(aBigInteger mod 2_ ** n). - Now the range of possible integer values is determined for the length of a sub-string. - The generated code for 'elsif FALSE then end if' as been fixed. - String index checks are optimized away if the range of possible index values always remains inside a constant string. - Computing the length of a fixLen substring has been optimized (e.g.: length(aString[A fixLen B]) will always return B). - The optimization of the string length function has been changed to sum up the length of the components as integers. - The test suite has been improved to increase the code coverage of the compiler. - Tests for array assignment, array length and array index access have been added to chkarr.sd7. - Tests of the optimization of expressions like ord((A + B) mod C) (the modulus of a bigInteger sum converted to an integer) have been added. - Several tests have been added to chkflt.sd7: - Tests for float left shift (<<). - Tests for float right shift (>>). - Tests for float ** integer. - Tests for the A * B ** C optimization. - Tests for float ** float. - The tests for decompose() have been improved. - Tests for ceil(), floor() and trigonometric functions have been added. - Tests for the power operator (**) and for the integer >>:= operator have been added to chkint.sd7. - Tests for the overflow of shift left (<<) and for the power operator (**) have been added to chkovf.sd7. - Tests for string head have been added to chkidx.sd7. - Tests for empty if-, while- and repeat-statements have been added to chkprc.sd7. - Tests for card(), rand() and assignment have been added to chkset.sd7. - Several tests have been added to chkstr.sd7: - Tests for string length. - Tests for string index access. - Tests for the string head function. - Tests for string concatenation. - Tests for string assignment. - The phrase "works correct" has been replaced with "works correctly" in the files chk_all.sd7, chkarr.sd7, chkbig.sd7, chkbin.sd7, chkbigdata.sd7, chkbool.sd7, chkbst.sd7, chkchr.sd7, chkcmd.sd7, chkexc.sd7, chkfil.sd7, chkflt.sd7, chkhsh.sd7, chkidx.sd7, chkint.sd7, chkovf.sd7, chkprc.sd7, chkset.sd7 and chkstr.sd7. - The value STMT_BLOCK_IN_PARENTHESES_OK has been added to confval.sd7. - The initialization of local variables and constants with a single local value has been fixed (in dcllib.c). - In flt_rtl.c the function fltLdexp() has been improved to work correctly for infinity, even if ldexp() does not. - The program chkccomp.c has been improved to determine LDEXP_OF_INFINITY_OKAY (which defines if ldexp() works for infinity). - Documentation comments have been improved in null_file.s7i. 20230422: - The compiler option -S to specify the stack size has been added. Many thanks to Bruce Axtens for pointing out problems with the Ackermann function at RosettaCode. This triggered the -S improvement. - Many thanks to Bruce Axtens for adding Seed7 to the Exercism project. Discussions about that resulted in several improvements: - Now call-by-name parameters can be specified with 'in' and 'ref'. - Support for syntax statements without $ (dollar) has been added. - The error message for an unspecified kind of in-parameter has been improved. - Many thanks to Gary Chike for pointing out problems: - The RosettaCode example "Convert decimal number to rational" did not work correct. To fix that, the function fraction(), which gets a fraction as string (e.g. "1/3"), has been added to bigrat.s7i and rational.s7i. - Mac OS 13.2.1 had permission problems when installing Seed7. The copying of manual pages failed. In mk_osx.mak and mk_osxcl.mak, the copying of the s7 and s7c manual pages to /usr/share/man/man1 has been changed to allow a failure. - On some computers, vim syntax highlighting is turned off by default. The FAQ has been improved to describe the steps for enabling vim syntax highlighting. - Explanations about design principles, compiler options, syntax highlighting, forward declarations, function overloading, function declarations and declaring break/continue statements have been added or improved in the FAQ. - Chapters about function declarations and overloading have been added to the tutorial (part of the manual). - In the manual the chapters about types, parameters and expressions have been improved. - In seed7_05.s7i the function literal() has been defined for enumeration types. - The files panic.sd7, wiz.sd7, savehd7.sd7, cards.s7i, sql_base.s7i and boolean.s7i have been changed to use the new function literal(). - Support for the ternary operator ?: has been added for enumerations and for the types 'type' and 'category'. - The compiler (s7c.sd7) has been improved: - At several places the function integerLiteral() is used instead of str() to create integer literals. - Assignments to temp variables in inline functions have been fixed. This allows: float parse ("0." & "0" mult 307 & "1") - If-statements are used in overflow checks for the operators +:=, -:=, *:=, <<:= and >>:=. - Generated temporary variables have been renamed in int_act.s7i. - The code of the factorial function has been optimized. - Support for the action ENU_LIT has been added. - The action ENU_LIT has been added to the list of special actions. - Allocated result data of inlined special actions is now freed. - Now integer comparisons are checked with -oc3 if they can be computed at compile time. With -w2, a warning is written if this is the case. - The compiler option -S to specify the stack size has been added. - In zip.s7i the function fileMode() has been fixed to work for short file names. - The test program chkflt.sd7 has been improved to have detailed error messages. Tests for converting between floats to strings in both directions have been added as well. - Definitions of LINKER_OPT_STACK_SIZE and DEFAULT_STACK_SIZE have been added to cc_conf.s7i. The file cmd_rtl.c and the program confval.sd7 have been adjusted accordingly. - The interpreter has been improved to support the actions DCL_SYNTAX, ENU_LIT and PRC_BEGIN_NOOP. - Support for empty func ... end func constructs has been added. - The error messages "Syntax declared twice", "Associativity expected", "Dot expression expected" and "Integer literal expected" have been improved in error.c. - The functions err_expr_type() and err_expr_obj_stri() have been added to error.c. - In fil_rtl.c the function filClose() has been improved to work correctly if fclose() fails after a previous error. - In flt_rtl.c the function fltParse() has been improved to consider STRTOD_ACCEPTS_INF, STRTOD_ACCEPTS_INFINITY, STRTOD_ACCEPTS_NAN and STRTOD_ACCEPTS_SIGN_WITHOUT_DIGITS. - In gkb_win.c definitions of XBUTTON1, XBUTTON2, WM_MOUSEWHEEL, GET_WHEEL_DELTA_WPARAM, VK_OEM_PLUS, VK_OEM_MINUS and VK_OEM_1 to VK_OEM_8 are added if they are not present in the include files. - In heaputl.c the function setupStack() has been improved to have the requested stack size as a parameter. - In os_decls.h the definition of safe_fileno() has been improved to use os_fileno() instead of fileno(). - Functions for X11 selection (cut and paste) have been added to fwd_x11.c and x11_x.h. - In pcs_unx.c and pcs_win.c the function pcsPipe2() has been improved to leave *childStdin and *childStdout unchanged if the corresponding call of os_fdopen() fails. - The function prc_begin_noop() has been added to prclib.c. - In soc_rtl.c the functions socInetAddr(), socInetLocalAddr() and socInetServAddr() have been improved to set 'result' to NULL if ai_addrlen is negative. - The function prot_dot_expr() has been added to traceutl.c. This function is used to write the error message SYNTAX_DECLARED_TWICE. - The program chkccomp.c has been improved to determine STRTOD_ACCEPTS_SIGN_WITHOUT_DIGITS, STRTOD_ACCEPTS_INF, STRTOD_ACCEPTS_INFINITY, STRTOD_ACCEPTS_NAN, OS_GETCWD_INCLUDE_DIRECT_H, OS_OPENDIR_INCLUDE_DIRECT_H and FCLOSE_FAILS_AFTER_PREVIOUS_ERROR. The computation of FLOAT_NAN_COMPARISON_OKAY has been improved. - In chkccomp.c recent PostgreSQL versions are considered now. - In cmd_rtl.c and dir_drv.h the file direct.h is now conditionally included depending on OS_GETCWD_INCLUDE_DIRECT_H respectivily OS_OPENDIR_INCLUDE_DIRECT_H. - Includes of stdlib.h have been added to literal.c, sql_rtl.c, syvarutl.c and tim_rtl.c. - The makefiles mk_bcc32.mak, mk_bccv5.mak, mk_clangw.mak, mk_cygw.mak, mk_mingc.mak, mk_mingw.mak, mk_msvc.mak, mk_msys.mak, mk_nmake.mak and mk_tcc_w.mak have been improved to define DEFAULT_STACK_SIZE and LINKER_OPT_STACK_SIZE. - Documentation comments have been added to float.s7i and rational.s7i.
* lang/seed7: update to 05_20230305Pietro Cerutti2023-03-302-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20230305: - The make7 example program has been improved to support quoted dependencies (changes have been made in makedata.s7i). A warning is written if the quoted dependency does not end with ", or when it is not followed by whitespace. - The comanche web-server example program has been improved: - CGI scripts with shebang are supported now. Shebang means that the first line of the script starts with #! and is followed by the command (and possible options) to interpret the script. - Now the root directories for HTML files (html-dir) and CGI files (cgi-dir) are converted to an absolute path. - On startup of comanche, the current working directory is changed to the root directory for CGI files (some CGI scripts need this). - The new option -c can be used to specify the cgi-name used in the HTTP(S) requests. If cgi-name is "", the cgi-name is taken from cgi-dir. Without -c, the default cgi-name of "/cgi-bin/" is used. - The new parameter env-file can be used to specify a property file with environment variables to be defined. - The help text written with the option -? or -h has been improved. - Definitions of the environment variables REQUEST_METHOD, CONTENT_LENGTH and DOCUMENT_ROOT have been added (in http_response.s7i). These environment variables are used by CGI scripts. - An explanation about the compilation to a dll/so has been added to the FAQ. - An explanation of the fixLen sub-string has been added to the manual. - The compiler s7c has been improved to read configuration values with the option -c. This allows s7c to be able to switch between generating machine code (default) or JavaScript/web-assembly (with -cemcc). - The compiler has been improved to generate better code for insert() (insert elements into an array). For arrays of plain values (e.g. array integer) unnecessary copying of data will be avoided now. Changes have been made in arr_act.s7i, expr_util.s7i, arr_rtl.c and arr_rtl.h. - The library propertyfile.s7i has been improved so that EOF terminates a property key or value. - The functions assignConfigValue() and readConfig() have been added to the cc_conf.s7i library. - In bitdata.s7i the close() function for LSB/MSB bit streams has been fixed to also work near the end of the file and for MSB bit streams. - In bitdata.s7i the function gets() has been improved so that a maxLength of 0 sets the position to the beginning of the next byte and returns an empty string. If bytePos is beyond the length of the string, an INDEX_ERROR is avoided. - In echo.s7i, editline.s7i, line.s7i, strifile.s7i and stritext.s7i the function gets() has been improved to always raise RANGE_ERROR for a negative maxLength. A maxLength of 0 always returns an empty string. - In png.s7i reading of PNG chunks has been refactored. - In gzip.s7i, iobuffer.s7i, lzma.s7i, strifile.s7i, xz.s7i and zstd.s7i the function seek() has been improved to raise RANGE_ERROR for positions <= 0. - In asn1.s7i, ccittfax.s7i, cli_cmds.s7i, csv.s7i, ftp.s7i, html.s7i, htmldom.s7i, http_response.s7i, makedata.s7i, stritext.s7i and wildcard.s7i, appending an element to an array has been improved. Now it is done with "anArray &:= element" instead of "anArray &:= [] (element)". - In chkstr.sd7 the tests for the functions lower() and upper() have been improved to use expression arguments. - In chkbig.sd7 tests for the bigInteger sci operator have been added. - Tests for close() of LSB/MSB bit streams have been added to chkbitdata.sd7. - The program chk_all.sd7 has been adjusted to the changes in chkbig.sd7 and chkbitdata.sd7. - The libraries bigint.s7i, bigrat.s7i, deflate.s7i, elliptic.s7i, encoding.s7i, gzip.s7i, inflate.s7i, iobuffer.s7i, lzma.s7i, png.s7i, rational.s7i, scanstri.s7i, strifile.s7i, stritext.s7i, xz.s7i and zstd.s7i have been improved to use fixLen sub-strings. - The program bas7.sd7 has been improved to use fixLen sub-strings. - In s7c.sd7 names of array and hash types have been refactored. - In bin32.s7i the deprecated functions bin32AsFourBytesBe and bin32AsFourBytesLe have been removed. - In bin64.s7i the deprecated functions bin64AsEightBytesBe and bin64AsEightBytesLe have been removed. - In bytedata.s7i the deprecated functions int16AsTwoBytesBe, int32AsFourBytesBe, int64AsEightBytesBe, int16AsTwoBytesLe, int32AsFourBytesLe, int64AsEightBytesLe, bigAsEightBytesBe and bigAsEightBytesLe have been removed. - In lzw.s7i the deprecated functions lzwEncodeMsb() and lzwDecodeMsb() have been removed. - In gzip.s7i the deprecated functions openGunzipFile(aFile) and openGzipFile(aFile) have been removed. - In arr_rtl.c the function arrInsertArrayTemp() has been added, and the function arrInsertArray() has been changed to leave the 'elements' array as is. - The "clean" target of the makefiles has been improved to only remove the libraries created by the same makefile. - The library names in mk_emccl.mak and mk_emccw.mak have been changed from *.a to *_emc.a. Additionally, the file ../bin/cc_conf_emcc.prop is created, when running make. This allows the Emscripten version of Seed7 to be installed parallely to the normal Seed7 installation. - The makefiles mk_mingw.mak and mk_nmake.mak have been improved to avoid the "file too big"/"too many sections" error. - Documentation comments have been improved in bitdata.s7i, echo.s7i, editline.s7i, keybd.s7i, line.s7i, osfiles.s7i, stritext.s7i, tls.s7i, arr_rtl.c, drwlib.c and kbdlib.c. 20230130: - The drivers used in the browser (when Seed7 is compiled with Emscripten) have been improved (in con_emc.c, drw_emc.c, fil_emc.c, gkb_emc.c, tim_emc.c and emc_utl.c). Now graphic Seed7 programs can be compiled to JavaScript and Webassembly to run them in the browser. - A new sub-string operation with a guaranteed length (fixLen) has been introduced. E.g.: "abcde"[2 fixLen 3]. - 30 libraries have been adjusted to use the fixLen sub-string. The guaranteed sub-string length assures that conversions like bytes2Int() do not get data that is too short. - The library zip.s7i has been fixed to work correct if a descriptor signature follows the deflated data. - The library jpeg.s7i has been refactored to use the segment length for reading a segment into a string. - A close() function for LSB and MSB bit streams has been addded to bitdata.s7i. The close() sets the the position of the underlying file directly after the bit stream. This is used by the function inflate() (in the inflate.s7i library). - The function flush() has been added to the tee.s7i library. - Several characters in the fonts stdfont10.s7i, stdfont12.s7i, stdfont14.s7i, stdfont16.s7i, stdfont18.s7i, stdfont20.s7i, stdfont24.s7i, vecfont10.s7i and vecfont18.s7i have been improved. - Interpreter and compiler have been improved to support the action STR_SUBSTR_FIXLEN. - The compiler (s7c.sd7) has been improved: - Support for arcs with thickness has been added (action DRW_PFARC). - Code that reports a GRAPHIC_ERROR is now generated. - The optimizations for string sub-strings ("abcde"[2 len 3] and "abcde"[2 fixLen 3]) have been improved. - The optimizations for combinations of sub-string and conversion to integer (e.g.: bytes2Int(stri[5 fixLen 4], UNSIGNED, LE) ) have been improved. - The size of the generated init_values function has been reduced. - If requested by USE_DO_EXIT, the function doExit() is called at the end of the program. - Profiling data is stored in allocated memory instead of an array. Some C compilers had problems with the array approach. - The documentation in doc/faq.htm, doc/faq.txt, src/read_me.htm and src/read_me.txt has been updated. - More detailed error messages have been introduced in chkbig.sd7, chkint.sd7 and chkset.sd7. - Tests in chkint.sd7, chkstr.sd7 and chkidx.sd7 have been improved to check the new sub-string function (fixLen) with and without a subsequent conversion to integer. - Tests in chkidx.sd7 have been refactored to use if-statements instead of using an ok variable. - An optional event tracing has been added to con_win.c. - The event tracing in drw_win.c and gkb_win.c has been improved. - The program chkccomp.c has been improved to determine SYSTEM_RESULT_FOR_RETURN_0 in a way that works also with Emscipten. - The test programs to determine LIMIT_FMT_E_MAXIMUM_FLOAT_PRECISION and LIMIT_FMT_F_MAXIMUM_FLOAT_PRECISION in chkccomp.c have been improved to define the large array outside of main (Emsripten needs this). - In common.h the format strings for OS_OFF_T have been changed to prefer the long format if sizeof(int) = 4 and sizeof(long) = 4. - An include of traceutl.h has been added to actlib.c, biglib.c, blnlib.c, bstlib.c, chrlib.c, conlib.c, drwlib.c, fillib.c, fltlib.c, intlib.c, pcslib.c, pollib.c, setlib.c and strlib.c. This allows enabling LOG_FUNCTIONS with strict C compilers. - The function printSet() has been added to set_rtl.c. This function is used in set_rtl.c as replacement for prot_set() when LOG_FUNCTIONS is enabled. This allows logging in compiled programs. - Logging functions have been improved in arr_rtl.c, con_win.c, drw_win.c, drw_x11.c, fil_rtl.c and gkb_win.c. - Occurrances of exit() and atexit() have been replaced by os_exit() respectively os_atexit(). This way, the makefiles mk_emccl.mak and mk_emccw.mak can define os_exit() and os_atexit() to use doExit() and registerExitFunction() instead of the default functions. - JavaScript specific functions have been moved from fil_unx.c to new file fil_emc.c. - Keyboard functions have been moved from drw_emc.c to the new file gkb_emc.c. - The JavaScript keyboard drivers in con_emc.c and gkb_emc.c have been improved to work with synchronous I/O although JavaScript works asynchronous in the browser. - In the new file tim_emc.c the function timAwait() has been introduced. This function saves keypresses that happen during the wait (it works together with the keyboard drivers from con_emc.c or gkb_emc.c). - The new file emc_utl.c has been introduced. This file contains registerExitFunction() and doExit() which replace atexit() and exit() under Emscripten. It also defines enqueue() and dequeue() which are used during timAwait() to queue keypresses. And finally, it defines mapKeyNameIdToKey() which is used by the keyboard drivers. - Functions to register and execute callbacks have been added to pre_js.js. - The makefiles mk_emccl.mak and mk_emccw.mak have been improved to use the linker options ASYNCIFY, ASYNCIFY_STACK_SIZE and EXIT_RUNTIME. The new files emc_utl.c, fil_emc.c, tim_emc.c and gkb_emc.c have also been added. - JavaScript strings in the .c files have been refactored to use " instead of '. - The definition of USE_DO_EXIT has been added to cc_conf.s7i. The file cmd_rtl.c and the program confval.sd7 have been adjusted accordingly. - The keyboard driver gkb_x11.c has been improved to work correctly when the keyboard layout is switched. - Documentation comments have been improved in string.s7i, str_rtl.c and strlib.c.
* lang/seed7: update to 05_20221218Pietro Cerutti2022-12-282-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20221218: - Examples for reading from the keyboard have been added to the manual. - In src/read_me.txt and src/read_me.htm the description "compiling Seed7 under windows with cl from MSVC" has been improved. The description of possible C compiler warnings has also been improved. - Support for the ternary operator ?: has been added to the types bitset, color, duration and time. - The graphic keyboard test program gkbd.sd7 has been improved to support super/windows keys. - Definitions of KEY_SUPER, KEY_LEFT_SUPER and KEY_RIGHT_SUPER have been added to the libraries keybd.s7i and keydescr.s7i. - The tls.s7i library has been improved to reopen a socket if the old session cannot be reused. - In gif.s7i a small error in reading a GIF header has been fixed. - The compiler (s7c.sd7) has been improved: - Unsupported Seed7 compiler options trigger a warning now. - Better optimizations for abs(), mdiv and mod are done. - More integer overflow checks of abs(), <<, *, div, mdiv, mod and rem are optimized away (with option -oc3). - More division by zero checks are optimized away. - Computing the range of possible integer results for abs(), bitLength(), log2(), log10(), sqrt() +, -, <<, >>, - (negate), * and ?: (ternary operator) has been improved. This also helps in reducing the number of integer overflow checks. - The statistics about integer overflow checks and division checks have been improved. - A warning is written at a catch of otherwise when checks for an exception have been suppressed (this is done with -w2). - The code coverage of the integer tests in chkint.sd7 and chkovf.sd7 has been increased. Now, all code in comp/int_act.s7i is tested (except code for non-twos-complement computers). - Several tests in chkint.sd7 have been refactored to avoid optimizations that skip tests (Expressions are compared with intExpr(value) instead of just value). - Documentation comments have been improved in time.s7i. - The graphic driver for windows (drw_win.c) has been improved: - Windows are now created with a size that includes decorations. - The windows class is registered with with RegisterClassExW() now. This triggers the creation of Unicode windows (where keypresses return Unicode characters). - A function to draw filled chords (drwPFArcChord) under windows has been added. - An empty window is just created once on initialization and stored globally. - The graphic keyboard driver for windows (gkb_win.c) has been improved: - The function getc(GRAPH_KEYBOARD) now returns Unicode characters. - Dead keys are returned directly and are not combined with the next character pressed (this combining can be done by the program). - Holding down a windows/super key and pressing a cursor key is supported now (this resizes and moves the current active window). In this case the program now receives KEY_RESIZE characters (if they have been requested with selectInput()). - Combinations of CTRL + ALT + letter are now recognized correctly (CTRL is preferred over ALT in combinations with a letter). - The combination of cursor, function and mouse keys with modifier keys now prefers SHIFT over the other modifiers and CTRL over ALT. - The recognition of button presses in gkbButtonPressed() has been improved to also work for Unicode characters. - Now wide char functions (CreateWindowW(), CreateWindowExW(), MapVirtualKeyW(), PeekMessageW(), GetMessageW()) are used and only correctly received messages are processed. - The lowest four bits of a system command (wParam of WM_SYSCOMMAND message) are ignored now. - Macros are used to recognize mouse wheel and xbuttons. - Macro definitions have been added, as some C compilers do not provide them. - The graphic keyboard drivers (gkb_win.c and gkb_x11.c) have been improved to support super/windows keys. - The support for the unused action CHR_CONV has been removed. - The number of C compiler warnings has been reduced. - Unnecessary initialisations and assignments have been removed in several C files. - Usages of strcpy() and wcscpy() have been reduced. - In hshlib.c the hash table for-loops have been adjusted to process the elements in the same succession as in compiled programs. The code has also been simplified. - The program chkccomp.c has been improved: - Now, a backup copy of the source file (e.g. ctest123.cbak) is created if a test program fails. - Now, an empty output of a test program is recognized and the test is repeated (Some anti-virus software of Windows may trigger this). - Now, it considers wasm files for an Emscripten build. - The macros os_setmode, os_fdopen and os_fileno are determined. - Usages of isatty(), fdopen() and fileno() have been replaced by os_isatty(), os_fdopen() and os_fileno() respectively. - Some fixes for Emscripten have been done: - The files mk_emccl.mak and mk_emccw.mak have been adjusted for the newest version of Emscripten. Now, there is source information in a stack trace, and the stack size used by Emscipten has been increased. - In chkccomp.c wasm files are considered now. - The size of functions has been reduced in chkchr.sd7, chkint.sd7 and chkstr.sd7. This avoids a stack overflow in Node.js. - Logging functions have been added or improved in drw_win.c, gkb_win.c, gkb_x11.c and intlib.c.
* lang/seed7: update to 05_20221105Pietro Cerutti2022-11-282-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20221105: - The picture viewer pv7.sd7 has been improved to support zooming and moving. - The graphical keyboard test program gkbd.sd7 has been improved to write the cursor position when a mouse key is clicked. - The function isLetter() in char.s7i has been improved to support Unicode 15.0. - When matching an expression failed, two errors were reported. A match error and an exception error (Exception MEMORY_ERROR raised). The unnecessary exception error has been removed from interpreter and compiler. - Additional versions of getPixmap() have been added to the library draw.s7i. - In x509cert.s7i the algorithm OID of the signature in stdCertificate and other generated certificates has been corrected. - The function getDigestOidFromSignatureAlgorithm() has been added to x509cert.s7i. - In syntax.s7i the definition of the ternary operator (a ? b : c) has been improved to allow chaining (e.g.: a ? b : c ? d : e). - The function fromAsciiz() has been added to bytedata.s7i. - Functions to convert null terminated UTF-16 strings (fromNullTerminatedUtf16Be(), fromNullTerminatedUtf16Le(), getNullTerminatedUtf16Be() and getNullTerminatedUtf16Le()) have been added to unicode.s7i. - In editline.s7i the function getln() has been improved to use a case-statement instead of an if-then-else chain. - Tests for the new conversion functions of unicode.s7i have been added to chkstr.sd7. - The program chkchr.sd7 has been adjusted to test the improved function isLetter(). - The graphic keyboard driver of Windows (in gkb_win.c) has been improved to return the mouse wheel button position in window coordinates (instead of screen coordinates). - In gkb_win.c usages of the macros LOWORD and HIWORD have been replaced with GET_X_LPARAM and GET_Y_LPARAM. - In prclib.c the functions prc_begin(), prc_local(), prc_res_begin(), prc_return(), prc_return2(), prc_varfunc(), prc_varfunc2() have been improved to raise CREATE_ERROR instead of MEMORY_ERROR, if the block_body is NULL. This removes an unnecessary MEMORY_ERROR when matching an expression fails. - In chr_rtl.c the function chrIsLetter() has been improved to support Unicode 15.0. - In drw_x11.c the function drwGetPixmap() has been improved to set destination pixels from areas outside of the source window to black. - Logging functions have been improved in exec.c, expr.c and syntax.c. - The console keyboard drivers (in kbd_inf.c and kbd_poll.c) have been improved to support reading of alt-A to alt-Z when upper case letters are pressed. - In gkb_x11.c the performance of setupModState() has been improved. - Build now uses the macro POTENTIAL_PARTIAL_LINKING_OPTIONS - The graphic keyboard driver of Linux (in gkb_x11.c) has been improved to reduce number of XQueryKeymap() calls - Parameters in bin32.s7i and bin64.s7i have been renamed. - Undocumented functions to cast between integer and float have been removed from float.s7i. - In wildcard.s7i the function findMatchingFiles() has been improved to support case insensitive pattern matching. - The library cli_cmds.s7i has been improved to use case insensitive file pattern matching for DOS/Windows commands. - The files chkccomp.c, mk_djgpp.mak and mk_djgp2.mak have been altered to take into account that error redirection with 2> fails under DOS. - Support for the actions FLT_CAST and FLT_ICAST has been removed from interpreter and compiler. - Spelling errors have been fixed in faq.htm, faq.txt, manual.htm, manual.txt, chlog.txt, bitdata.s7i, bmp.s7i, ftp.s7i, gif.s7i, ico.s7i, jpeg.s7i, pem.s7i, png.s7i, ppm.s7i, tiff.s7i, sql_cli.c, striutl.c. - Documentation comments have been improved in bytedata.s7i, char.s7i, draw.s7i, chr_rtl.c, chrlib.c and drw_win.c.
* Remove WWW entries moved into port MakefilesStefan Eßer2022-09-071-2/+0
| | | | | | | | | | Commit b7f05445c00f has added WWW entries to port Makefiles based on WWW: lines in pkg-descr files. This commit removes the WWW: lines of moved-over URLs from these pkg-descr files. Approved by: portmgr (tcberner)
* Add WWW entries to port MakefilesStefan Eßer2022-09-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has been common practice to have one or more URLs at the end of the ports' pkg-descr files, one per line and prefixed with "WWW:". These URLs should point at a project website or other relevant resources. Access to these URLs required processing of the pkg-descr files, and they have often become stale over time. If more than one such URL was present in a pkg-descr file, only the first one was tarnsfered into the port INDEX, but for many ports only the last line did contain the port specific URL to further information. There have been several proposals to make a project URL available as a macro in the ports' Makefiles, over time. This commit implements such a proposal and moves one of the WWW: entries of each pkg-descr file into the respective port's Makefile. A heuristic attempts to identify the most relevant URL in case there is more than one WWW: entry in some pkg-descr file. URLs that are not moved into the Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr files in order to preserve them. There are 1256 ports that had no WWW: entries in pkg-descr files. These ports will not be touched in this commit. The portlint port has been adjusted to expect a WWW entry in each port Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as deprecated. Approved by: portmgr (tcberner)
* lang/seed7: update to 05_20220724Pietro Cerutti2022-08-043-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20220724: - The operating system DOS is supported (with DJGPP) again. The tests have been done with Dosbox. - Explanations about syntax highlighting, static type checking and return type overloading have been improved in the FAQ. - In the manual, the chapter about the keyboard has been improved to explain the window close button and window resize events. The manual has also been adjusted to describe the new functions instead of the deprecated ones. - The error messages for failed declarations have been improved. - The error reporting has been improved to also show an error line if parsing the file has finished. - Reading from a Windows console with getc(KEYBOARD) has been improved to support all Unicode characters (including characters outside of the Basic Multilingual Plane). This allows the reading of characters that have been pasted from the clipboard to a console window. - The functions inputReady(), getc(aFile, NO_WAIT), clickedXPos() and clickedYPos() have been added to keybd.s7i. - The functions toUtf8(), fromUtf8(), toUtf16Be(), fromUtf16Be(), toUtf16Le(), fromUtf16Le() and fromUtf7() have been added to unicode.s7i. - The functions toUtf16Be() and toUtf16Le() raise RANGE_ERROR if a surrogate character is present. - The functions fromUtf16Be() and fromUtf16Le() raise RANGE_ERROR if an invalid surrogate pair is found (a single surrogate character or surrogate characters not in the proper succession). - In unicode.s7i the function replaceUtf16SurrogatePairs() has been fixed to work correctly. - Tests for toUtf16Be(), fromUtf16Be(), toUtf16Le(), fromUtf16Le() and replaceUtf16SurrogatePairs() have been added to chkstr.sd7. - Several improvements have been done in chkccomp.c: - If reading a numeric test result fails, the program waits for a second before restarting the test. - It shows an error message if a test fails to deliver a numeric result. - It does not create an empty test program. Some anti virus software considers an empty program to be dangerous. - It determines if partial linking is actually working. - A list of potential partial linking options is tested to find the correct one. - The number of warnings has been reduced. - In tim_dos.c, tim_unx.c and tim_win.c the function timNow() has been improved to work also for an unsigned time_t. - The support for the unused action SCT_ELEM has been removed. - In keybd.s7i the functions keypressed(), busy_getc(), getxpos() and getypos() are deprecated now. The functions inputReady(), getc(aFile, NO_WAIT), clickedXPos() and clickedYPos() should be used instead. - The files dialog.s7i, bas7.sd7, carddemo.sd7, castle.sd7, clock.sd7, clock2.sd7, clock3.sd7, dnafight.sd7, ftp7.sd7, gkbd.sd7, hal.sd7, kbd.sd7, klondike.sd7, lander.sd7, mahjong.sd7, mandelbr.sd7, mirror.sd7, pac.sd7, pairs.sd7, panic.sd7, planets.sd7, prime.sd7, pv7.sd7, rand.sd7, savehd7.sd7, shisen.sd7, sl.sd7, snake.sd7, sokoban.sd7, sudoku7.sd7, tet.sd7, tetg.sd7 and wator.sd7 have been altered to use inputReady(), getc(aFile, NO_WAIT), clickedXPos() and clickedYPos() instead of the deprecated functions. - In keybd.s7, the implementation of getc(aFile, NO_WAIT) is now based on inputReady(). The primitive actions KBD_BUSY_GETC and GKB_BUSY_GETC are not needed anymore. - The support for the primitive actions KBD_BUSY_GETC and GKB_BUSY_GETC has been removed from interpreter and compiler. Changes have been done in drwlib.c, drwlib.h kbdlib.c, kbdlib.h, primitiv.c, comp/action.s7i, comp/gkb_act.s7i and comp/kbd_act.s7i. - The actions GKB_KEYPRESSED and KBD_KEYPRESSED have been renamed to GKB_INPUT_READY and KBD_INPUT_READY respectively. - In unicode.s7i the functions striToUtf8(), utf8ToStri(), striToUtf16be(), utf16beToStri, striToUtf16le, utf16leToStri and utf7ToStri() are deprecated now. The functions toUtf8(), fromUtf8(), toUtf16Be(), fromUtf16Be(), toUtf16Le(), fromUtf16Le() and fromUtf7() should be used instead. - The files ar.s7i, cgi.s7i, cgidialog.s7i, charsets.s7i, cpio.s7i, csv.s7i, ftp.s7i, ftpserv.s7i, gethttp.s7i, httpserv.s7i, rpm.s7i, tar.s7i, zip.s7i, chkstr.sd7, ide7.sd7 s7c.sd7, comp/debug.s7i and comp/expr_util.s7i have been altered to use the new functions instead of the deprecated function. - The exception CLOSE_ERROR has been renamed to GRAPHIC_ERROR. - The graphic drivers have been changed to raise GRAPHIC_ERROR instead of FILE_ERROR. - The C macro SUPPORTS_PARTIAL_LINKING has been renamed to LINKER_OPT_PARTIAL_LINKING in chkccomp.c and several makefiles. - The functions checkPartialLinking() and determinePartialLinking() have been added to chkccomp.c. These functions determine if partial linking is actually working. - Documentation comments have been improved in keybd.s7i, unicode.s7i, drwlib.c and kbdlib.c. - In several files phrases like "illegal encoding" and "illegal file names" have been replaced with "invalid encoding" and "invalid file names". 20220626: - Syntax highlighting for the Nano editor has been added. Many thanks to Duke Normandin for creating seed7.nanorc. - The syntax highlighting of vim (in seed7.vim) has been improved. - The file syntaxhl.sd7 has been improved. - Explanations about type inference, return type overloading and integer overflow have been improved in the FAQ. - In the manual the tutorial chapter "For loop and containers" has been improved. The chapter about errors has been improved also. - The documentation in src/read_me.txt has been improved and the new file src/read_me.htm has been introduced. - The interpreter (s7) has been improved to write the error message with the correct line if a declaration fails (changes have been done in dcllib.c and error.c). - The new library pem.s7i has been added. This library supports the PEM cryptographic file format. - In encoding.s7i the function fromBase64 has been improved to check that no = is in the middle of a base64 string. - The library zstd.s7i has been fixed to work correct if the ID field size of the dictionary is 0. - The Seed7 compiler (s7c) has been improved to support warning levels. - The compiler has been improved to support case statements if the C switch statement does not work for int64Type (in prc_act.s7i). - In the compiler the string concatenation optimizations have been improved (in str_act.s7i). - Tests for string concatenation have been added to chkstr.sd7. - Checks for converting float expressions to bin32 and bin64 have been added to chkbin.sd7. - The support for the function log1p has been improved (in flt_rtl.c, flt_rtl.h and flt_act.s7i). - In the library asn1.s7i the function printAsn1 has been improved. - The usage of the GMP library has been disabled by default. It turned out that database connection libraries used GnuTLS which used GMP with a custom memory allocator. This caused a memory corruption. All makefiles now define USE_GMP as 0. - The program chkccomp.c has been improved to: - Determine the C language version supported by the compiler. - Determine C overflow behavior of int division. - The handling of integer division overflow has been fixed to avoid a MinGW gcc bug that triggers an endless loop. - Several types in database drivers have been renamed to avoid violating the C++ One Definition Rule (in sql_cli.c, sql_db2.c, sql_fire.c, sql_ifx.c, sql_lite.c, sql_my.c, sql_oci.c, sql_post.c, sql_srv.c and sql_tds.c). - Adjustments have be done in s7c.sd7 and comp/str_act.s7i to support compilation with a C++ compiler. - In common.h the macro logErrorIfTrueX has been introduced. - Function logging has been added to big_gmp.c, kbd_inf.c and kbd_poll.c. - Errors in function logging have been fixed in arr_rtl.c, big_rtl.c, drw_x11.c and sql_rtl.c. - Definitions of LOG1P_FUNCTION_OKAY, INT_DIV_OVERFLOW and INT_REM_OVERFLOW have been added to cc_conf.s7i. The definition of HAS_LOG1P has been removed. The file cmd_rtl.c and the program confval.sd7 have been adjusted. - Documentation comments have been updated in array.s7i, bin32.s7i, bin64.s7i, cc_conf.s7i, external_file.s7i, file.s7i, hash.s7i, math.s7i and flt_rtl.c.
* lang: remove 'Created by' linesTobias C. Berner2022-07-201-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A big Thank You to the original contributors of these ports: * Aaron Dalton <aaron@FreeBSD.org> * Adam Weinberger <adamw@FreeBSD.org> * Akinori MUSHA aka knu <knu@idaemons.org> * Alex Dupre <ale@FreeBSD.org> * Alexey Dokuchaev <danfe@FreeBSD.org> * Alonso Cardenas Marquez <acm@FreeBSD.org> * Andreas Klemm <andreas@klemm.gtn.com> * Andrew Pantyukhin <infofarmer@FreeBSD.org> * Andrey Zakhvatov * Anton Berezin <tobez@FreeBSD.org> * Anton Berezin <tobez@tobez.org> * Anton Shterenlikht * Ashish SHUKLA <ashish@FreeBSD.org> * Bob Eager <bob@eager.cx> * Bruce M Simpson * Bruce M. Simpson * Christoph Mallon <christoph.mallon@gmx.de> * Christopher Elkins <chrise@scardini.com> * Christopher Key <cjk32@cam.ac.uk> * Chuck Robey <chuckr@FreeBSD.org> * Cyrille Lefevre <clefevre@citeweb.net> * Dan Rench <citric@cubicone.tmetic.com> * Danilo Egea Gondolfo <danilogondolfo@gmail.com> * Dario Freni <saturnero@gufi.org> * David Kalliecharan <dave@dal.ca> * David Naylor <dbn@FreeBSD.org> * David Naylor <dbn@dragon.local> * David O'Brien (obrien@NUXI.com) * David O'Brien (obrien@NUXI.org) * David O'Brien <obrien@NUXI.org> * David O'Brien <obrien@cs.ucdavis.edu> * Dereckson <dereckson@gmail.com> * Devon H. O'Dell <devon.odell@gmail.com> * Dmitry Sivachenko <demon@FreeBSD.org> * Don Croyle <croyle@gelemna.org> * Douglas Anestad <yotta@dougdidit.com> * Edwin Groothuis (edwin@mavetju.org) * Edwin Groothuis <edwin@mavetju.org> * Eugene Ossintsev * Frank Fischer * Frank Gruender <elwood@mc5sys.in-berlin.de> * Frederic Cambus * Gea-Suan Lin <gslin@gslin.org> * Gerald Pfeifer <gerald@FreeBSD.org> * Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com> * GreenDog <fiziologus@gmail.com> * Gustau Perez i Querol <gustau.perez@gmail.com> * Guy Antony Halse <guy@rucus.ru.za.za> * Herve Quiroz <hq@FreeBSD.org> * Hye-Shik Chang * Hye-Shik Chang <perky@fallin.lv> * Hye-Shik Chang <perky@python.or.kr> * Iblis Lin <iblis@hs.ntnu.edu.tw> * James Bailie <jimmy@mammothcheese.ca> * James FitzGibbon <jfitz@FreeBSD.org> * Jean-Sébastien Pédron <dumbbell@FreeBSD.org> * Jean-Yves Lefort <jylefort@FreeBSD.org> * Jeff Brown <jabrown@caida.org> * Jeremy Norris <ishmael27@home.com> * Jing-Tang Keith Jang <keith@FreeBSD.org> * John Hein <jhein@symmetricom.com> * John Marino <marino@FreeBSD.org> * John Merryweather Cooper * John Merryweather Cooper <coop9211@uidaho.edu> * John Merryweather Cooper et al * Joseph Koshy <jkoshy@FreeBSD.org> * Josh Elsasser <jre@vineyard.net> * Josh Gilliam <josh@quick.net> * Julian H. Stacey <jhs@FreeBSD.org> * Julian Stecklina * Jyun-Yan You <jyyou@cs.nctu.edu.tw> * Katsuji ISHIKAWA <katsuji.ishikawa@gmail.com> * Kimura Fuyuki <fuyuki@hadaly.org> * Kimura Fuyuki <fuyuki@mj.0038.net> * Kimura Fuyuki <fuyuki@nigredo.org> * Kiriyama Kazuhiko <kiri@kiri.toba-cmt.ac.jp> * Kubilay Kocak <koobs@FreeBSD.org> * Lars Thegler <lth@FreeBSD.org> * Lev Walkin <vlm@lionet.info> * Li-Wen Hsu <lwhsu@FreeBSD.org> * Mahdi Mokhtari <mokhi64@gmail.com> * Marcin Cieslak <saper@SYSTEM.PL> * Martin Matuska <mm@FreeBSD.org> * Matthew Hunt <mph@FreeBSD.org> * Michael Butschky <butsch@computi.erols.com> * Michael Johnson <ahze@FreeBSD.org> * Mitsuru YOSHIDA <mitsuru@riken.jp> * Muhammad Moinur Rahman <5u623l20@gmail.com> * Neal Nelson <ports@nicandneal.net> * Nicola Vitale <nivit@FreeBSD.org> * Nils M Holm <nmh@t3x.org> * Oliver Braun <obraun@informatik.unibw-muenchen.de> * Oliver Breuninger <ob@seicom.NET> * Patrick Li <pat@databits.net> * Pawel Worach <pawel.worach@gmail.com> * Pedro F. Giffuni <giffunip@asme.org> * Pedro Giffuni * Pedro Giffuni <giffunip@asme.org> * Pete French <pete@twisted.org.uk> * Peter Schuller <peter.schuller@infidyne.com> * Peter van Heusden <pvh@egenetics.com> * Phillip Neumann <pneumann@gmail.com> * Piotr Kubaj <pkubaj@anongoth.pl> * Po-Chuan Hsieh <sunpoet@FreeBSD.org> * Pontus Stenetorp <ninjin@kth.se> * Ralf S. Engelschall <rse@engelschall.com> * Rick van der Zwet <rick@wzoeterwoude.net> * Rob Zinkov * Roland Jesse <roland.jesse@gmx.net> * Romain Tartiere <romain@blogreen.org> * Ryan Steinmetz <zi@FreeBSD.org> * Sahil Tandon <sahil@tandon.net> * Sergei Kolobov <sergei@kolobov.com> * Sergey A. Osokin <osa@FreeBSD.org> * Sergey Skvortsov <skv@protey.ru> * Simon Marlow <simonmar@microsoft.com> * Simun Mikecin <numisemis@yahoo.com> * Stanislav Sedov <ssedov@mbsd.msk.ru> * Stephen Weeks <sweeks@sweeks.com> * Steven G. Kargl * Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> * Sylvio Cesar <sylvio@FreeBSD.org> * Thomas Gellekum <tg@FreeBSD.org> * Timothy Beyer <beyert@cs.ucr.edu> * Timothy Bourke <timbob@bigpond.com> * Tom Judge <tj@FreeBSD.org> * Veniamin Gvozdikov <vg@FreeBSD.org> * Vitaly Magerya <vmagerya@gmail.com> * Wen Heping <wenheping@gmail.com> * Wen Heping <wenhping@gmail.com> * Wes Peters <wes@softweyr.com> * Ying-Chieh Liao <ijliao@FreeBSD.org> * Yukihiro Nakai <Nakai@technologist.com> * Yukihiro Nakai <nakai@FreeBSD.org> * Zach Garner <zach@neurosoft.org> * aaron@FreeBSD.org * andrewb@cs.cmu.edu * arved * chinsan * chuckr * dd * erik@smluc.org * gahr * gahr@FreeBSD.org * gpalmer * hsu * ijliao * jasone * jkh * jkoshy * jmacd * jmacd@FreeBSD.org * jmz * js@jeannot.org * jseger@FreeBSD.org * kappa@FreeBSD.org.ua * kbyanc * msmith@gsoft.com.au * mutoh@openedu.org * netchild@FreeBSD.org * patrick * pst * rene@FreeBSD.org * ruslan@shevchenko.kiev.ua * stas * tobez With hat: portmgr
* lang/seed7: update to 05_20220522Pietro Cerutti2022-06-072-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20220522: - An explanation for Seed7 syntax highlighting has been added to the FAQ. - Syntax highlighting for vim and UltraEdit has been fixed in the files doc/sd7.vim, doc/seed7.vim and doc/seed7.uew. - Syntax highlighting support for notepad++ has been added with the file doc/seed7udl.xml - The file syntaxhl.sd7 has been added. It can be used to test Seed7 syntax highlighting. - In the string.s7i library, the functions lower() and upper() now use an up to date Unicode definition. - The library gzip.s7i has been refactored to use the new type gzipHeader and to avoid calling getUInt16Le(). - The function getDigestOidFromAlgorithm() has been added to the library x509cert.s7i. - The pac.sd7 example program has been refactored. Now it also works when compiled. - The calc7 example program has been improved to support functions from the draw.s7i library. - Tests for array append ( &:= ), the 'times' operator and the function remove() have been added to chkarr.sd7. - Tests in chkovf.sd7 have been refactored. - Tests for Unicode case conversions and for conversions to UTF-8 have been added to chkstr.sd7. - Errors in getGidFromGroup() and getUidFromUser() have been fixed in the file cmd_unx.c. - In literal.c the error message for empty char literals has been improved. - The number of C compiler warnings has been reduced in sql_oci.c, drw_win.c and int_rtl.c. - In drw_drv.h, drw_dos.c, drw_emc.c, drw_win.c, drw_x11.c, s7.c, s7c.sd7 and comp/drw_act.s7i, the graphics support has been changed to call drawInit() at program start. - The function drawInit() has been added to drw_dos.c and drw_emc.c. - With these changes in the graphics support, an explicit initialization of graphics is no longer necessary. The explicit graphics initialization has been removed from bmp.s7i, gif.s7i, ico.s7i, jpeg.s7i, png.s7i, ppm.s7i and tiff.s7i. - In str_rtl.c the functions toLower() and toUpper() have been improved to use an up to date Unicode definition. - In drw_x11.c the exception checks in the function drwText have been improved. - In src/read_me.txt the explanation for how to compile under Windows with cl from MSVC has been improved. - In sql_fire.c the function setupParameters() has been changed to check wether malloc() returns NULL. - In sql_ifx.c the function createConnectionString has been changed to optionally consider the DB_LOCALE. Now, the function opening the Informix DB will try to do so with and without DB_LOCALE. - The compiler (s7c.sd7) has been changed to use stderr for a trace of functions (option: -tf). - The compiler has been improved to support tracing of dynamic calls (option: -td). This tracing is also written to stderr. - The compiler has been changed to raise ACTION_ERROR if a dynamic call would result in an endless recursion. - The program chkccomp.c has been improved to restart tests if no numeric result could be obtained. This is necessary for the program to work reliable under Windows with certain virus detection software. - Documentation comments have been improved in color.s7i. 20220410: - In time.s7i, the function time(string) has been improved to consider the daylight saving time. Many thanks to Anders Carstensen for pointing out the problem and for providing a test program. - Explanations of the times operator and the functions bytes(), bytes2Int(), bytes2BigInt(), expm1(), log1p(), ignore() and openServerTls() have been added to the manual. - In the manual, the chapters about primitive actions and about the foreign function interface have been improved. - The FAQ and manual have been improved to consider the Informix database. - In ccittfax.s7i, the CCITT fax decoding has been improved. - In tiff.s7i, reading of TIFF files has been improved. Now, the requested length of Lempel Ziv Welch compressed data is computed correctly. - In jpeg.s7i, reading of JPEG files has been improved to use the component ID. Now, a hash from component ID to component type is used. The old code assumed that component ID and component type would be equal, and it raised RANGE_ERROR when this was not the case. - In bitdata.s7i, the performance of the functions getBit() and getBits() with a msbBitStream has been improved. - In array.s7i, the times operator has been improved to work with [A len L] times element. - A definition of the [A len L] operator has been added to syntax.s7i. - In x509cert.s7i reading and validating certificates has been improved. Now, there is partial support for PKCS #7 certificates. - The libraries tls.s7i and showtls.s7i have been improved to support TLS certificate_request, client_certificate and certificate_verify messages. - The compiler (s7c.sd7) has been improved to write better error messages for duplicate when values. - The program gkbd.sd7 has been improved to consider the space key. - In ref_data.c the function refArrToList() has been improved to raise RANGE_ERROR for an illegal array value. - In dcllib.c the function dcl_elements() has been improved to work correctly when push_stack() is a noop. - The files sql_fire.c and sql_tds.c have been improved to reduce C compiler warnings. - The program chkccomp.c has been improved to allow build tests to deliver a result after a delay. - In soc_rtl.c the functions socGets() and receive_and_alloc_stri() have been improved to set the EOF indicator instead of raising FILE_ERROR if the peer has crashed. - In soc_rtl.c, the function logError() will now be called if recv() fails. - In chkccomp.c, the function determineInformixDefines has been improved to avoid the definition of an empty C array. - The makefile mk_msvc.mak has been changed to define LIMITED_CSTRI_LITERAL_LEN. This avoids that the C compiler runs out of heap space. - Documentation comments have been updated in graph.s7i, tls.s7i, x509cert.s7i, ar.s7i, cpio.s7i, rpm.s7i, tar.s7i and zip.s7i.
* lang/seed7: update to 05_20220312Pietro Cerutti2022-03-303-27/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20220312: - Two typos in the fwd_x11.c have been fixed. Thanks to Zachary Menzies for pointing them out. - Interpreter and compiler have been improved to support Informix databases. - The example program portfwd7.sd7 has been added. Portfwd7 is a port forwarder to redirect network communication. - The run-time to write a BMP file has been reduced to 74% (measured with gcc and valgrind). - The error messages for "Match failed" and "Variable expected" errors have been shortened. - The program gkbd.sd7 has been improved to show when mouse buttons are pressed. - The browser interface in browser.s7i has been improved to support Chromium and Edge. - In http_response.s7i, the HTTP response has been improved to support JPEG, ICO and TIFF files. - The pv7 picture viewer has been improved to use the path of the image. - The function hasImageExtension() has been move from pv7.sd7 to the imagefile.s7i library. - The example program findchar.sd7 has been improved to support Windows/DOS paths. - The support for primitive actions in the compiler has been improved. - The function loadBaseDlls() has been added to sql_post.c. - In tls.s7i an error in processing change_cipher_spec has been fixed. - The program chkbig.sd7 has been refactored to use smaller functions. - An additional test for case statements has been added to chkprc.sd7. - The function getPixelArray() has been added to draw.s7i. - The function setPointerPos() has been added to graph.s7i. - The libraries bmp.s7i, ico.s7i and ppm.s7i have been improved to use the function getPixelArray() to write BMP, ICO and PPM images. - In the libraries bmp.s7i, gif.s7i, jpeg.s7i, png.s7i, ppm.s7i and tiff.s7i calls of imagePixmap() have been replaced by calls of getPixmap(). - The undocumented functions imagePixmap() and getImage() have been renamed to getPixmap() and getPixelData() respectively. - The compiler (s7c) has been improved to inline the action DRAW_PIXEL_TO_RGB. - The makefiles have been improved to simplify the build system. Now utilies like chkccomp, wrdepend, setwpath and sudo are compiled with extra commands. Support for Informix databases has also been added. - Several improvements have been made in chkccomp.c: - It now writes more detailed error messages. - The function appendOption() has been improved to check if an option is already an element in the list. - The functions fileIsPresentPossiblyAfterDelay(), runTest(), doTestNoResultCheck(), addDynamicLibToDllListWithRpath(), addDynamicLib(), addDynamicLibsWithRpath() and determineInformixDefines() have been added. - Now the macros ODBC_SIZEOF_SQLWCHAR, DB2_SIZEOF_SQLWCHAR and INFORMIX_SIZEOF_SQLWCHAR, SQL_SERVER_SIZEOF_SQLWCHAR are written into version.h. - Macros to support Informix databases are written into version.h. - In sql_base.c the error message concerning the searching for dynamic libraries has been improved. - Now the static functions hasDataType() and dataTypeIsUnsigned() in sql_cli.c are only defined when needed. - In all C source files, the types wcharType and wstriType have been replaced by utf16charType and utf16striType respectively. This avoids confusion, since sizeof(wchar_t) is 2 in Windows and 4 in Linux/Unix/BSD (although sizeof(wcharType) was always 2). - Definitions of utf32charType and utf32striType have been added to common.h. - Explanations of utf16charType, utf16striType, utf32charType and utf32striType have been added to the manual. - In heaputl.h, the macros SIZ_WSTRI, MAX_WSTRI_LEN and ALLOC_WSTRI have been removed. Definitions of the macros SIZ_UTF16, SIZ_UTF32, MAX_UTF16_LEN, MAX_UTF32_LEN, ALLOC_UTF16, ALLOC_UTF32, REALLOC_UTF16, REALLOC_UTF32, UNALLOC_UTF16 and UNALLOC_UTF32 have been added. - The database drivers sql_cli.c sql_db2.c, sql_odbc.c and sql_srv.c have been changed to use SQLWCHAR instead of wcharType and wstriType. - In sql_cli.c the macros SIZ_SQLWSTRI, MAX_SQLWSTRI_LEN, ALLOC_SQLWSTRI, UNALLOC_SQLWSTRI, stri_to_sqlwstri, sqlwstri_to_stri and copy_to_sqlwstri have been introduced. These macros allow the DB interface to work for sizeof(SQLWCHAR) == 2 and sizeof(SQLWCHAR) == 4. - The Informix database driver sql_ifx.c has been added. - The macro BIGINT_LIB has been renamed to BIGINT_LIBRARY in chkccomp.c, common.h, big_gmp.c, big_rtl.c, flistutl.c and heaputl.h. - Documentation comments have been improved in bmp.s7i, ccittfax.s7i, draw.s7i, hmac.s7i, huffman.s7i, ico.s7i, imagefile.s7i, lzw.s7i, ppm.s7i, - In sql_base.s7i, the value DB_INFORMIX has been added to the enumeration type dbCategory. - Functions to open Informix databases have been added to sql_base.s7i and sqllib.c. - The function quoteTableNames() has been added to sql_base.s7i. - The program db7.sd7 has been improved to quote table names depending on the database type. - The function drwPFArc() has been added to drw_dos.c and drw_emc.c. - The program wrdepend.c has been improved to support INFORMIX_INCLUDE_OPTION. - The function XWarpPointer() has been added to fwd_x11.c and x11_x.h. - Interpreter and compiler have been improved to support the actions DRW_GET_PIXEL_ARRAY, DRW_SET_POINTER_POS and SQL_OPEN_INFORMIX. - The actions DRW_IMAGE, DRW_GETIMAGE and DRW_GET have been renamed to DRW_GET_PIXMAP_FROM_PIXELS, DRW_GET_PIXEL_DATA and DRW_GET_PIXMAP respectively. - Action and function names have been refactored to fit to each other. The actions DRW_CONVPOINTLIST, DRW_FPOLYLINE, DRW_GENPOINTLIST, DRW_GETIMAGEPIXEL, DRW_GETPIXEL, DRW_PIXELTORGB, DRW_POLYLINE, DRW_SETCLOSEACTION, DRW_SETCONTENT, DRW_SETCURSORVISIBLE, DRW_SETPOS, DRW_SETTRANSPARENTCOLOR, DRW_SETWINDOWNAME, DRW_TOBOTTOM and DRW_TOTOP have been renamed to DRW_CONV_POINT_LIST, DRW_FPOLY_LINE, DRW_GEN_POINT_LIST, DRW_GET_IMAGE_PIXEL, DRW_GET_PIXEL, DRW_PIXEL_TO_RGB, DRW_POLY_LINE, DRW_SET_CLOSE_ACTION, DRW_SET_CONTENT, DRW_SET_CURSOR_VISIBLE, DRW_SET_POS, DRW_SET_TRANSPARENT_COLOR, DRW_SET_WINDOW_NAME, DRW_TO_BOTTOM and DRW_TO_TOP respectively. - The file primitiv.c has been adjusted to use the new action names. - The files drwlib.c and drwlib.h have been refactored to use function names that correspond to action names. - In drw_rtl.c the functions memcpy_pixel() and drwRtlImage() have been renamed to memcpy_to_pixel() and drwGetPixmapFromPixels() respectively. - The functions memcpy_from_pixel() and drwGetPixelArray() have been added to drw_rtl.c. - In drw_win.c, the function rwGetImage() and drwGet() have been renamed to drwGetPixelData() and drwGetPixmap() respectively. - The function drwSetPointerPos() has been added to drw_win.c and drw_x11.c. - In error.c the new macro MAX_DEPTH_SHOWN defines the expression depth shown in "Match failed" and "Variable expected" error messages. - The functions stri_to_wstri16(), stri_to_wstri32(), wstri16_to_stri() and wstri32_to_stri() have been added to striutl.c. - The files comp/drw_act.s7i and comp/sql_act.s7i have been adjusted to support the new action names.
* lang/seed7: update to 05_20220130Pietro Cerutti2022-03-014-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20220130: - An arc() function (to draw an arc) with a width (thickness) parameter has been added to the draw.s7i library. Many thanks to Zachary Menzies for pointing out that it was missing. - The new library tiff.s7i has been added. This library supports the TIFF image file format. - The new library ccittfax.s7i has been added. This library supports CCITT fax decoding as it is used in TIFF files. - The library zip.s7i has been improved to support reading zip64 archives. - A chapter about the type 'process' has been added to the manual. The chapter about case statements and other chapters of the manual have been improved as well. - Bit streams have been introduced and the huffman decoding has been improved. The run-time to extract a gzipped Seed7 archive with tar7 has been reduced to 46% (measured with gcc and valgrind). Other usages of the inflate algorithm (PNG, ZIP, etc.) also benefit from the improvements. - The compiler has been improved to: - Optimize overflow checks away for shift operations. - Optimize index checks for string operations. - Write an error message if an unsupported option is used. - Inline the string tail function. - Use parentheses to reduce C compiler warnings. - Improve optimizations of the bytes2Int() function. - Improve checking of division by zero. - The statistics of the Seed7 compiler (s7c.sd7) has been improved to count inlined functions, optimized index checks and optimized overflow checks. - In bitdata.s7i, the types bitStream, lsbBitStream and msbBitStream have been introduced. These types support the functions getBit(), getBits(), peekBits(), skipBits() and gets(). - In bitdata.s7i, the functions openLsbBitStream() and openMsbBitStream() have been introduced to create lsbBitStream and msbBitStream values. With these functions, bit streams can be created with a file or a string as data source. - In bitdata.s7i the functions getBitLsb(), getBitsLsb(), peekBitsLsb(), skipBitsLsb(), getBitMsb(), getBitsMsb(), peekBitsMsb() and skipBitsMsb() with string als parameters are deprecated now. The functions with the types lsbBitStream and msbBitStream should be used instead. - In huffman.s7i the functions getHuffmanSymbolMsb(string, ...) and getHuffmanSymbolLsb(string, ...) are deprecated. The functions getHuffmanSymbol(msbBitStream, ...) and getHuffmanSymbol(lsbBitStream, ...) should be used instead. - Tests for getBit(), getBits(), peekBits(), skipBits() and gets() have been added to chkbitdata.sd7. This refers to tests with lsbBitStream and msbBitStream. - The program chk_all.sd7 has been adjusted to the changes in chkbitdata.sd7. - The functions in inflate.s7i have been improved to use lsbBitStream as parameter instead of the previous combination of string, bytePos and bitPos. - The library inflatefile.s7i has been removed. The functions from inflate.s7i can be used instead. - The library cpio.s7i has been improved to check if a CPIO header is the correct size. - The library bytedata.s7i has been improved to raise RANGE_ERROR if an empty byte string is converted to integer or bigInteger. - The library gzip.s7i has been improved to use lsbBitStream and the new functions from inflate.s7i. - The library imagefile.s7i has been improved to support TIFF images. - The library jpeg.s7i has been improved to use getHuffmanSymbol(msbBitStream) instead of getHuffmanSymbolMsb(stri, bytePos, bitPos, ...). - The library lzw.s7i has been improved to support the functions lzwDecompress(lsbBitStream, ...), lzwDecompress(msbBitStream, ...), lzwDecompressEarlyChange(msbBitStream, codeSize), lzwDecompressEarlyChange(msbBitStream, codeSize, requestedLength) and lzwDecompressMsbEarlyChange(string, codeSize, requestedLength). - The files bitdata.s7i, gzip.s7i, inflate.s7i, jpeg.s7i, zstd.s7i and chkbitdata.sd7 have been refactored to avoid 'bitStream' as variable name. The name 'bitStream' is now used as interface type in bitdata.s7i. - The Seed7 compiler has been improved in comp/arr_act.s7i, comp/bin_act.s7i, comp/bst_act.s7i, comp/const.s7i, comp/flt_act.s7i, comp/int_act.s7i, comp/intrange.s7i, comp/literal.s7i, comp/prc_act.s7i, comp/rfl_act.s7i, comp/set_act.s7i, comp/stat.s7i, comp/str_act.s7i and s7c.sd7. - Checks for bytes(), bytes2Int(), the right shift operator and division by zero have been added to chkint.sd7. - Checks for bin64 shift operations have been added to chkbin.sd7. - Checks for index access to an empty array have been added to chkarr.sd7. - Checks for bytes2BigInt() have been added to chkbig.sd7. - In array.s7i the declaration of the times operator has been simplified. - The program pv7.sd7 has been improved to support TIFF files. - Casts have been added to dll_win.c and libpath.c to reduce C compiler warnings. - In error.c the error message for a failed declaration has been improved. - In str_rtl.c the performance of strHeadSlice() has been improved. - Unused variables have been removed in several files of the compiler. - In int_rtl.c the functions intBytesBe2Int(), intBytesBe2UInt(), intBytesLe2Int() and intBytesLe2UInt() have been changed to raise RANGE_ERROR if the string is empty. - In big_rtl.c and big_gmp.c the functions bigFromByteBufferBe() and bigFromByteBufferLe() have been changed to raise RANGE_ERROR if the size is zero (the buffer is empty). - The files drw_win.c, drw_x11.c, drw_drv.h, drwlib.c, drwlib.h and primitiv.c have been changed to support the action DRW_PFARC. - Definitions for the function XSetLineAttributes() have been added to fwd_x11.c and x11_x.h. - In the program chkccomp.c the detection of the division by zero behavior and the remainder by zero behavior has been improved. - Documentation comments have been improved in bstring.s7i, bytedata.s7i, bitdata.s7i, null_file.s7i, process.s7i, strifile.s7i and biglib.c.
* lang/seed7: update to 05_20211225Pietro Cerutti2021-12-273-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20211225: - Support for syntax highlighting in vim has been added. Many thanks to Johannes Gritsch for providing the files doc/seed7.vim and doc/sd7.vim. - Chapters about ignoring values, bin64, bin32, bstring, fileSys, Transport Layer Security and the graphics library have been added to the manual. Many other chapters of the manual have been improved as well. - The new library imagefile.s7i has been added. This library supports various image file formats (PNG, GIF, JPEG, BMP, ICO, PPM). - The picture viewer program pv7.sd7 has been improved to use the function readImage() from the imagefile.s7i library. - The keyboard test program gkbd.sd7 has been improved to show more keys. These keys turn red when they are currently pressed. - The function equalFileContent() in sydir7.sd7 has been improved to use a reduced buffer size. A possible error that happens if just one file is at EOF after reading data into the buffers, has been fixed also. - In keybd.s7i, keydescr.s7i and kbd_drv.h definitions for KEY_CTL_0 to KEY_CTL_9 have been added. - In png.s7i an error that happend when reading tiny interlaced PNG files has been fixed. - In boolean.s7i the functions succ(), pred() and boolean() (conversion from integer) have been improved to raise RANGE_ERROR if the resulting value would not be TRUE or FALSE. - Tests for the boolean succ() and pred() functions have been added to chkbool.sd7. - Tests for boolean for-loops have been added to chkprc.sd7. - The operator -:= has been added to bitset.s7i, bitsetof.s7i and hashsetof.s7i. - Tests for set difference assignment (operator -:=) have been added to chkset.sd7. - The program chk_all.sd7 has been adjusted to the changes in the check programs. - The function width(aCharacter) (defined in char.s7i) has been fixed to return 0 for curser and function keys. The change has been made in chr_rtl.c. - In file.s7i the function skip() has been improved to avoid a possible endless loop. - In null_file.s7i the function gets() has been improved to raise RANGE_ERROR if the parameter ''maxLength'' is negative. - In graph_file.s7i, pixmap_file.s7i and window.s7i, the scrolling has been fixed. - In bytedata.s7i the functions getUInt16Le(), getUInt32Le(), getUInt16Be() and getUInt32Be() have been improved to use bytes2Int(). - In filesys.s7i and osfiles.s7i the function readlink() is deprecated. The function readLink() should be used instead. The files cpio.s7i ftpserv.s7i, rpm.s7i, tar.s7i, find7.sd7 and sydir7.sd7 have been altered to use readLink(). - In graph.s7i fhe function DRAW_FLUSH() is deprecated. The function flushGraphic() should be used instead. - The files dialog.s7i, graph_file.s7i, pixmap_file.s7i, bas7.sd7, bifurk.sd7, carddemo.sd7, castle.sd7, cellauto.sd7, clock3.sd7, dnafight.sd7, gkbd.sd7, klondike.sd7, lander.sd7, mahjong.sd7, mandelbr.sd7, mirror.sd7, pairs.sd7, panic.sd7, percolation.sd7, pv7.sd7, raytrace.sd7, shisen.sd7, sudoku7.sd7 and tetg.sd7 have been altered to use flushGraphic() instead of the deprecated DRAW_FLUSH(). - In draw.s7i the put() functions with PSET and XOR parameter are deprecated. The functions without PSET respectively XOR should be used instead. - In graph.s7i the function setCloseAction() is deprecated. Instead of setCloseAction(popupWindow, RETURN_KEY); the statement selectInput(popupWindow, KEY_CLOSE, TRUE); should be used. - The files dialog.s7i, castle.sd7, klondike.sd7, lander.sd7, mahjong.sd7, mandelbr.sd7, pairs.sd7, panic.sd7, planets.sd7, shisen.sd7, sokoban.sd7, sudoku7.sd7, tetg.sd7 and wator.sd7 have been altered to use selectInput() instead of the deprecated setCloseAction(). - In gzip.s7i the functions openGunzipFile(aFile) and openGzipFile(aFile) are deprecated. Instead of openGunzipFile(aFile), use openGzipFile(aFile, READ), and instead of openGzipFile(aFile) use openGzipFile(aFile, WRITE). The files rpm.s7i and tar_cmds.s7i have been altered to use the new function. - In strifile.s7i the function openStrifile() is deprecated. The function openStriFile() should be used instead. - The files htmldom.s7i, rpm.s7i, xmldom.s7i and chkbitdata.sd7 have been altered to use openStriFile() instead of the deprecated openStrifile(). - In stritext.s7i the function openStritext() is deprecated. The function openStriText() should be used instead. - A syntax error in the library stritext.s7i has been fixed. - In echo.s7i, dir.s7i, pixmap_file.s7i and shell.s7i internal indentifiers have been renamed to use camel case. - Interpreter and compiler have been improved to support the actions BLN_SUCC and BLN_PRED. Changes have been done in boolean.s7i, blnlib.c, blnlib.h, primitiv.c, comp/bln_act.s7i and comp/action.s7i. - Interpreter and compiler have been improved to support the action SET_DIFF_ASSIGN. Changes have been done in bitset.s7i, bitsetof.s7i, set_rtl.c, set_rtl.h, setlib.c, setlib.h, primitiv.c, comp/set_act.s7i and comp/action.s7i. - In interpreter and compiler the actions BLN_ICONV1 and BLN_ICONV3 have been improved to raise RANGE_ERROR if the value is not 0 or 1. - The interpreter has been improved (in s7.c) to write an error message if the declaration of main() is missing. - The graphic keyboard drivers in drw_win.c, gkb_win.c and gkb_x11.c have been improved. Minimizing, maximizing and restoring a window triggers a KEY_RESIZE only when it is necessary. Now it can be checked if the mouse forward and back buttons are currently pressed. The event tracing in the keyboard drivers has also been improved. - The parameters of the function drwPut() have been altered in drw_dos.c, drw_emc.c, drw_win.c, drw_x11.c, drw_drv.h, drwlib.c and comp/drw_act.s7i. - The code generation for ENU_ICONV2 in the compiler has been improved (in comp/enu_act.s7i). Now it is similar to the code generated for BLN_ICONV1 and BLN_ICONV3. - The error logging in exec.c has been improved. - Several makefiles have been improved such that 'sudo make install' succeeds for an existing installation. - In blnlib.c the functions bln_pred() and bln_succ() have been added and the functions bln_iconv1() and bln_iconv3() have been adjusted. Now these functions raise RANGE_ERROR if the resulting value would not be TRUE or FALSE. - The function setDiffAssign() has been added to set_rtl.c. - In tim_win.c the function alternate_utime() has been improved to work more reliable (this is called by setMTime). - The function cmdReadlink has been renamed to cmdReadLink. Changes have been done in cmdlib.c, cmd_rtl.c, cmd_rtl.h and comp/cmd_act.s7i. - Documentation comments have been added or improved in array.s7i, bigint.s7i, bin32.s7i, bin64.s7i, bitset.s7i, bitsetof.s7i, bmp.s7i, boolean.s7i, bstring.s7i, category.s7i, char.s7i, cpio.s7i, dir.s7i, draw.s7i, echo.s7i, file.s7i, filesys.s7i, float.s7i, forloop.s7i, gif.s7i, graph.s7i, graph_file.s7i, gzip.s7i, hashsetof.s7i, ico.s7i, integer.s7i, jpeg.s7i, keydescr.s7i, line.s7i, logfile.s7i, lzma.s7i, null_file.s7i, pixmap_file.s7i, png.s7i, ppm.s7i, progs.s7i, reference.s7i, ref_list.s7i, rpm.s7i, shell.s7i, stars.s7i, strifile.s7i, string.s7i, stritext.s7i, subfile.s7i, tar.s7i, text.s7i, tls.s7i, utf16.s7i, utf8.s7i, xz.s7i, zstd.s7i setlib.c and set_rtl.c.
* lang/seed7: fix build, add xrender dependencyPietro Cerutti2021-11-301-1/+1
|
* lang/seed7: update to 05_20211114Pietro Cerutti2021-11-293-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20211114: - The libraries pixmap_file.s7i and graph_file.s7i have been improved to draw to the correct graphic window. Many thanks to Anders Carstensen for pointing out that text was written into the wrong window and for providing a test program. - Answers to three new questions have been added to the FAQ. Answers to existing questions have been improved. Many thanks to Zachary Menzies for pointing out a problem with two dimensional arrays and for providing a test program. - An unclosed <i> tag has been removed from the manual. Thanks to ifethereal for pointing out this error. Several other places with illegal HTML in doc/manual.htm have also been fixed. - The function getXmlTagHeadOrContent() has been improved in scanfile.s7i and scanstri.s7i. Now, tag names start with a letter or underscore (_), and the function can read XML contents that start with the character '<' (like < <= or <> ). In this case, the character < is read as character reference (&lt;). - An explanation of the exception declaration has been added to the manual. - The search for the X11 Xrender extension has been improved. In chkccomp.c the function determineX11Defines() has been improved. Declarations have been moved from x11_x.h to the new file x11_rend.h. Adjustements have been made in drw_x11.c and fwd_x11.c. - Two code pages for APL symbol encoding have been added to charsets.s7i. The graphic representation of the character '\a' (bell) has been changed from '\16#25cf;' to '\16#2022;' in all code sets. - In the vector font cronos16 the design of the characters 'J' '£' and '€' have been improved. - In the vector font cronos27 the design of the characters '£' '¤' and '€' have been improved. - In analyze.c, the function analyzeProg() has been improved to work correctly if an error occurs. - In itflib.c, the function itf_create() has been improved to raise the exception ACTION_ERROR if the source struct is NULL. - The prototypes of the functions conWrite() and stri_to_bstriw() have been changed to work with constant strings. 20211009: - Seed7's approach to avoid double library includes has been improved. Many thanks to Zachary Menzies for reporting the problem (a second library with the same name but in a different directory was not included) and for providing a test case to trigger it. The new mechanism uses the absolute path of a library to determine if it already has been included. Now the map of included libraries is not part of the compiled executable anymore. Changes have been made in seed7_05.s7i, analyze.c, data.h, infile.c, infile.h, libpath.c, libpath.h, prclib.c and prg_comp.c. - The new library htmldom.s7i has been added. This library contains an improved HTML DOM parser. Many thanks to OddCitron1981 for suggesting to parse some of the wild HTML out there on the web. The functions readHtmlNode() and readHtml() have been moved from xmldom.s7i to htmldom.s7i. The type htmlDocument and the function readHtmlContainerSubNodes() have been added. Improvements of HTML scanning functions were also made due to this suggestion. The new HTML parser considers several things special for HTML: - Tag names and attribute names are converted to lower case. - There are alternate end tags for tags with optional closing tag. - Attributes without value get "" as value. - The <!DOCTYPE data is not handled as xmlNode. - Closing tags without opening tag are left in as is. - The HTML scanning functions in scanfile.s7i and scanstri.s7i have been improved: - HTML tag attributes without value are allowed now. - Reading of HTML tag attributes now stops at the end of tag character (>). - CDATA sections are considered now. - The functions getXmlTagHeadOrContent(), getSymbolInXmlTag(), getHtmlAttributeValue() and getNextHtmlAttribute() have been improved. - The function getXmlCdataContent() has been added. - A chapter about for-until-loops has been added to the manual. - The makefiles and the compiler (s7c.sd7) have been improved to avoid linking unused system libraries (e.g. with -lm). Changes have been done in cc_conf.s7i, comp/action.s7i, comp/flt_act.s7i, comp/library.s7i, s7c.sd7, cmd_rtl.c and in the makefiles. - The bas7.sd7 (basic interpreter) example program has been improved. - Now, it is possible to do a string multiplication with the * operator. E.g.: "ha"*3 results in "hahaha" and "ab"*2+"xy"*3 results in "ababxyxyxy". - Now, the RPT$ function is checked for a negative factor. - The wiz.sd7 example program has been refactored. The functions treasureNumber() and vendorDies() have been introduced. - The bigfiles.sd7 example program has been improved to limit the length of the result list. - The compiler has been improved: - Now, unused system libraries are not linked to the executable. - In comp/flt_act.s7i the implementation of FLT_DECOMPOSE has been improved and float comparisons set the flag mathLibraryUsed, if the implementation requires it. - Two functions named appendLibrary() have been added to s7c.sd7. These functions avoid that a system library is linked twice. - In comp/action.s7i calls of BIG_... actions now set the flag bigintLibraryUsed and calls of FLT_... actions (that need the math system library) now set the flag mathLibraryUsed. - The flags bigintLibraryUsed and mathLibraryUsed have been added to comp/library.s7i. - In xmldom.s7i the writeXml functions have been refactored. Unnecessary definitions of writeXml have been removed. - Definitions of SYSTEM_BIGINT_LIBS and SYSTEM_MATH_LIBS have been added to cc_conf.s7i. The definition of ADDITIONAL_SYSTEM_LIBS has been removed. SYSTEM_BIGINT_LIBS and SYSTEM_MATH_LIBS are used in confval.sd7 and s7c.sd7. - Several improvements in chkccomp.c have been done: - Now SYSTEM_MATH_LIBS and LINKER_OPT_DYN_LINK_LIBS are considered. This helps to avoid linking unused libraries. - ADDITIONAL_SYSTEM_LIBS has been renamed to SYSTEM_BIGINT_LIBS. - Now, it checks if fileno() succeeds after a successful call of popen() (this fixes a problem with Emscripten). - The function appendOption() has been improved. - The type of several indices has been changed from int to unsigned int (this reduces the number of C warnings). - The value LINKER_OPT_DYN_LINK_LIBS is now added to a corresponding list of system libraries if dynamic linking at run-time is necessary. - In cmd_rtl.c the function doReadLink() has been improved to work also for symlinks in the Linux /proc filesystem (in /proc the stat() function reports a symlink size of 0). - The macro environmenStrncmp has been renamed to environmentStrncmp. - The function getProgramPath() has been moved from analyze.c to cmd_rtl.c. Additionally it has been improved and renamed to getAbsolutePath(). - In cmd_unx.c the function getExecutablePath() has been improved to use doReadLink() and to return a straightened absolute path (the special directories "." and ".." are interpreted according to their conventional meanings). - The functions concatAndStraightenPath() and straightenAbsolutePath() have been added to str_rtl.c. - In infile.c the functions open_infile(), close_infile(), open_string() and remove_prog_files() have been renamed to openInfile(), closeInfile(), openString() and removeProgFiles() respectively. Now openInfile() and openString() return a boolType result to indicate the success. - In libpath.c the functions find_include_file(), append_to_lib_path(), init_lib_path() and free_lib_path() have been renamed to findIncludeFile(), appendToLibPath(), initLibPath() and freeLibPath() respectively. The functions initIncludeFileHash(), shutIncludeFileHash() and openIncludeFile() have been added. The added functions maintain a hashmap of already included files. - In prclib.c the function prc_include() has been adjusted to call the new function that avoids double includes. Now the 2nd parameter of the action PRC_INCLUDE contains the file name to be included. - In striutl.c the functions stri_to_os_utf8(), conv_to_os_stri() have been improved to return a boolType result that indicates success. - Logging functions have been added to strlib.c. - Documentation comments have been improved in cc_conf.s7i, html.s7i, osfiles.s7i, scanfile.s7i, scanstri.s7i, cmdlib.c, cmd_rtl.c, hshlib.c and hsh_rtl.c. 20210904: - The linking of PostgreSQL has been improved. Many thanks go to SiliconWizard, for pointing out linking problems and for helping to investigate them. The function findPgTypeH() has been added to chkccomp.c. Now the search for pg_type.h and pg_type_d.h does not include postgres.h. In sql_post.c the include of the file postgres.h has been removed. - The wiz.sd7 example program has been refactored. Now it can be compiled. Many thanks go to Vasiliy Tereshkov, for reporting the compilation problem. Additionally, several improvements of wiz.sd7 have been done. - The functions expm1() and log1p() have been added to the math.s7i library. Many thanks go to Sanjay Jain for pointing out that they were missing. - In wrinum.s7i the functions str(ENGLISH, number) and str(GERMAN, number) have been improved to work correctly for zero. - In forloop.s7i the definition of for-until-loops has been improved, such that the loop variable never gets a value outside of the range. The definition of for-loops has been changed to invoke the loop-body just at one place. Since the loop body is inlined, this does shorten the generated code. - Tests for for-loops have been added to chkprc.sd7. - The compiler (s7c.sd7) has been improved to generate better code for the actions BLN_TERNARY, REF_ADDR, REF_SELECT and SET_ELEM (changes were done in bln_act.s7i, ref_act.s7i and set_act.s7i). - The compiler has been improved (in comp/enu_act.s7i), to check for a possible RANGE_ERROR, if an integer is converted to an enumeration value (action ENU_ICONV2). - The compiler has been improved to optimize expressions like ord(aBigExpression mod aPowerOfTwo). - The function chkBigOrdWithBigMod has been added to chkbig.sd7. This function checks the optimizations done with expressions like ord(aBigExpression mod aPowerOfTwo). - Tests for the ternary operator have been added to chkstr.sd7. - Tests for the 'element in bitset' operator have been added to chkset.sd7. These tests check the compiler optimizations for SET_ELEM. - Definitions of HAS_EXPM1 and HAS_LOG1P have been added to cc_conf.s7i. - Interpreter and compiler have been improved, to support the actions HAS_EXPM1 and HAS_LOG1P. - In comp/intrange.s7i the function getIntRange() has been improved to consider the actions INT_SUCC, INT_PRED, INT_ICONV1, INT_ICONV3 and SET_RAND. The handling of the actions INT_RAND, INT_ABS and INT_NEGATE has been improved. The functions getIntAddRange() and getSetRandRange() have been added. - The program chk_all.sd7 has been adjusted to the changes in the check programs. - A spelling error in s7c.sd7 has been fixed. - The program wrinum.sd7 has been changed to start with zero. - Logging functions have been added to reflib.c.
* lang/seed7: update to 06_20210807Pietro Cerutti2021-08-092-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 20210807: - The bmp.s7i library has been improved. Now the function readBmp() works also for historical versions of the BMP format. - The function readIco() has been added to the library ico.s7i. - In msgdigest.s7i the run-time of the functions md4(), md5(), ripemd160(), sha1(), sha224() and sha256() has been reduced by 4% and the run-time of sha384() and sha512() has been reduced by 62% and 67% respectively (measured with gcc and valgrind). - The example program pv7.sd7 (Picture Viewer) has been improved to support the ICO graphic format. Additionally the window title is now changed also at the start and the end of the picture sequence. - The library gif.s7i has been improved to work also for the empty GIF image. - Functions to convert a bin64 or bin32 to a string of bytes with a given length have been added to bin64.s7i and bin32.s7i. To get the bytes of a bin64 or bin32 value use e.g.: bytes(number, BE, 4) The functions bin32AsFourBytesBe, bin32AsFourBytesLe, bin64AsEightBytesBe and bin64AsEightBytesLe are deprecated now. - In bytedata.s7i the functions int16AsTwoBytesBe, int32AsFourBytesBe, int64AsEightBytesBe, int16AsTwoBytesLe, int32AsFourBytesLe, int64AsEightBytesLe, bigAsEightBytesLe and bigAsEightBytesBe are deprecated now. The functions from the bytes(number, SIGNED, LE, 4) family can be used instead. - Calls of the deprecated functions have been replaced with the new function bytes(), which converts an integer to a string of bytes with a given length. The changes have been done in aes.s7i, blowfish.s7i, bmp.s7i, des.s7i, encoding.s7i, gzip.s7i, hmac.s7i, ico.s7i, msgdigest.s7i, rpm.s7i, tls.s7i, zip.s7i, bas7.sd7 and s7c.sd7. - Interpreter and compiler have been improved to support the actions BIN_N_BYTES_BE and BIN_N_BYTES_LE. - The compiler (s7c.sd7) has been improved to generate optimized code for the actions INT_N_BYTES_BE_UNSIGNED, INT_N_BYTES_LE_UNSIGNED, BIN_N_BYTES_BE and BIN_N_BYTES_LE. - In zip.s7i an error in the function setMTime() has been fixed and the function close() has been improved to leave the actual ZIP file open. - Tests for the bytes() function have been added to chkint.sd7 and chkbig.sd7. These tests make sure that the compiler optimizations of the bytes() function work correctly. - The functions uintNBytesBe() and uintNBytesLe() have been added to int_rtl.c. - The functions bin_n_bytes_be() and bin_n_bytes_le() have been added to binlib.c. - Documentation comments have been improved in drwlib.c, intlib.c and int_rtl.c. - The documentation of primitive actions in the manual has been improved. - A debug printf() has been removed from the function socGets() in soc_rtl.c.
* lang/seed7: update to 05_20210627Pietro Cerutti2021-06-283-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: 20210627: - As suggested by Zachary Menzies a function to make the mouse cursor invisible has been added. The function setCursorVisible() has been added to graph.s7i. This function sets the visibility of the mouse cursor in a specified window. - A function to convert an integer to a string of bytes with a given length has been added to bytedata.s7i. To get the bytes of a 32-bit signed big-endian representation use: bytes(number, SIGNED, BE, 4). - The functions for external files have been improved to raise FILE_ERROR, if a file is used after it has been closed. - The management of external files has been improved to automatically close a file, when the last variable that refers to the file leaves its scope (no variable refers to the file any more). - Adjustments have be done in s7c.sd7, comp/prg_act.s7i, comp/sql_act.s7i, comp/str_act.s7i, prg_comp.c, chkccomp.c, sql_cli.c, sql_fire.c, sql_lite.c, sql_my.c, sql_oci.c, sql_post.c, sql_tds.c, sql_rtl.c, sql_rtl.h and sql_drv.h to support compilation with a C++ compiler. - The functions XCreateBitmapFromData(), XCreatePixmapCursor(), XDefineCursor() and XUndefineCursor() have been added to x11_x.h and fwd_x11.c. - The makefiles have been improved to compile the utilities with -O3 -oc3 (command: make utils). A possibility to remove the utilities has been added (command: make clean_utils). The utility programs are now installed under Linux (command: make install). - Documentation comments have been improved in cc_conf.s7i, environment.s7i, process.s7i, graph.s7i, cmdlib.c and cmd_rtl.c. - In cgidialog.s7i the handling of an image with an empty pixmap has been improved. - In clib_file.s7i the function destroy has been changed to use the action FIL_DESTR. - Interpreter and compiler have been improved to support the actions DRW_SETCURSORVISIBLE, FIL_DESTR, INT_N_BYTES_BE_SIGNED, INT_N_BYTES_BE_UNSIGNED, INT_N_BYTES_LE_SIGNED and INT_N_BYTES_LE_UNSIGNED. - Tests have been added to chkint.sd7. These tests check the conversion of an integer to a string of bytes with a given length. - Tests have been added to chkfil.sd7. It is checked if the automatic closing of files works as expected. Other tests check if FILE_ERROR is raised in case a file is used after it has been closed. - Tests for the assignment to an element in an array of strings have been added to chkstr.sd7. - The libraries cpio.s7i and rpm.s7i have been improved to use the new integer conversion functions. - Additional conversion functions have been added to float.s7i and integer.s7i. - Another test for FLOAT_ZERO_DIV_ERROR has been added to chkccomp.c. - In drw_win.c drwSetCursorVisible() has been added, dra_init() has been renamed to drawInit() and WndProc() has been improved to process WM_SETCURSOR. - In drw_x11.c drwGetImage() has been improved to work for an empty window, drwSetCursorVisible() has been added and several checks for RANGE_ERROR have been improved. - In fillib.c the functions fil_cpy(), fil_create(), fil_destr(), fil_empty(), fil_eof(), fil_err(), fil_flush(), fil_in() and fil_out() have been adjusted for the new fileType. - The functions in fil_rtl.c have been adjusted for the new fileType. - In fil_unx.c and fil_win.c the functions filInputReady(), filPipe() and setupFiles() have been adjusted for the new fileType. - In fil_ut8.c the functions ut8Getc(), ut8Gets(), ut8LineRead(), ut8Seek(), ut8WordRead() and ut8Write() have been adjusted for the new fileType. - The function heapStatistic() in flistutl.c has been adjusted for the new fileType. - Improvements in gkb_win.c set the button window, when a resize is done. - The functions intNBytesBeSigned(), intNBytesBeUnsigned(), intNBytesLeSigned() and intNBytesLeUnsigned() have been added to int_rtl.c. - In pcs_rtl.c pcsChildStdErr(), pcsChildStdIn(), pcsChildStdOut() and pcsDestr() have been adjusted for the new fileType. - In pcs_dos.c in function pcsStart() the logging has been adjusted for the new fileType. - In pcs_unx.c the functions pcsPipe2(), pcsPty(), pcsStart() and pcsStartPipe() have been adjusted for the new fileType. - In pcs_win.c the functions pcsPipe2(), pcsStart() and pcsStartPipe() have been adjusted for the new fileType. - Functions in soc_rtl.c have been changed to raise FILE_ERROR, if they are used with an invalid socket. - Logging functions have been added to prclib.c. - The documentation in src/read_me.txt has been improved. 20210530: - The example program pv7.sd7 has been added. It is a picture viewer for several graphic formats (BMP, GIF, JPEG, PNG and PPM). - The new library ppm.s7i has been added. This library supports reading and writing images with the binary PPM image file format. - The functions setWindowName() and selectInput() have been added to graph.s7. - Now, a program might be notified when a window is resized. With selectInput() the notification can be switched on and off. If a window has been resized, reading from the graphic KEYBOARD returns KEY_RESIZE (if the resize notification is switched on). - The libraries keybd.s7i and keydescr.s7i have been improved to define KEY_RESIZE (this key is sent optionally, if a window is resized). - The program gkbd.sd7 has been improved to also show KEY_RESIZE. - The Windows graphics driver has been improved to allow non-modal resizing and moving of windows (while being resized or moved, the program continues to run). - A scaling variant of the function put() has been added to draw.s7i. This function is used by pv7.sd7 to scale an image. - The FAQ has been improved to explain that Seed7 does not use "do what I mean" heuristics (because they may fail in unpredictable ways). - A bitset example has been added to the manual. - In chkarr.sd7 tests for the 'times' operator have been added and the tests for array assignment have been improved. - Tests for the str() function have been added to chkstr.sd7. - The test programs chkarr.sd7 and chkstr.sd7 have been improved to increase the code coverage of the Seed7 run-time library. - The compile time functions prc_include() (in prclib.c) and find_include_file() (in libpath.c) have been adjusted to fail if they are called at runtime. - In drw_win.c the function drwCapture() has been improved to release the screen device context. This avoids a resource leak. Additionally, the stretch blt mode is now set with SetStretchBltMode(). - The program chkccomp.c has been improved to consider the X11 extension Xrender. Now definitions of HAS_XRENDER_EXTENSION and X11_XRENDER_DLL might be written to version.h. - Interpreter and compiler have been improved to support the new actions DRW_PUT_SCALED, DRW_SETWINDOWNAME and GKB_SELECT_INPUT. - The graphic drivers drw_x11.c and drw_win.c have been improved to enlarge the drawing area when a window is enlarged. - The functions resize(), setResizeReturnsKey(), drwPutScaled() and drwSetWindowName() have been added to drw_win.c, drw_x11.c. - The functions gkbSelectInput(), drwPutScaled() and drwSetWindowName() have been added to drw_dos.c, drw_emc.c and drw_drv.h. - The functions resizeBottomAndRight(), resizeTopAndLeft(), startMoveWindow(), processMouseMove() and gkbSelectInput() have been added to gkb_win.c. - The functions handleConfigure(), configureDoesResize() and gkbSelectInput() have been added to gkb_x11.c - The functions gkb_select_input(), drw_put_scaled() and drw_setWindowName() have been added to drwlib.c and drwlib.h. - The handling of events in gkb_x11.c has been improved to handle ConfigureNotify events. These events are used when a window is resized. - In drw_win.c the function drwOpen() has been improved to accept Unicode window names. - In drw_x11.c the function redraw() has been improved to avoid compiler warnings. - Documentation comments have been added to functions in bitset.s7i. - The function XStoreName() and the functions of the Xrender extension have been added to x11_x.h and fwd_x11.c. - The makefiles mk_emccl.mak and mk_emccw.mak have been adjusted for the newest version of Emscripten.
* lang/seed7: enable on armv7Piotr Kubaj2021-06-151-1/+1
|
* lang/seed7: enable on powerpcPiotr Kubaj2021-06-151-1/+1
|
* lang/seed7: update to 05_20210425Pietro Cerutti2021-04-273-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: 20210425: - The new library jpeg.s7i has been added. This library supports the JPEG image file format. - The new library huffman.s7i has been added. This library supports Huffman coding as it is used by JPEG files. - In chkccomp.c the code to determine MINIMUM_TRUNC_ARGUMENT and MAXIMUM_TRUNC_ARGUMENT has been improved. Many thanks to Zachary Menzies for reporting problems with the Linux distribution Solus. - The PKCS#1 v1.5 signature verification has been improved. Many thanks go to Moosa Yahyazadeh for providing a bugs report for seed7-pkcs1. The following improvements have been done: - In pkcs1.s7i the function emsaPkcs1V15Decoding has been improved to check that every padding byte is actually 16#ff and that at least 8 padding bytes are present. (Point 1 of report) - In pkcs1.s7i the functions rsaEncryptBytes() and rsaDecryptBytes() have been removed and usages of them have been replaced with rsassaPkcs1V15Encrypt() respectively rsassaPkcs1V15Decrypt(). (Point 2 of report) - In x509cert.s7i the function validateSignature() has been improved to compare the digest algorithm obtained from the certificate with the digest algorithm stored in the ASN.1 digestAlgorithmIdentifier of the decrypted signature. (Point 3 of report) - The functions getRsaSignature() and getEcdsaSignature() have been added to x509cert.s7i. These functions check that the encoded message has not any trailing garbage bytes. (Point 4 of report) - The functions getDigestAlgorithm(), showSignatureAlgorithm() and getDigestFromSignatureAlgorithm() have been added to x509cert.s7i. - In x509cert.s7i the function validateSignature() has been improved to validate RSA and ECDSA (Elliptic Curve Digital Signature Algorithm) signatures. - In x509cert.s7i the type rsaSignatureType has been introduced and getRsaSignature() has been changed to return a rsaSignatureType. - The functions getRsaSignature() and getEcSignature() have been moved from tls.s7 to x509cert.s7i. Calls of these functions in verifySignature() have been adjusted. - The function validateCertificates() has been added to tls.s7i. - In tls.s7i the function processServerKeyExchange() has been improved to trigger a handshake failure if verifySignature() fails. - In elliptic.s7i the type ecdsaSignature has been renamed to ecdsaSignatureType. - In gethttp.s7i the function getHttpStatusCode has been improved to work correctly, if there is no space after the status code. - In integer.s7i the definitions of min() and max() have been improved to use the ternary operator (a ? b : c). - Several optimizations have been done in the compiler (s7c.sd7): - In comp/prc_act.s7i the function process_prc_for() has been improved to store the range of the for-variable if the start or the end value is constant (or both are constant). - In comp/intrange.s7i the function getIntRange() has been improved to get a range for the action INT_MULT and for a for-variable (if the start or the end value of the for-loop is constant). Determining the maximum of INT_LSHIFT has been improved. - In comp/drw_act.s7i the function drwRgbColor() is now defined as macro, if the optimization level requires it (-oc3). - In comp/arr_act.s7i in the function process_const_arr_idx() the index check has been omitted, if it is known that the index is always in the range of the constant array. - In comp/int_act.s7i the actions INT_MULT and INT_MULT_ASSIGN have been improved to use the builtin mult overflow function, if available. The improvements were made in the functions int_mult_with_overflow_check() and process_const_int_mult(). - The new function varChangedInStatements() has been added to comp/prc_act.s7i. - Code has been moved from process_prc_for() in comp/prc_act.s7i to the new function defineForStartVariable in comp/expr_utl.s7i. - In s7c.sd7 the initialisation of local arrays has been improved to recognize if all elements of the array are the same. In this case arrTimes(), arrMalloc(), malloc() or memset() are used instead of copying an array. The functions canUseArrTimes() and assignArrayValue() have been added, and the function identical_values() has been moved. - Tests for the operator &:= (append one element to an array) have been added to chkarr.sd7. - Tests for arrays with boolean elements have been added to chkarr.sd7. - Tests for the bitpattern of the minimum and maximum floats that can be truncated to an integer have been added to chkflt.sd7. - Tests for reduced overflow checking, if multiplication or lshift leaves some space towards the maximum integer, have been added to chkint.sd7. - Tests of the ternary operator (a ? b : c) have been added to chkint.sd7. - In exec.c the function evaluate() has been improved to also work for SETOBJECT. - In soc_rtl.c the function socInetAddr() has been improved to treat EAI_NODATA like EAI_NONAME. - The program chkccomp.c has been improved to determine the macros PIXEL_RED_MASK, PIXEL_GREEN_MASK PIXEL_BLUE_MASK and RGB_TO_PIXEL_FLAG_NAME. - Definitions of PIXEL_RED_MASK, PIXEL_GREEN_MASK, PIXEL_BLUE_MASK and RGB_TO_PIXEL_FLAG_NAME have been added to cc_conf.s7i.
* lang/seed7: update to 05_20210322Pietro Cerutti2021-04-223-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: 20210322: - Some missleading tests have been removed from chkflt.sd7. Many thanks go to Zachary Menzies for pointing out problems with the tests for trunc() and round(). - The new library gif.s7i has been added. This library supports the GIF image file format. - The new library bmp.s7i has been added. This library supports the BMP image file format. The functions readBmp() and str(BMP) have been moved from draw.s7i to the new library bmp.s7i. The performance and functionality of readBmp() has been improved. The deprecated function read_bmp() has been removed (the function readBmp() can be used instead). - In bitdata.s7i the performance of getBitsLsb() and getBitsMsb() has been improved. - The functions peekBitsLsb(), skipBitsLsb(), peekBitsMsb() and skipBitsMsb() have been added to bitdata.s7i. - The functions lzwCompressLsb(), lzwDecompressLsb(), lzwCompressMsb(), lzwDecompressMsb(), lzwCompressMsbEarlyChange() and lzwDecompressMsbEarlyChange() have been added to lzw.s7i. The functions lzwEncodeMsb() and lzwDecodeMsb() have been deprecated (use lzwCompressMsbEarlyChange() respectively lzwDecompressMsbEarlyChange() instead). - Tests for INDEX_ERROR have been added to chkarr.sd7. - Tests for peekBitsLsb() and peekBitsMsb() have been added to chkbitdata.sd7. - Tests for << (shift left) have been added to chkint.sd7. - Tests for string concatenations where the second parameter is a string of length 1 (created by str(aChar)) have been added to chkstr.sd7. - The function getStriUpToChar() has been added to bytedata.s7i. - The experimental function seekable() has been added to file.s7i, null_file.s7i, clib_file.s7i, external_file.s7i, strifile.s7i, subfile.s7i, utf16.s7i, iobuffer.s7i, gzip.s7i, lzma.s7i, xz.s7i and zstd.s7i. - Several optimizations have been done in the compiler (s7c.sd7): - In comp/arr_act.s7i the index check for the action ARR_IDX has been improved. - In comp/int_act.s7i the overflow check for the actions INT_ADD_ASSIGN and INT_SBTR_ASSIGN has been improved. - In comp/intrange.s7i the function getIntRange() has been improved to get a range for the action INT_LSHIFT and to get a better range for the action INT_MOD. - In comp/str_act.s7i the function optimize_str_cat has been improved to generate a call of strConcatChar() or strConcatCharTemp(), if applicable. - In comp/chr_act.s7i the generation of the macro chrStrMacro() has been improved to avoid #line directives in macro parameters. - In drw_win.c the performance of the function drwImage() has been improved. Instead of calling SetPixel() for every pixel it now does one call of CreateBitmap(). - In runerr.c in the function write_curr_position() the check for the current action object has been improved. - The functions strConcatChar() and strConcatCharTemp() have been added str_rtl.c. - The function filSeekable() has been added to fil_rtl.c. - The function determineLseekFunction() has been added to chkccomp.c. 20210223: - Spelling corrections have been done in several files. Many thanks go to Jens Schleusener, for sending a source code misspelling report from Fossies. - The new library png.s7i has been added. This library supports the PNG image file format. - Seed7 has been improved to compile under Android with termux. This is described in src/read_me.txt. - A chapter about Unicode characters has been added to the manual. - The make7.sd7 example program has been improved. The processing of makefiles in make.s7i has been improved to process every rule just once. The handling of the option -n (don't execute commands) has been improved to work in the same way as in other make tools. - The test program chkbin.sd7 has been improved to to allow two possible NaN values as result of 0.0 / 0.0. - The test program chkflt.sd7 has been improved to allow that for some test cases trunc() and round() either return the correct value (integer.last) or raise RANGE_ERROR. - Tests for array bitset have been added to chkarr.sd7. - Tests for conversion and cardinality have been added to chkset.sd7. - The functions XChangeProperty() and XMapWindow() have been added to fwd_x11.c and x11_x.h. - The makefile mk_clang.mak has been improved to allow the replacement of system headers (x11_x.h and fwd_term.h). This way compilation works also without the original headers. - The warning box created by warn.c had too much width to be readable in termux. So this width has been reduced. - In drw_win.c the functions drwXPos() and drwYPos() have been fixed to return coordinates relative to the parent window. - The checks for the C compiler option -ftrapv in chkccomp.c have been improved. Now it is recognized, if integer overflow raises the signal SIGTRAP. Clang at the ARM processor uses SIGTRAP. - Changes have been done in sigutl.c to handle SIGTRAP and to raise OVERFLOW_ERROR in the signal handler (if chkccomp.c has recognized that an integer overflow raises SIGTRAP). - Changes have been done in chkccomp.c to support PostgreSQL version 13. Additionally the logic to search for PostgreSQL dlls has been improved. Now it searches also for the libraries libcrypto and libssl. Now POSTGRESQL_DLL can be specified, with an absolute path of libpq.dll, in the makefile (which should echo it to chkccomp.h). - In the compiler (s7c.sd7) the handling of actual parameters for formal inout parameters has been improved. Now a struct element can be used as actual parameter for a formal inout parameter. - The compiler has been improved to reduce range checks for the expressions char(number), chr(number) and card(bitset(number)). - Interpreter and compiler have been improved to support the action REF_ISTEMP. The function isTemp() has been added to progs.s7i. - In comp/intrange.s7i the function getIntRange() has been improved to determine result ranges for INT_ADD and integer constants. - The compiler has been improved to assure that sigsetjmp() is not called with a value other than 0 or 1 for the second parameter (savesigs). According to the specification of sigsetjmp() all integer values are allowed for the second parameter (savesigs) and a non-zero value triggers a save of the current signal mask. ARM / Android / termux decided that just 0 and 1 are valid values and that any other value triggers a termination of the program (with SIGABRT). - The function drwCapture() in drw_win.c has been improved to work correct, if the screen has been scaled. - In drw_win.c the functions drwPut() and drwSetTransparentColor() have been improved such that images with a transparent color work. - The runtime of drwRgbColor() in drw_x11.c has been reduced by 31% (measured with gcc and valgrind, when reading a PNG image). This takes effect if a true color display is used. - The runtime of drwRtlImage in drw_rtl.c has been reduced by 63% (measured with gcc and valgrind, when reading a PNG image). The function memcpy_pixel() uses loop unrolling inspired by Duff's device. - The program chkccomp.c has been improved to determing the macro rgbToPixel() (if X11 graphics is used). - In exec.c the function exec_expr() has been improved to clear the TEMP flag for all results. - The makefiles have been improved to write the name of the make utility and the name of the makefile to version.h. 20210130: - The parser (used by interpreter and compiler to read a program) has been improved to work correct, if seed7_05.s7i is not included. Many thanks go to Domingo Alvarez Duarte for pointing out that a missing seed7_05.s7i include statement causes a parser error. - The example program mirror.sd7 has been added. This program mirrors a rectangular screen area in a window. - The function capturePixmap has been added to graph.s7i. This function can be used to capture rectangular areas from the screen. - In the library graph.s7i the function openSubWindow() has been improved to allow top level windows without window decorations. This can be done by using the empty window as parent window. - Chapters about pragmas and compilation errors have been added to the manual. - The parser has been improved to work reliable in out of memory situations. Now the fatal parser error "Out of heap space" does not terminate the program. - The minor versions of interpreter and compiler have been increased. Now interpreter and compiler share the same revision level. Every compilation of the Seed7 interpreter increases the revision level. - A definition of VERSION_REVISION_LEVEL has been added to cc_conf.s7i. This is used in confval.sd7 and s7c.sd7. - Interpreter and compiler have been improved to support the new action DRW_CAPTURE. - In analyze.c the function analyzeProg() has been improved to catch the "Out of heap space" error and to clean up memory in out of memory situations. Now the old values of the global variables prog, interpreter_exception curr_exec_object, curr_argument_list and trace are restored, when the function is left. - In analyze.c the functions analyzeFile() and analyzeString() have been improved to work without setting interpreter_exception. Now these functions work the same in interpreted and compiled programs. - In atom.c the function read_atom() has been improved to keep the data structure consistent in out of memory situations. - The functions pop_owner() and close_current_stack() have been added to name.c. - In name.c the functions free_params(), get_object() and push_name() have been improved to have an additional 'currentProg' parameter. - In name.c the function get_object() has been improved to reverse its changes in case of an error. - In name.c the handling of errors has been improved in push_name(), eval_name_list(), inst_list(), inst_object_expr(), find_name(), search_name(), dollar_parameter() and dollar_inst_list(). In error situations changes are reversed, memory is freed and stack growing and shrinking is now done in a consistent way. - In entutl.c the function copy_params() has been improved to allocate the parameters first in a list and to assign them later. - The new functions pop_name_list() and get_entity_node() have been added to entutl.c. - In entutl.c the function get_entity() has been improved to handle error situations (out of memory). - In entutl.c in the function init_entity() dereferencing NULL is avoided now, if the memory allocation fails. - In blnlib.c the function bln_ternary() has been improved to work correct, if evaluate() returns NULL. This happens if an exception is triggered inside evaluate(). - Implementations of drwBorder() and drwSetPos() have been added to drw_emc.c. The functions drwXPos() and drwYPos() have been improved. - The function drwCapture() has been added to drw_x11.c and drw_win.c. - The function drwOpenSubWindow() has been improved in drw_x11.c and drw_win.c to support the creation of unmanaged top level windows without window decorations (if the parent window is empty). - The function omitWindowDecorationsAndTaskbarEntry() has been added to drw_x11.c. - In flt_rtl.c the function setMantissaAndExponent has been improved to work without division by DOUBLE_MANTISSA_FACTOR. - The program chkccomp.c has been improved to write an error message, if executing a test program fails. - In error.c the functions read_ustri8_line(), read_and_print_line() and ustri8_buffer_to_stri() have been improved to work reliable in out of memory situations. - In fatal.c the function no_memory() has been improved to do a long jump to analyzeProg(). - In listutl.c the function append_element_to_list() has been improved to keep the list_insert_place unchanged in out of memory situations. - In sctlib.c in the function sct_cat() the code to handle an error has been improved, to avoid using a pointer that might be invalid because of a previous realloc(). The function sct_elem() has been improved to consider that grow_stack() might fail. - In typeutl.c the function get_varfunc_type() has been improved to work correct, if new_type() returns NULL. This can happen in out of memory situations. - In findid.c the functions clean_idents() and write_idents() have been refactored to use a progType parameter and to allow NULL values in the ident tables. - In flistutl.c the function heap_chunk() has been improved to never do a realloc() on a memory chunk and to explain why this is done. - In flistutl.h the macros HEAP_OBJ(), HEAP_L_E(), HEAP_NODE() and HEAP_FILE() have been fixed to return FALSE in out of memory situations. - In hshlib.c the macro isit_not_null() has been added to several functions to assert that function references and compare results are not NULL. - In prclib.c the functions prc_begin(), prc_local(), prc_res_begin(), prc_res_local(), prc_return(), prc_return2(), prc_varfunc() and prc_varfunc2() have been improved to handle error situations (out of memory). - In prclib.c the macro isit_not_null() has been added to prc_case(), prc_case_def(), prc_case_hashset() and prc_case_hashset_def(). This macro checks that the sets after the keyword 'when' are not NULL. - In identutl.c the function init_idents() has been changed to leave a failed initialisation as is (this is cleaned up later). - In prg_comp.c the function prgDestr() has been improved to allow NULL for elements of the program structure. The function interpret() has been improved to restore the global variable interpreter_exception. - In exec.c the functions getErrInfoFromFailValue() and do_exec_call() have been added. The function exec_expr() has been improved to restore the global variable interpreter_exception. - In executl.c the functions do_destroy(), create_return_object(), create_local_object(), destroy_local_object() and destroy_local_init_value() have been improved to handle error situations (out of memory). - In match.c the function match_subexpr() has been improved to handle out of memory situations. - In runerr.c the functions write_position_info() and write_call_stack_element() have been improved to recognize valid data better. - In runerr.c the functions run_error(), empty_value() and var_required() have been improved to write the error message only, if exception tracing is switched on. Now these functions raise ACTION_ERROR instead of RANGE_ERROR. - The function freeOptions() has been added to s7.c. The function raise_error2() has been improved to handle an out of memory situation. - In symbol.c the function close_symbol() has been improved to allow NULL for symbol.name and symbol.striValue. - In syvarutl.c the function init_sysvar() has been improved to define a dummy value for SYS_EXPR_TYPE (EXPR_TYPE). This avoids an error, if the source has no include directive. - The function printLocObj() has been added to traceutl.c. The functions prot_list_limited() and trace1() have been improved to recognize corrupt category fields. - In cmd_rtl.c code has been moved from cmdReadlink(), cmdFileTypeSL() and cmdGetcwd() to the new functions doReadLink(), getFileTypeSL() and doGetCwd() respectively. The new functions use err_info to report errors instead of raising an exception. The old functions have been refactored to call the new functions. - In cmd_rtl.c the function followLink() has been refactored to call getFileTypeSL() and doReadLink(). - The program levelup.c has been added. This program is called by the makefile to increase the revision level of interpreter and compiler. - In comp/expr_utl.s7i the function prepare_win_result() has been fixed to use drwDestr() instead of winDestr(). - The system declaration for "type" hase been removed from syntax.s7i. - The makefiles have been adjusted to increase the revision level (stored in level.h) before the interpreter is compiled. This way interpreter and compiler get the same revision level. - Documentation comments have been improved in array.s7i, graph.s7i, leb128.s7i, analyze.c, cmd_rtl.c, drw_emc.c, drw_win.c, drw_x11.c, entutl.c, error.c and exec.c.
* Remove # $FreeBSD$ from Makefiles.Mathieu Arnold2021-04-061-1/+0
|
* lang/seed7: enable on powerpc64Piotr Kubaj2021-04-061-1/+1
|
* lang/seed7: enable on powerpc64lePiotr Kubaj2021-04-061-1/+1
|
* lang/seed7: update to 05_20210106Pietro Cerutti2021-01-112-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=561230
* lang/seed7: update to 05_20201208Pietro Cerutti2020-12-114-9/+10
| | | | | | | Relnotes: https://github.com/ThomasMertes/seed7/blob/a19763a/doc/chlog.txt Notes: svn path=/head/; revision=557753
* lang/seed7: update to 05_20200531Pietro Cerutti2020-06-043-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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++. Notes: svn path=/head/; revision=537906
* lang/seed7: update to 05_20200502Pietro Cerutti2020-05-064-38/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=534184
* lang/seed8: update to 05_20200308Pietro Cerutti2020-03-094-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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(). Notes: svn path=/head/; revision=528106
* lang/seed7: update to 05_20191229Pietro Cerutti2020-01-144-8/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=523009
* Add USES=xorg USES=gl, ports categories lNiclas Zeising2019-11-061-1/+1
| | | | | | | | 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. Notes: svn path=/head/; revision=516915
* lang/seed7: update to 05_20190818Pietro Cerutti2019-08-192-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=509273
* Bump PORTREVISION for ports depending on the canonical version of GCCGerald Pfeifer2019-07-261-1/+1
| | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=507372
* lang/seed7: update to 05_20190714Pietro Cerutti2019-07-243-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=507271
* lang/seed7: update to 05_20190407Pietro Cerutti2019-04-083-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=498358
* lang/seed7: update to 05_20190303Pietro Cerutti2019-03-123-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=495452
* lang/seed7: update to 05_20190107Pietro Cerutti2019-01-092-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=489776
* Bump PORTREVISION for ports depending on the canonical version of GCCGerald Pfeifer2018-12-121-0/+1
| | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=487272
* lang/seed7: update to 05_20181125Pietro Cerutti2018-11-262-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=485940
* lang/seed7: update to 05_20181014Pietro Cerutti2018-10-152-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=482149
* lang/seed7: update to 05_20180821Pietro Cerutti2018-09-102-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=479402
* lang/seed7: update to 05_20180708Pietro Cerutti2018-07-163-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=474744
* lang/seed7: update to 05_20180601Pietro Cerutti2018-06-043-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=471546
* lang/seed7: update to 05_20180304Pietro Cerutti2018-03-053-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=463636
* lang/seed7: update to 05_20180107Pietro Cerutti2018-01-082-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=458403
* lang/seed7: update to 05_20170915Pietro Cerutti2017-10-272-7/+6
| | | | Notes: svn path=/head/; revision=452972
* Sort ARCHS. While here, pet portlint.Mark Linimon2017-06-271-2/+2
| | | | | | | Approved by: portmgr (tier-2 blanket) Notes: svn path=/head/; revision=444437