| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 (<).
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Relnotes: https://github.com/ThomasMertes/seed7/blob/a19763a/doc/chlog.txt
Notes:
svn path=/head/; revision=557753
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Notes:
svn path=/head/; revision=452972
|
|
|
|
|
|
|
| |
Approved by: portmgr (tier-2 blanket)
Notes:
svn path=/head/; revision=444437
|