Related articles |
---|
Seed7 Release 2018-04-01 mertesthomas@gmail.com (2018-04-01) |
From: | mertesthomas@gmail.com |
Newsgroups: | comp.compilers |
Date: | Sun, 1 Apr 2018 23:43:15 -0700 (PDT) |
Organization: | Compilers Central |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="54575"; mail-complaints-to="abuse@iecc.com" |
Keywords: | available, OOP |
Posted-Date: | 03 Apr 2018 11:15:09 EDT |
Hello,
I have released a new version of Seed7: seed7_05_20180401.tgz
The download is here: https://sourceforge.net/projects/seed7/files
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 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.
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.