Path: csiph.com!goblin3!goblin.stu.neva.ru!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Thomas Mertes Newsgroups: comp.compilers Subject: Seed7 Release 2021-01-06 Date: Sun, 10 Jan 2021 04:35:00 -0800 (PST) Organization: Compilers Central Lines: 119 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <21-01-001@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="94732"; mail-complaints-to="abuse@iecc.com" Keywords: available, OOP Posted-Date: 10 Jan 2021 11:21:29 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:2624 Hello, I have released a new version of Seed7: seed7_05_20210106.tgz The download is here: https://sourceforge.net/projects/seed7/files Seed7 is also at GitHub: https://github.com/ThomasMertes/seed7 The Seed7 programming language has many interesting concepts, which are explained at its Homepage: http://seed7.sourceforge.net Notable changes in this release are: - The way how in-parameters work has been improved. Now it is possible to define a new type in an in-parameter declaration. - The support for function types in interpreter and compiler has been improved. - The support to run and compile Seed7 with JavaScript has been improved. 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 without 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_SYMBOL. - 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. 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.