Age | Commit message (Collapse) | Author | Files | Lines |
|
26 Aug 2021, PHP 7.3.30
- Phar:
. Fixed bug #81211: Symlinks are followed when creating PHAR archive (cmb)
|
|
26 Aug 2021, PHP 8.0.10
- Core:
. Fixed bug #72595 (php_output_handler_append illegal write access). (cmb)
. Fixed bug #66719 (Weird behaviour when using get_called_class() with
call_user_func()). (Nikita)
. Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header).
(cmb)
- BCMath:
. Fixed bug #78238 (BCMath returns "-0"). (cmb)
- CGI:
. Fixed bug #80849 (HTTP Status header truncation). (cmb)
- Date:
. Fixed bug #64975 (Error parsing when AM/PM not at the end). (Derick)
. Fixed bug #78984 (DateTimeZone accepting invalid UTC timezones). (Derick)
. Fixed bug #79580 (date_create_from_format misses leap year). (Derick)
. Fixed bug #80409 (DateTime::modify() loses time with 'weekday' parameter).
(Derick)
- GD:
. Fixed bug #51498 (imagefilledellipse does not work for large circles). (cmb)
- MySQLi:
. Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()). (cmb,
johannes)
- Opcache:
. Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
(Dmitry)
. Fixed bug #81249 (Intermittent property assignment failure with JIT
enabled). (Dmitry)
. Fixed bug #81206 (Multiple PHP processes crash with JIT enabled). (cmb,
Nikita)
. Fixed bug #81272 (Segfault in var[] after array_slice with JIT). (Nikita)
. Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT). (Dmitry)
. Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
(Nikita, Dmitry)
. Fixed bug #81226 (Integer overflow behavior is different with JIT
enabled). (Dmitry)
- OpenSSL:
. Fixed bug #81327 (Error build openssl extension on php 7.4.22). (cmb)
- PDO_ODBC:
. Fixed bug #81252 (PDO_ODBC doesn't account for SQL_NO_TOTAL). (cmb)
- Phar:
. Fixed bug #81211: Symlinks are followed when creating PHAR archive (cmb)
- Shmop:
. Fixed bug #81283 (shmop can't read beyond 2147483647 bytes). (cmb, Nikita)
- SimpleXML:
. Fixed bug #81325 (Segfault in zif_simplexml_import_dom). (remi)
- Standard:
. Fixed bug #72146 (Integer overflow on substr_replace). (cmb)
. Fixed bug #81265 (getimagesize returns 0 for 256px ICO images).
(George Dietrich)
. Fixed bug #74960 (Heap buffer overflow via str_repeat). (cmb, Dmitry)
- Streams:
. Fixed bug #81294 (Segfault when removing a filter). (cmb)
|
|
26 Aug 2021, PHP 7.4.23
- Core:
. Fixed bug #72595 (php_output_handler_append illegal write access). (cmb)
. Fixed bug #66719 (Weird behaviour when using get_called_class() with
call_user_func()). (Nikita)
. Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header).
(cmb)
- BCMath:
. Fixed bug #78238 (BCMath returns "-0"). (cmb)
- CGI:
. Fixed bug #80849 (HTTP Status header truncation). (cmb)
- GD:
. Fixed bug #51498 (imagefilledellipse does not work for large circles). (cmb)
- MySQLi:
. Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()). (cmb,
johannes)
- OpenSSL:
. Fixed bug #81327 (Error build openssl extension on php 7.4.22). (cmb)
- PDO_ODBC:
. Fixed bug #81252 (PDO_ODBC doesn't account for SQL_NO_TOTAL). (cmb)
- Phar:
. Fixed bug #81211: Symlinks are followed when creating PHAR archive.(cmb)
- Shmop:
. Fixed bug #81283 (shmop can't read beyond 2147483647 bytes). (cmb, Nikita)
- Standard:
. Fixed bug #72146 (Integer overflow on substr_replace). (cmb)
. Fixed bug #81265 (getimagesize returns 0 for 256px ICO images).
(George Dietrich)
. Fixed bug #74960 (Heap buffer overflow via str_repeat). (cmb, Dmitry)
- Streams:
. Fixed bug #81294 (Segfault when removing a filter). (cmb)
|
|
Some upstream-provided binaries weren't covered in a code block that
uses patch-elf to tinker with their RPATH entries. There's also an
extra binary provided vs. the NetBSD package, and possibly those for
other OSes. (I don't have Darwin or FreeBSD test environments; those
OSes could need tweaking for this, too.)
|
|
go115 became EOL upstream as soon as 1.17 was released.
|
|
Some relevant changes:
- new register-based calling convention (not on NetBSD though IIUC)
- new language feature to cast slices into array pointers
- the usual amount of bugfixes
|
|
Update Ruby on Rails 6.1 pacakges to 6.1.4.1.
Real changes are in Action Pack (www/ruby-actionpack61).
## Rails 6.1.4.1 (August 19, 2021) ##
* [CVE-2021-22942] Fix possible open redirect in Host Authorization middleware.
Specially crafted "X-Forwarded-Host" headers in combination with certain
"allowed host" formats can cause the Host Authorization middleware in Action
Pack to redirect users to a malicious website.
|
|
Update Ruby on Rails 6.0 pacakges to 6.0.4.1.
Real changes are in Action Pack (www/ruby-actionpack60).
## Rails 6.0.4.1 (August 19, 2021) ##
* [CVE-2021-22942] Fix possible open redirect in Host Authorization middleware.
Specially crafted "X-Forwarded-Host" headers in combination with certain
"allowed host" formats can cause the Host Authorization middleware in Action
Pack to redirect users to a malicious website.
|
|
Build fix for Linux distros that don't ship pax by default.
|
|
|
|
|
|
New in 2021.07:
• Additions:
□ Make cmp routine work properly on Iterator, Seq, Uni, native arrays and
empty Lists
[efb3116][f3ff062][76714ca][39ba888]
□ Add the ACCEPTS(Uni) method on Uni candidate [6b6459f]
□ Implement last and next with a value for 6.e language revision
[402ea05][2542a0a][a5d8135][0761d4b][47ebc86][a2faac4]
[e777fc4][4f19087][2157642]
□ Properly support nearly all HTML5 entities in Pod E<> formatting code [
910179d]
□ Allow Ctrl-C to stop entry in REPL [cf7b4f1]
□ Add ⩶ and ⩵ as Unicode synonyms for === and == [eab780f]
• Deprecations:
□ Deprecate the status method on Proc in place of exitcode and signal
methods
[249fdba][2fd458c]
• Build System:
□ Tidy and improve cleanup rules [e771bd8]
□ Support creating an MSI installer [4e93b84]
• Changes:
□ Allow add method on IO::Path to take multiple values (e.g. "foo".IO.add
(<bar baz>)) [b4d3398]
• Efficiency:
□ Optimize calls to map [a8f144c][38626c6]
□ Optimize loops without phasers for one and two arguments case [265888c]
□ Make for / map with 2+ arguments up to 2x as fast [4c417f3][4f5fb9e][
bfa6b29]
□ Make List cmp List about 25% faster [50bd171]
□ Reduce overhead of loops with phasers by at least 5% [5ecc830][7a1b729]
□ Make the grep(Callable) method about 3% faster [52ffc12][bb09bbb][
71f6bad]
• Fixes:
□ Fix rakuw.exe to be a non-console app [57885f6]
□ Fix CURI probing and installation edge case issue on Windows [2839cef][
d668d99]
□ Clean up sockets created by IO::Socket::INET.new on error [bee5c7a][
271f17b]
□ Fix freezes caused by concurrently produced iterators
[8eae05b][2d396ae][6e66c2e][24b0df8]
□ Fix unimatch for non-base properties [0a1256a]
• Internal:
□ Implement support for moar::hllincludes config variable [a96bfdc][
552f281]
□ Fix binary release set-env.* scripts with space in path [a4a46e3]
□ Rakudo::Iterator::UnendingValue no longer a PredictiveIterator [917d674
]
□ Separate Rakudo::Iterator::IntRange into two classes [03aef65]
□ PredictiveIterator provides own push-until-lazy [7cf3927]
□ Various internal fixes and improvements
[5976e30][bdc5092][1bd0411][f2959ad][ddc7c9f][9c69b7d]
[941349d][eae82f0][2efe430][7f5f60e][22f78f4][9bf1e1c]
|
|
|
|
(still doesn't build for me after that; there's something wrong with the
docs processing)
|
|
|
|
PEAR 1.10.13 (2021-08-10 18:32 UTC)
Changelog:
* PR #114: unsupported protocol - use --force to continue
* PR #117: Add $this operator to _determineIfPowerpc calls
|
|
This minor release includes a security fix according to the new security
policy.
A net/http/httputil ReverseProxy can panic due to a race condition if its
Handler aborts with ErrAbortHandler, for example due to an error in copying the
response body. An attacker might be able to force the conditions leading to the
race condition.
This is issue https://golang.org/issue/46866 and CVE-2021-36221. Thanks to
Andrew Crump (VMware) for reporting this issue.
|
|
This minor release includes a security fix according to the new security
policy.
A net/http/httputil ReverseProxy can panic due to a race condition if its
Handler aborts with ErrAbortHandler, for example due to an error in copying the
response body. An attacker might be able to force the conditions leading to the
race condition.
This is issue https://golang.org/issue/46866 and CVE-2021-36221. Thanks to
Andrew Crump (VMware) for reporting this issue.
|
|
The mix of i586-unknown-netbsd and i686-unknown-netbsd targets
leads partial misdetection of external llvm from lang/llvm.
It adds -DLLVM_RUSTLLVM to CFLAGS and -DLLVM_RUSTLLVM breaks
PassWrapper.c build with external llvm.
Fix PR pkg/56304.
|
|
## 1.16.1 - 2021-06-09
- Add `maclintf` - a utility for adding linting messages when inside macros.
- Print source code of offending line on compiler warnings and errors.
- Fix some issues with linting and re-add missing `make docs`.
- Allow controlling linting with dynamic bindings `:lint-warn`, `:lint-error`, and `:lint-levels`.
- Add `-w` and `-x` command line flags to the `janet` binary to set linting thresholds.
linting thresholds are as follows:
- :none - will never be trigger.
- :relaxed - will only trigger on `:relaxed` lints.
- :normal - will trigger on `:relaxed` and `:normal` lints.
- :strict - will trigger on `:strict`, `:normal`, and `:relaxed` lints. This will catch the most issues
but can be distracting.
|
|
1. Bug fixes
Elixir
[Kernel] Ensure deprecated macros emit warnings
Mix
[mix deps] Ensure unconstrained rebar deps generate valid mix specifications
2. Enhancements
Elixir
[elixirc] Change the output of --profile time to make it easier to detect outliers
[Application] Do not add compile time deps on args to Application.compile_env/2 and Application.compile_env!/2
[Enum] Optimize Enum.into/3 and Map.new/2
Mix
[mix compile] Compile most recently changed files first
[mix compile, mix run, mix test] Speed up the time taken to load dependencies. This should make the usage of Mix inside projects quite more responsive
|
|
New in version 2.1.7
* incompatible change: on certain platforms (currently just
x86-64), dynamic-extent arrays specialized on character and
numeric types and created without either :INITIAL-ELEMENT or
:INITIAL-CONTENTS will reflect previous contents of the stack
instead of #\null (or 0) in all elements.
* minor incompatible change: SB-SPROF:START-PROFILING no longer
silently does nothing if the clock is already running. It
instead stop and restarts with the newly provided options, and
warns.
* minor incompatible change: the system attempts to refer to the
supplied pathname in compiler diagnostics, if relevant, rather
than the truename.
* enhancement: new contrib module sb-graph producing graphical
visualizations of Intermediate Representations of SBCL
compilation data structures.
* platform support:
* improved code generation for unary minus in modular contexts
on arm64.
* make the disassembler annotations slightly more robust on arm64.
* release space back to the Operating System on Windows.
* improve the test for whether pages need to be committed on Windows.
* fix a bug in the use of the VPCMPEQD opcode on
x86-64. (#1928516, thanks to Marco Heisig)
* optimization: the type of (LOOP ... COLLECT ...), and the type
of COLLECT INTO variables, is derived as LIST. (#1934577,
reported by SATO shinichi)
New in version 2.1.6
* minor incompatible change: COMPILE-FILE does not merge the input
file's pathname-directory into the output path if :OUTPUT-FILE
was specified and has a directory that is not :UNSPECIFIC.
* platform support:
* improvements to unwind code generation on arm64.
* on x86-64, accept three operands for vshufpd. (reported by
Bela Pecsek)
* on x86-64, improvements to use of popcount
* improve exception handling on 64-bit Windows. (thanks to
Luis Borges de Oliveira)
* bug fix: allow use of macros with improper argument
list. (#1929623, thanks to Sean Maher)
* bug fix: COERCE no longer attempts to guess what the user meant
if they provide a type specifier of a union of types other than
STRING. (#1929614)
* bug fix: print a single trailing zero after the decimal point
for FORMAT ~E if there are no digits remaining to be printed and
the width allows it. (#883520)
|
|
|
|
libjsound.so on NetBSD uses PREFIX/lib/libasound.so and add PREFIX/lib
to rpath of libjsound.so.
Fix confusion against devel/libnet.
Reported by manu@ on tech-pkg@.
Bump PKGREVISON.
|
|
Version 14.17.4 'Fermium' (LTS)
This is a security release.
Notable Changes
CVE-2021-22930: Use after free on close http2 on stream canceling (High)
Node.js is vulnerable to a use after free attack where an attacker might be able to exploit the memory corruption, to change process behavior. You can read more about it in https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22930
This releases also fixes some regressions with internationalization introduced by the ICU updates in Node.js 14.17.0 and 14.17.1.
|
|
29 Jul 2021, PHP 8.0.9
- Core:
. Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files).
(cmb, Nikita)
. Fixed bug #81163 (incorrect handling of indirect vars in __sleep).
(krakjoe)
. Fixed bug #81159 (Object to int warning when using an object as a string
offset). (girgias)
. Fixed bug #80728 (PHP built-in web server resets timeout when it can kill
the process). (Calvin Buckley)
. Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER['request_uri']).
(cmb)
. Fixed bug #80173 (Using return value of zend_assign_to_variable() is not
safe). (Nikita)
. Fixed bug #73226 (--r[fcez] always return zero exit code). (cmb)
- Intl:
. Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option).
(cmb)
. Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone). (cmb)
. Fixed bug #74264 (grapheme_strrpos() broken for negative offsets). (cmb)
- OpenSSL:
. Fixed bug #52093 (openssl_csr_sign truncates $serial). (cmb)
- PCRE:
. Fixed bug #81101 (PCRE2 10.37 shows unexpected result). (Anatol)
. Fixed bug #81243 (Too much memory is allocated for preg_replace()). (cmb)
- Reflection:
. Fixed bug #81208 (Segmentation fault while create newInstance from
attribute). (Nikita)
- Standard:
. Fixed bug #81223 (flock() only locks first byte of file). (cmb)
|
|
29 Jul 2021, PHP 7.4.22
- Core:
. Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files).
(cmb, Nikita)
. Fixed bug #81163 (incorrect handling of indirect vars in __sleep).
(krakjoe)
. Fixed bug #80728 (PHP built-in web server resets timeout when it can kill
the process). (Calvin Buckley)
. Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER['request_uri']).
(cmb)
. Fixed bug #80173 (Using return value of zend_assign_to_variable() is not
safe). (Nikita)
. Fixed bug #73226 (--r[fcez] always return zero exit code). (cmb)
- Intl:
. Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option).
(cmb)
. Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone). (cmb)
. Fixed bug #74264 (grapheme_strrpos() broken for negative offsets). (cmb)
- OpenSSL:
. Fixed bug #52093 (openssl_csr_sign truncates $serial). (cmb)
- PCRE:
. Fixed bug #81101 (PCRE2 10.37 shows unexpected result). (Anatol)
. Fixed bug #81243 (Too much memory is allocated for preg_replace()). (cmb)
- Standard:
. Fixed bug #81223 (flock() only locks first byte of file). (cmb)
|
|
|
|
|
|
Announcements:
== Release 0.9.10
Major feature enhancements
New Features
R7RS Large and SRFI support
We cover R7RS-large Red and Tangerine Edition.
* scheme.ilist: Immutable list library
* scheme.rlist: Random access lists
* scheme.bytevector: R6RS-compatible bytevectors
* scheme.text: Immutable texts
* scheme.show: Combinator formatting
* scheme.regex: Scheme Regular Expressions: Grapheme support is
completed by @pclouds.
* srfi-78: Lightweight testing (now integrated with gauche.test).
* srfi-101: Purely functional random-access pairs and lists
(scheme.rlist)
* srfi-116: Immutable list library (scheme.ilist)
* srfi-130: Cursor-based string library
* srfi-135: Immutable texts (scheme.text)
* srfi-159: Combinator formatting (scheme.show)
* srfi-170: POSIX API
* srfi-174: POSIX timespecs
* srfi-175: ASCII character library
* srfi-176: Version flag. Supported as built-in. (version-alist)
* srfi-178: Bitvector library
* srfi-180: JSON
* srfi-181: Custom ports
* srfi-185: Linear adjustable-length strings
* srfi-189: Maybe and either: optional container types
* srfi-192: Port positioning
* srfi-193: Command line
* srfi-195: Multiple-value boxes (Boxes).
New modules
* parser.peg: PEG parser combinator library. This module has been
unofficially included for long time, but it finally became
official. If you've been using it, check out the document, for
API has been changed. Compatibility module is provided.
* data.skew-list: Skew binary functional random-access list
* data.priority-map: Priority map.
* rfc.uuid: UUID generation and parsing.
* text.external-editor: Running external editor.
* text.pager: Display with pager.
Improvements
String indexing improvements
In Gauche, string access using integer character index costs O(n)
by default, because we store strings in multibyte format. Two
improvements are incorporated to allow O(1) random string access.
* String cursors (srfi-130). It is an object directly points
to a specific character within a string, thus allowing O(1)
access. It is supported natively, so all built-in string
procedures that takes character index also accept string
cursors. See String%20cursors, for the details. This is the
work mostly done by @pclouds.
* String indexing (scheme.text). You can precompute a string
index, which is an auxiliary data attached to a string that
allows O(1) integer character index access. You need O(n) to
compute a string index, but once computed, character index
access in that string becomes O(1). In R7RS-large, scheme.text
library provides this feature (with a distinct type text). In
Gauche, a text is simply a string with a string index computed.
See String indexing for the details.
Note: Gauche internally had string pointers to implement some string
operations efficiently. Now string cursors can be used for that
purpose, we dropped string pointers. If you have code that uses
string pointers, although it was undocumented, you can keep using
it by defining GAUCHE_STRING_POINTER environment variable. We'll
completely drop it in the next release, though.
Immutable pairs
Scheme defines literal pairs to be immutable, but it is up to the
implementation to check it. Gauche used to not check it, allowing
mutating literal pairs. Now it is no longer allowed--it throws an
error. Mutating literal pairs is never correct, and if you get the
error, you've been doing it wrong.
Immutable pairs can also be explicitly constructed using scheme.ilist
module. In Gauche, immutable pairs and lists behaves exactly like
normal pairs and lists, except that they can't be modified. See
Mutable and immutable pairs, for the details.
If your code depends on the previous behavior and can't change
swiftly, set the environment variable GAUCHE_MUTABLE_LITERALS to
restore the old behavior.
Input line editing
The editor feature is enhanced a lot, including online help. Type
M-h h to get a quick cheet sheet.
The line editor isn't turn on by default yet, but you can either
turn on with the command-line option -fread-edit or the environment
variable GAUCHE_READ_EDIT.
Parameters are now built-in
You no longer need to (use gauche.parameter) to use parameters as
defined in R7RS. The module still exists and provides a few obscure
features.
Bitvector literal and incomplete string literals
We now supports bitvector type in the core. Note that there's a
syntax conflict with bitvector literals and incomplete strings;
now the official way of incomplete string literal is to prefix a
string with #**. The older syntax is still recognized as far as
it's not ambiguous. See Incomplete%20strings.
The C-level Port API is overhauled
This only affects for C code using ScmPort. To support future
extensions flexibly, we hide the internal implementation of ScmPort.
It shouldn't affect code that accesses ScmPort via API, but if the
code directly refers to the members of ScmPort, it should be
rewritten to use API.
One notable change is that port positions no longer need to be an
integer offset.
TLS support improvement
* With default configuration, Gauche searches several known
locations of ca-certificates, so it can work mostly out of
the box. See rfc.tls for the details.
* With default configuration, <mbed-tls> is used if it's available.
<ax-tls> is always available but its cipher support is limited
and can't connect to some https sites.
* You can also configure to embed MbedTLS support into Gauche so
that it will run on a system that doesn't have MbedTLS installed.
(See INSTALL.adoc for the details.) Note that if you embed
MbedTLS, the resulting binary is covered by MbedTLS Apache
License 2.0 as well. Windows Installer version has MbedTLS
embedded.
Encoding conversion improvement
Now we support conversion natively, between UTF (8, 16, 32) and
ISO8859-n, as well as between Japanese encodings. We use iconv(3)
only when we need to deal with other encodings.
This is because iconv lacks a necessary API to support srfi-181
transcoded ports properly. If you just need to convert encodings,
you can keep using gauche.charconv and it handles wide variety of
encodings supported by iconv. If you use srfi-181, the conversion
is limited between the natively supported encodings.
We may enhance native support of conversions if there's need for it.
Miscellaneous improvements
* gauche.generator: Add giterate, giterate1.
* gauche.lazy: Add literate.
* format: Make ~f handle complex numbers as well, and added a bunch
of new directives: ~t, , ~~, ~|, and ~$.
* define-hybrid-syntax: The compiler macro feature.
* current-trace-port: A parameter to keep trace output. Output of
debug-print goes to this port, for example. The default is stderr.
* gauche.record: Allow record types to inherit from non-record
class, as long as the superclass doesn't add slots. Also allow
to specify metaclasses.
* gauche.unicode: Conversion procedures utf8->ucs4 etc. now takes
replace strictness that replaces invalid unicode sequence with
U+FFFD. utf8->string is also changed to use the replace character
for invalid input sequence, instead of throwing an error.
* gauche.unicode: string->utf16: Add add-bom? argument.
* gauche.unicode: Add string->utf32, utf32->string.
* identifier?: Now it responds #t to both symbols and wrapped
identifiers. In ER-macro systems, identifiers can be a bare
symbol as well. To check an object is an identifier but not a
symbol, you can use wrapped-identifier? to check an object is
a non-symbol identifier.
* When gosh is run inside a build tree (with -frest option), make
sure we link with libgauche.so in the build tree regardless of
the setting of LD_LIBRARY_PATH. (PR#557)
* apropos now takes a string as well as a symbol (PR#555)
* Character set is now hashable with the default-hash.
* Add .dir-locals.el file in the source tree. It sets up Emacs to
add some Gauche-specific indentations.
* If gosh is run in suid/sgid process, do not load .gaucherc file
and do not load/save history files.
* complete-sexp? is moved to the core (used to be in gauche.listener.
* string->number: Added default-exactness optional argument to
specify the exactness of the result when no exactness prefix is
given in the input.
* gauche-package generate can now generate template of Scheme-only
package.
* srfi-42: Added :collection qualifier to use a collection as a
generator.
* gauche.fcntl: Added sys-open, sys-statvfs, sys-fstatvfs.
* sys-utime: Allow <time> object for timestamp.
* sys-nice: Added nice() interface.
* make-hash-table: If a comparator whose equalily predicate is
eq?/eqv?, we use eq-hash/eqv-hash regardless of comparator's hash
function. It is permitted by srfi-125, and it allows objects that
doesn't have hash method can still be used with eq/eqv based
hashtables (#708).
* gauche.vport: Add bidirectional virtual port. Add
open-output-accumulator.
* gauche.process: Allow command pipeline in process port API (#717).
Also :error keyword argument accepts :merge, to tell run-process
that stderr should be merged into stdout.
* gauche.process: Added process-wait/poll, process-shutdown.
* gauche.threads: atomic-update!: Allow proc to return more values
than the atom holds. It is useful if one wants to update atom
state and compute something using before-update values.
* gosh: -e option can accept multiple S-expressions.
* gauche.dictionary: Add <stacked-map>.
Bug fixes
* Fix double-rounding bug when converting ratnum to flonum.
Originall reported in Ruby, it is a common issue that first
convert numerator and denominator to double and then divide.
(blog entry).
* math.mt-random: (Incompatible change) When the given seed is
bignum, we use all bits now to initialize the RNG. The previous
versions only used the lowest word, but that loses the entropy.
Technically this causes RNG to produce different sequence if the
seed is bignum. For typical usage, though, seed is within fixnum
or at most as wide as a machine word and we think it's rare that
the change becomes an issue.
* Some macro-defining-macro issues are fixed, including #532 .
* file.util: make-directory*: Fixed timing hazard.
* www.css: construct-css: Fix :not pseudo class rendering (PR#645),
added missing an+b syntax (PR#648).
* gauche.process: High-level utilities didn't handle :encoding
keyword argument (#651).
* load-from-port: Fixed a bug that didn't reset literal reader
context (#292).
* apply detects if the argument list is circular and throws an error.
* copy-list detects the circular list and throws an error.
* scheme.list: lset=: Argument order to invoke the equality
predicate was incorrect.
* math.prime: native-factorize: Reject other than positive exact
integers. Factorizing 1 returns ().
* assume: Fix to return the value of the expression.
* and-let*: Fix 20-year old bug - and-let* is allowed to take an
empty body.
* let-optionals*: There was a bug that inserts reference of
undefined hygienically, causing an error when used in R7RS code
that doesn't inherit gauche module.
* rfc.json: construct-json: Allow non-aggregate toplevel value. It
was prohibited in rfc4627, but allowed in rfc7159.
* pprint: Fix circular structure printing in case when the cycle
begins in the middle of a list (#713).
== Release 0.9.9
Bug fix and enhancements
* New features
- More R7RS-large and SRFI support
- Charset enhancements to Full Unicode range
- Macro tracer
- Checking use of undefined result in conditionals
* Improvements
* Bug fixes
* Potential incompatibilities
New features
More R7RS-large and SRFI support
* scheme.stream: Streams (formerly srfi-41).
* scheme.ephemeron: Ephemeron (formerly srfi-124).
* scheme.regex: Scheme Regular Expression (formerly srfi-125).
Contributed from @pclouds. Grapheme support is still missing.
* scheme.vector.u8 etc.: Homogeneous numeric vector libraries
(srfi-160).
* srfi-162: Comparators sublibrary.
* srfi-173: Hooks.
Charset enhancements to Full Unicode range
* Predefined char-sets (srfi-14) are enhanced to the entire Unicode
range, e.g. char-set:digit now includes all Unicode characters
with general category Nd. If you want to limit the range to ASCII,
there are corresponding char sets (e.g. char-set:ascii-digit)
provided.
* 'Umbrella' general category char-set: char-set:L includes
characters from general categories that begin with L, etc.
* In regexps and char-set literals, you can use \p{category} and
\P{category}, where category is Unicode general category, e.g. Lu.
* The \d, \w, \s in regexp and char-sets are still limited to ASCII
range, for changing them would likely to break existing code.
* POSIX notation [:alpha:] etc., also covers ASCII range only. To
cover full Unicode, you can use [:ALPHA:] etc.
Macro tracer
* trace-macro: You can now trace macro expansion.
Checking use of undefined result in conditionals
* Return value of procedures that return "undefined result"
shouldn't be used in portable code. However, Gauche usually
returns #<undef> from such procedures, and it counts to true as
a boolean test in conditionals. We found quite a few code that
branches based on the result of undefined return value. Such code
is fragile, for it may break with unintentional change of return
values of such procedures. Gauche can now warn such cases when
the environment variable GAUCHE_CHECK_UNDEFINED_TEST is set. See
the blog entry and Undefined values.
Improvements
* Partial continuation support is overhauled w.r.t interaction with
dynamic environment and full continuations. Contributed by
@Hamayama.
* gauche.uvector: Support uniform complex vectors (c32, c64 and c128).
* gauche.test: New compile-only option to test-script, so that it
can perform syntax check without executing the actual script
(useful if the script is written without using main).
* gauche.generator: Add negative step value support to grange.
* regexp-replace etc.: It used to be an error when regexp matches
zero-length string. Which wasn't wrong, but in practice it was
annoyance. Now if regexp matches zero-length string we advance
one character and repeat matching. This behavior is also adopted
by Perl and Ruby.
* gosh -h now emits help messages to stdout and exits with 0.
* Experimental line editor: backward-word and forward-word added by
@pclouds PR#524
Bug fixes
* Keyword argument handling wasn't hygienic.
* pprint: Prettyprint emits negative labels (#484)
* Extend the limit of environment frame size (#487)
* Scm_CharSetAdd could yield inconsistent result when you add an
ASCII character to a large charset. Patch by @pclouds PR#500
* import: Only/rename import qualifiers didn't work with transitiev
export (#472)
* Some system calls shouldn't be restarted when interrupted. #504
* format: ~vr didn't work. #509
* sort!, stable-sort!: We implemented them as if they were
linear-updating, that is, we didn't guarantee if the argument
still pointed to the head of the sequence after the call.
However, srfi-95 didn't explicitly mentions linear updating
semantics, so we guaranteed that caller can call them purely
for side-effects.
Potential incompatibilities
* Scm_RegExec now takes two more arguments specifying start and
end of the range of input string. I overlooked this change and
missed to add a proper transition macro. You can use #ifdef
SCM_REGEXP_MULTI_LINE to switch the new interface vs the old one.
* Toplevel define now inserts a dummy binding at compile-time
(as a result of #549). It is consistent with the specification,
but existing code that relied on undefined behavior might be
affected. See the blog entry.
* The (scheme base) library inadvertently exported Gauche's define
instead of R7RS define; Gauche's define recognizes extended lambda
arguments, while R7RS's not. This was a bug and fixed now, but
if your R7RS code happens to use Gauche's extended argument
notation, it'll break.
* macroexpand: Now it strips syntactic information from the return
values (with renaming macro-inserted identifiers, so that different
identifiers with the same name won't be confused). This generally
improves interactive use when you check how macros are expanded.
If you're using the output of macroexpand programatically, this
may break hygiene; you can pass an optional argument to preserve
syntactic information.
* parser.peg: This module is still unofficial, but in case you're
using it: $do is now obsoleted. Use $let and $let*. $parameterize
is added by @SaitoAtsushi.
== Release 0.9.8
Bug fixes and enhancements
* Major changes
- The syntax of quasirename is changed
- Keywords are symbols by default.
- Some support of R7RS-Large Tangerine Edition.
- Prettyprinting is now default on REPL.
* Bug fixes
* Other notable changes
Major changes
The syntax of quasirename is changed
The template was implicitly quasiquoted before, but it turned out
it interferes when quasiquote and quasirename were nested. Now the
template needs to be explicitly quasiquoted. The old syntax is also
supported for the backward compatibility. You can change the
supported compatibility level by an environment variable
GAUCHE_QUASIRENAME_MODE. See the manual entry of quasirename and
the blog post for more details.
Keywords are symbols by default.
There can be some corner cases that causes backward compatibility.
You can revert to the old behavior by setting an environment variable
GAUCHE_KEYWORD_DISJOINT. See the "Keyword" section of the manual
for how to adapt to the new way.
Some support of R7RS-Large Tangerine Edition.
We have scheme.mapping, scheme.mapping.hash, scheme.generator,
scheme.division, scheme.bitwise, scheme.fixnum, scheme.flonum. See
Gauche:R7RS-large for which libraries in R7RS-Large have been
supported.
Prettyprinting is now default on REPL.
If it bothers you, set an environment variable GAUCHE_REPL_NO_PPRINT.
Bug fixes
* The identifiers _ and ... are bound to syntax, to be friendly to
hygienic macros.
* floor/ and ceiling/ returned incorrect values when remainder is zero.
* During compilation, feature identifiers are considered according
to the target platform, so that cross compilation work (#407).
* A finite inexact number multiplied by an exact zero now yields an
exact zero consistently.
* Precompiled uniform vectors had lost infinities, NaNs and minus
zeros. Now they are handled properly.
* The record accessor accidentally leaked #<unbound> to the Scheme
world.
Other notable changes
* GC version is bumped to 8.0.4, thanks to @qykth-git.
* Unicode support is bumped to 12.1.0, thanks to @qykth-git (#471).
* Numerous enhancements on Windows/MinGW version, thanks to @Hamayama.
* Now gauche-package compile command has --keep-c-files and --no-line
options, for easier troubleshooting with generated C files (#427).
* gauche.cgen.cise: Enhanced support for C procedure declaration,
C struct and union type definition, and function type notation.
* Default hash function works on uniform vector (#440)
* The gauche.interactive module now doesn't load ~/.gaucherc---that
feature is splitted to gauche/interactive/ init.scm. Thus, when
you start gosh it still reads ~/.gaucherc, but if you use
gauche.interactive as an ordinary module, it doesn't load
.gaucherc (#448).
* gauche.array: New procedures array-negate-elements!,
array-reciprocate-elements!.
* disasm: Now it shows lifted closures as well.
* When the number of arguments passed to apply is fixed at the
compile time, the compiler now optimize apply away. For example,
(apply f 'a '(b c)) now becomes exactly the same as (f 'a 'b 'c).
If this optimization somehow causes a problem, pass
-fnodissolve-apply option to gosh.
* srfi-42: Uniform vectors are supported just like vectors.
* Now we have predefined char-set for each of Unicode general
category, e.g. char-set:Lu.
* New flonum procedures: approx=?, flonum-min-normalized,
fronum-min-denormalized.
* gauche.vport: Virtual port constructors accept :name argument.
== Release 0.9.7
Major C API/ABI overhaul
* Changes of C API/ABI
* New modules and procedures
* Bug fixes and improvements
* Incompatible changes in unofficial module
Changes of C API/ABI
This release includes several C API/ABI changes that breaks the
backward compatibilities, in order to have clean API towards 1.0.
Although we haven't officially defined C API/ABI, we kept the de
facto backward compatible as much as possible. Some turned out to
be design shortcomings. We don't want them to hinder future
developments, so we decided to change them now.
In most cases, all you need to do is to recompile the extensions.
We checked existing extensions being compilable with the new version
as much as possible. If you find an extension breaks, let us know.
See API Changes in 0.9.7 for the details. We bumped ABI version
from 0.9 to 0.97, so the extensions compiled up to 0.9.6 won't be
linked with the new version of Gauche. If necessary, you can install
0.9.6 and 0.9.7 Gauche in parallel, and switch them using -v VERSION
option.
If you're not sure what extensions you've installed, check the
directory ${prefix}/share/gauche-0.9/site/lib/.packages /. It
contains gpd (Gauche Package Description) files of the extensions
you've installed for 0.9.6 and before.
New modules and procedures
* srfi-154: First-class dynamic extents
* gauche.connection: An interface that handles connection-based
full-dupex communication channel. The <socket> (gauche.net)
class implements it, as well as a couple of other classes. It
allows to write a communication code (e.g. server request
handlers) without knowing the underlying connection implementation.
* text.edn: Parse and write Clojure's EDN representation.
* compat.chibi-test: A small adapter module to run tests written
for Chibi Scheme (some srfi reference implementations use it)
within gauche.test.
* text.html-lite: HTML5 elements are added. PR#363
* gauche.array: Export array-copy.
* gauche.configure: Add more feature tests: cf-check-lib,
cf-check-libs, cf-check-type, cf-check-types, cf-check-func,
cf-check-funcs, cf-check-decl, cf-check-decls, cf-check-member,
cf-check-members. Also added cf-init-gauche-extension and
cf-output-default, which takes care of common task of Gauche
extensions so that the configure script can now be very terse.
* gauche-package make-tarball is updated to read package.scm. Used
with gauche.configure, this eliminates the need of DIST script
for the extensions.
* file.util: Added call-with-temporary-file,
call-with-temporary-directory.
* assoc-adjoin, assoc-update-in: A couple of new assoc-list procedures.
Bug fixes and improvements
* rfc.tls: If CA bundle path is set, axTLS connection also
validates server certificates (mbedTLS rejects connection
when CA bundle path is not set). PR#362
* rfc.tls: On Windows, you can specify system as CA bundle
path to use the system certificate store. PR#395 , PR#398
* rfc.tls: If Gauche is configured with mbed-tls but without
axtls, the default tls class is set to <mbed-tls>.
* Bumped to bdwgc 7.6.8. PR#373
* Experimentally turned on generic function dispatcher
optimization for ref and object-apply by default. It could
boost the performance of these generic function calls up to
5x. We keep monitoring the effect of optimization and will
enhance it in future.
* Now glob sorts the result by default (consistent of glob(3).
To avoid sorting, or supply alternative sort procedure, use
:sorter argument.
* REPL's info uses the value of the PAGER environemnt variable
for paging. Now you can put command-line arguments in it (not
only the command name). PR#358
* REPL's info failed to work when Gauche is built without zlib
support.
* sxml.serializer: If the attribute value is the same as attribute
name, we took it as a boolean attribute and just rendered with
attribute name only. It interferes with an attribute with the
value that happens to be the same as the name, so we changed it.
This is backward-compatible change. PR#359
* sxml.ssax: Fix whitespace handling. PR#360
* We had a kludge to handle a setter of a slot accessor method,
that causes confusion when you use the module that implements a
base class then define slot accessor in the derived class. It
is fixed. See the thread
https://sourceforge.net/p/gauche/mailman/message/36363814/
for the details.
* Now we handle utf-8 source file that has BOM at the beginning.
* open-input-file, open-output-file, etc.: We now honor element-type
keyword arguments (it was ignored before). It only makes
difference on Windows.
* scheme.set: Fix set<? etc.
* util.digest: digest-hexify can now take u8vector as well.
* A bug in hash-table-copy caused inconsistent hash table state. #400
Incompatible changes in unofficial module
* parser.peg: Removed pre-defined character parsers (anychar,
upper, lower, letter, alphanum, digit, hexdigit, newline, tab,
space, spaces, and eof) and shorthands ($s, $c, and $y). Those
names are easy to conflict (esp. 'newline') yet not so much
useful, for it's quite easy to define. If existing code relies
on these procedures, say (use parser.peg.deprecated).
|
|
|
|
|
|
This will allow to clean up a number of package Makefiles.
|
|
Switch default Ruby's version from 2.6 to 2.7.
|
|
* Update contained Archive_Tar pear package to 1.4.14.
* Remove extra BUILDLINK_API_DEPENDS.php.
Bump PKGREVISION.
Archive_Tar 1.4.14 (2021-07-20 15:35)
Changelog:
* Properly fix symbolic link path traversal (CVE-2021-32610)
|
|
Announcement:
ECL 21.2.1 release
Tagged as release
Written by Marius Gerbershagen on 2021-02-01 14:21
Dear Community,
We are announcing a new stable ECL release which fixes a number of
bugs from the previous release. Changes made include amongst others
* working generational and precise garbage collector modes
* support for using precompiled headers to improve compilation speed
* the bytecompiler correctly implements the ANSI specification for
load time forms of literal objects in compiled files
* fixes for encoding issues when reading in the output of the
MSVC compiler
* issues preventing ECL from compiling on Xcode 12 and running
on ARM64 versions of Mac OS have been rectified
More detailed information can be obtained from the CHANGELOG file
and git commit logs. We'd like to thank all people who contributed
to this release. Some of them are listed here (without any particular
order): Paul Ruetz, Karsten Poeck, Eric Timmons, Vladimir Sedach, Dima
Pasechnik, Matthias Köppe, Yuri Lensky, Tobias Hansen, Pritam Baral,
Marius Gerbershagen and Daniel Kochmański.
This release is available for download in a form of a source code
archive (we do not ship prebuilt binaries):
• ECL 21.2.1 tarball archive
• The ECL Manual
Happy Hacking,
The ECL Developers
|
|
|
|
Compiler options/fixes pertaining to the host compiler should not depend on
the target selection.
|
|
|
|
https://github.com/rakudo/rakudo/releases/tag/2021.06
New in 2021.06:
* Additions:
+ Support generics with consumption and inheritance in roles [4b99656][
6e1cfe4]
+ Introduce done foo syntax as a shortcut for emit foo; done [452e92e]
+ Implement pick method on Any taking HyperWhatever as an argument (.pick
(**)),
which produce all values of Foo.pick(), and then produce all values
of Foo.pick() again, and again, ad infinitum [cd4a72b]
+ Add a repl sub to enter the REPL from within a program [4183cda]
+ Add Buf and Blob coercers to Blob and Buf roles [f83e551]
* Changes:
+ No longer use Unicode in REPL on Windows [5e1c97b]
* Efficiency:
+ Tweak worker addition for many small tasks [39e5834]
+ Make .grep(Regex) and .first(Regex) about 40% faster [0de28ae]
+ Speed up setup of NativeCall subs and reduce memory usage [3b7fef2]
+ Micro-optimize levenshtein sub used to suggest alternatives in error
messages [da0f561]
* Fixes:
+ Improve stability on Windows by trying to rename precomp files multiple
times [a9510b8][7dfed29]
+ Fix bogus "emit without supply or react" error when using hyper to
process arrays [4953a29]
+ Fix some edge cases with (+), (.), (&) and (|) set operators [89fd8a8]
+ Make signature destructuring with a Junction an error [15d372e][57070f0
]
+ Make Mu eqv Mu work [750c5d0]
+ Fix possible error when throwing an exception on JVM backend [9743035]
* Internals:
+ Provide support for CORE:: namespace for the core itself [ea92934][
3fcf6f7][b03afef]
+ Remove a special case for native arrays on JVM [28ff12a]
+ Simplify Iterable eqv Iterable implementation [168da39]
+ Abstract single elem path of [] into Rakudo::Internals [db074a8]
|
|
|
|
|
|
Causes -arch x86_64 to be added to CFLAGS and then fails to link.
|
|
|
|
Unfortunately stripping the signatures breaks running the binaries outside a
chroot according to schmonz, so we're left with no choice but to make this
user-configurable. It took a lot of effort for me not to name this variable
something far ruder.
This will still mean the go-bin package is ultimately useless when shipped as
part of a package set, but really we only need it for bootstrapping a real
version which should work fine.
|
|
|
|
This causes problems executing inside a chroot. Bump PKGREVISION.
|
|
Fixes the build of go116 when inside a chroot as the signatures cannot be
verified for some reason.
|
|
Fixes builds on OS where PKG_SUPPORTED_OPTIONS is not defined, so
bsd.options.mk is not pulled in, but OPSYS is still tested.
|
|
|