Related articles |
---|
Seed7 Release 2016-12-31 mertesthomas@gmail.com (2016-12-31) |
From: | mertesthomas@gmail.com |
Newsgroups: | comp.compilers |
Date: | Sat, 31 Dec 2016 08:31:33 -0800 (PST) |
Organization: | Compilers Central |
Injection-Info: | miucha.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="11776"; mail-complaints-to="abuse@iecc.com" |
Keywords: | OOP, available |
Posted-Date: | 31 Dec 2016 11:47:24 EST |
Hello,
I have released a new version of Seed7: seed7_05_20161231.tgz In the
Seed7 programming language new statements and operators can be
declared easily. Types are first class objects and therefore
templates/generics need no special syntax. Object orientation is used
when it brings advantages and not in places when other solutions are
more obvious.
Seed7 is covered by the GPL (and LGPL for the Seed7 runtime library).
Changelog:
- The function toArray has been added to the libraries bitset.s7i,
bitsetof.s7i and hashsetof.s7i. This function creates an array
with all values from a given set.
- Experimental functions to access TAR and ZIP archives as file system
have been added to tar.s7i and zip.s7i. This is work in progress, so
the API might change.
- The compiler has been improved to work correctly with a C++ compiler
backend (Now it uses strRaiseError insead of intRaiseError) for the
code generated for BIN_RADIX and INT_RADIX.
- The compiler has been improved to use sigaction(), when available
(HAS_SIGACTION is TRUE).
- The compiler has been improved to reactivate the signal handler,
when necessary (SIGNAL_RESETS_HANDLER is TRUE).
- Testcases for the parse function with whitespace and control
characters have been added to chkbig.sd7.
- in big_gmp.c the functions bigParse and bigParseBased have been
improved, to raise RANGE_ERROR when whitespace characters are in the
string.
- The configuration values HAS_SIGACTION and SIGNAL_RESETS_HANDLER
have been added to cc_conf.s7i.
- The program chkccomp.c has been improved to define
SIGNAL_RESETS_HANDLER.
- The function checkMoveDirectory has been removed from chkccomp.c.
- In several files the literal 8 has been replaced by CHAR_BIT, when 8
refers to the number of bits is a char.
- Several integer literals have been replaced by defined constants.
- Documentation comments have been added or improved in bitset.s7i,
bitsetof.s7i, hashsetof.s7i, cc_conf.s7i, ftp.s7i, tar.s7i, zip.s7i,
arrlib.c, arr_rtl.c, big_rtl.c, conlib.c, dll_unx.c, dll_win.c,
fillib.c, fil_rtl.c, heaputl.c, hshlib.c, hsh_rtl.c, numlit.c,
numutl.c, pcs_unx.c, pcs_win.c, pol_dos.c, pollib.c, pol_sel.c,
pol_unx.c, sctlib.c, setlib.c, set_rtl.c, str_rtl.c and typlib.c.
Changelog from version 2016-12-04:
- A description, how compiler optimizations can reduce the potential
of integer overflow, has been added to the manual.
- Documentation comments have been improved in cc_conf.s7i,
integer.s7i, int_rtl.c, stat_win.c and tim_win.c.
- The compiler has been improved to optimize expressions, where
several terms are added or subtracted in combination with the
functions succ or pred. It is possible to combine adjacent constant
terms at compile time. This simplifies overflow checks.
- The compiler has been improved to optionally generate programs,
that trace function calls. This is activated with the option -tf.
- Checks have been added to chkint.sd7, where several terms are added
in combination with the functions succ or pred.
- The functions wstati64Ext (in stat_win.c) and alternate_utime (in
tim_win.c) have been improved to avoid the strange time adjustments
of windows for Daylight Saving Time: For the same file different
times are retrieved respectively set in summer and winter. Now the
times do not depend on the time when they are retrieved or set.
- In stat_win.c a check for wildcards in a path has been removed from
wstati64Ext.
- The performance of dirRead in dir_rtl.c has been improved by 10%
(measured with gcc and valgrind). A smarter check for the
directories . and .. reduces the CPU time used.
- In cmd_rtl.c the functions remove_dir and copy_dir have been
improved with a smarter check for the directories . and .. to
reduce the CPU time used.
- The function getSearchPath in cmd_rtl.c has been improved to work
correctly, when there is no environment variable named PATH.
- Definitions of macros to check the st_mode field of struct stat
(e.g. S_ISDIR, S_ISREG, etc.) have been moved from fil_rtl.h to
stat_drv.h.
- The program chkccomp.c has been improved to work correct, when
C compiler options are separated by linefeeds (\n). In this case the
linefeeds are replaced by spaces. The linefeeds are used in
cc_conf.s7i to allow the definition of SYSTEM_DB_LIBS as an array of
database libraries.
- In sudo.c the call of ShellExecute() has been replaced by a call of
ShellExecuteA().
- A definition of FMT_T, a printf format for time_t values, has been
added to common.h.
- The makefile mk_clangw.mak has been improved to use the library
extension ".lib".
- Calls of logFunction and logError have been added or improved in
cmd_rtl.c, cmd_win.c, gkb_win.c, flt_rtl.c, int_rtl.c, pcslib.c,
reflib.c, rfllib.c, stat_win.c and tim_win.c.
- In dir_rtl.c the function readVolumeName has been improved to
consider only directories as volumes.
- In int_rtl.c the functions uint_mult, uint2_mult and uint2_add
have been renamed to uintMult, uint2Mult and uint2Add respectively.
- In stat_win.c the functions filetime_to_unixtime and
fileattr_to_unixmode have been renamed to fileTime2UnixTime and
fileAttr2UnixMode respectively.
- In tim_win.c the function alternate_utime has been improved to
avoid calling os_utime_orig, because the utime functions of Windows
do different time adjustments for the same time in summer and
winter.
Changelog from version 2016-10-31:
- The examples about multiple dispatch in the FAQ and in the manual
have been changed.
- In dir_win.c the functions opendir and wopendir have been improved
to work correctly, when a volume is empty. FindFirstFile returns
INVALID_HANDLE_VALUE, when the path refers to an empty volume
(a directory that does not contain the . and .. directories).
After FindFirstFile fails GetFileAttributesEx is used to recognize
empty volumes.
- In stat_win.c the function wstati64Ext has been improved to
recognize empty volumes correctly. Now GetFileAttributesEx is used
instead of FindFirstFile to get information about a file.
- The function openVolumeList has been moved from cmd_win.c and
cmd_unx.c to dir_win.c.
- The definition of volumeListType has been moved from cmd_drv.h to
dir_win.h.
- In str_rtl.c the function strAppendN has been improved to work
correctly, when an appended string is identical to the destination
or a slice of it. There was already code to handle this case, but
this code could access freed memory in rare situations.
- The makefiles mk_nmake.mak and mk_msvc.mak have been changed to
include the file 'macros' before the macro SYSTEM_DB_LIBS is used.
- Rand functions have been added to bin32.s7i and bin64.s7i.
- The compiler has been improved to optimize the float shift
operators << and >> .
- Documentation comments have been improved in float.s7i,
integer.s7i, osfiles.s7i, big_gmp.c, big_rtl.c, bstlib.c and
bst_rtl.c.
Changelog from version 2016-10-02:
- Definitions of float shift operators << and >> have been added to
float.s7i (A << B is equivalent to A * 2.0 ** B and A >> B is
equivalent to A / 2.0 ** B).
- Checks for the operators << and >> have been added to chflt.sd7.
- Interpreter and compiler have been improved to support the primitiv
actions FLT_LSHIFT and FLT_RSHIFT.
- The example program find7.sd7 has been added. This program is an
utility to search for files and file contents.
- Documentation comments have been added to arrlib.c, biglib.c,
blnlib.c, bstlib.c, fillib.c, pcslib.c, prclib.c, prglib.c and
strlib.c.
Regards,
Thomas Mertes
--
Seed7 Homepage: http://seed7.sourceforge.net
Seed7 - The extensible programming language: User defined statements
and operators, abstract data types, templates without special
syntax, OO with interfaces and multiple dispatch, statically typed,
interpreted or compiled, portable, runs under linux/unix/windows.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.