Pike 8.0.702 release candidate:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702.tar.gz
Other builds:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Darwin-15.4.... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-win32-oldlib...
Changes since Pike 8.0.610 (release 12)
New Features ------------
o Sql.mysql
In unicode decode mode, characters outside the BMP are now encoded as UTF-8 encoded UTF-16. This works around that MySQL/MariaDB don't allow characters outside the BMP in utf8 strings (and instead require the character set to be declared as utf8mb4, which has quite a few side effects).
Bug fixes ---------
o Runtime
- Fixed NULL dereference (SIGSEGV) in _disable_threads() if another thread is holding the compiler lock.
- Fixed loss of Pike_interpreter_pointer (race, --with-debug only).
The Pike_interpreter_pointer must not be altered by threads not holding the interpreter lock...
o Calendar
- Updated tzdata to 2018e.
o Compiler
- The machine code generator for ppc64 now generates correct code under ABI v2 (ppc64le)
- Fixed an incompatibility between the machine code generator on ppc and GCC 7.
- Support inherit of CompilerEnvironment.
Fix some bugs triggered in the supporter subsystem when executing in an inherited CompilerEnviroment.
o Filesystem.Monitor
- Fix NULL-dereference in bump().
Survive st being zero in bump().
o Fuse
- Switched the Fuse module to use a different libfuse API. The way we used to use libfuse got first deprecated and support for it is now removed from the libfuse git repository entirely. In addition, our previous use of said libfuse API triggered a bug resulting in a segmentation fault in at least libfuse 2.9.2 and 2.9.7. We now use libfuse in a less elegant but more usual way, and do not trigger the bug anymore.
- Handle errors in Fuse operations (i.e. Pike code implementing FUSE filesystems) gently by reporting ENOSYS instead of exiting the process.
o Gmp.mpq
Fix numbers between -1.0 and 1.0 sometimes missing a leading 0.
o Pike.identify_cycle
Fix various issues with LFUNs throwing errors.
LFUNs used by mapping operations may throw errors; this caused identify_loop_visit_leave() to also throw errors. The rest of the identify_cycle code was not happy about this and
- Forgot to unlock the mc_mutex. This caused all following calls to Pike.identify_cycle() and Pike.count_memory() to hang.
- Leaked memory.
The above issues are now avoided by instead using the addresses of objects as indices in the affected mapping. It also fixes the issue with hangs if there are objects with lfuns calling Pike.identify_cycle() or Pike.count_memory().
o Protocols.HTTP.Server
Fix an issue with accounting of sent bytes that caused responses to requests over HTTPS to not finish on success, but instead the whole connection to time out. Data for the first request was usually fully written, but the connection neither was properly closed nor re-used.
o Protocols.WebSocket
- Added low_connect() and low_websocket_accept().
These make it easier to test the error handling in the module, and to replace the HTTP-layer.
- Improved compliance with RFC 6455 section 4.1.
o The nonce is now actually random.
o The http version, method and headers are validated. o Header case-sensitivity issues have been fixed.
- The module now has a testsuite.
- Improved HTTP-header camel-case consistency.
o Sass
- Errors thrown by handle_sass_import() can now be caught and handled by the caller of compile_file() and compile_string().
- Added the option "sass_syntax".
This option will parse the input as having indented Sass syntax. This option only has effect in compile_string().
- Added method sass2scss() to convert Sass syntax to SCSS syntax.
o Sql.pgsql
- Fix regression bug since rel 12 that hangs queries returning over 1024 records.
- Fix all rare-deadlock-causes logged in the last two years.
o Stdio.Buffer
Eliminate race condition in read_cstring().
o Stdio.UDP
Fixed wait() failing with ENOTSOCK on NT.
o Thread.Farm
- Fixed lost error in provide_error() exception handling.
- Avoid delayed deallocation of jobs by clearing references immediately after execution.
o Tools.Standalone
- extract_autodoc: Terminate on failure.
Reenable termination on extraction failure.
Building & Tools ----------------
o Java
- The location of libjvm is now detected on Ubuntu 18.04. - Detect and support OpenJDK 10.
o Postgres
Support Postgresql 10 and later.
o Sass
Improved detection of C++ runtime library on MacOS X.
MVH,
Now some Linux builds (both 32-bit and 64-bit) are also available:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.18.1... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.18.1... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.18.1... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.18.1... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.19.0... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.4.15... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Linux-4.4.15...
Hi all,
I’ve uploaded binaries for MacOSX 10.9-10.11 and 10.12+. You’ll find them with the other binaries for 8.0.702.
RPMs for EL6 and 7 (x86_64) have been built, but not uploaded; they have sub-packages and I didn’t want to clutter the download directory un-necessarily. Happy to provide them if anyone thinks they’re useful.
I also have an updated port for pkgsrc (an ongoing project I’ve sunk many, many hours into), and have prepared binaries based on that port for NetBSD 7, EL 6/7, Darwin and SmartOS/illumos. I am working on getting the pike port added to pkgsrc-wip as well as a binary for NetBSD 8, but can provide the binaries if anyone’s interested in testing.
Also, I can provide the RPM specs, pkgsrc ports as well as the build scripts (they’re very slightly specific to the build hosts I’m using) I’ve used if anyone else wants to have a look at how they’re generated.
Bill
On Oct 10, 2018, at 9:54 AM, Peter Bortas bortas@gmail.com wrote:
Pike 8.0.702 release candidate:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702.tar.gz
Other builds:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Darwin-15.4.... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-win32-oldlib...
Changes since Pike 8.0.610 (release 12)
New Features
o Sql.mysql
In unicode decode mode, characters outside the BMP are now encoded as UTF-8 encoded UTF-16. This works around that MySQL/MariaDB don't allow characters outside the BMP in utf8 strings (and instead require the character set to be declared as utf8mb4, which has quite a few side effects).
Bug fixes
o Runtime
Fixed NULL dereference (SIGSEGV) in _disable_threads() if another thread is holding the compiler lock.
Fixed loss of Pike_interpreter_pointer (race, --with-debug only).
The Pike_interpreter_pointer must not be altered by threads not holding the interpreter lock...
o Calendar
- Updated tzdata to 2018e.
o Compiler
The machine code generator for ppc64 now generates correct code under ABI v2 (ppc64le)
Fixed an incompatibility between the machine code generator on ppc and GCC 7.
Support inherit of CompilerEnvironment.
Fix some bugs triggered in the supporter subsystem when executing in an inherited CompilerEnviroment.
o Filesystem.Monitor
Fix NULL-dereference in bump().
Survive st being zero in bump().
o Fuse
Switched the Fuse module to use a different libfuse API. The way we used to use libfuse got first deprecated and support for it is now removed from the libfuse git repository entirely. In addition, our previous use of said libfuse API triggered a bug resulting in a segmentation fault in at least libfuse 2.9.2 and 2.9.7. We now use libfuse in a less elegant but more usual way, and do not trigger the bug anymore.
Handle errors in Fuse operations (i.e. Pike code implementing FUSE filesystems) gently by reporting ENOSYS instead of exiting the process.
o Gmp.mpq
Fix numbers between -1.0 and 1.0 sometimes missing a leading 0.
o Pike.identify_cycle
Fix various issues with LFUNs throwing errors.
LFUNs used by mapping operations may throw errors; this caused identify_loop_visit_leave() to also throw errors. The rest of the identify_cycle code was not happy about this and
Forgot to unlock the mc_mutex. This caused all following calls to Pike.identify_cycle() and Pike.count_memory() to hang.
Leaked memory.
The above issues are now avoided by instead using the addresses of objects as indices in the affected mapping. It also fixes the issue with hangs if there are objects with lfuns calling Pike.identify_cycle() or Pike.count_memory().
o Protocols.HTTP.Server
Fix an issue with accounting of sent bytes that caused responses to requests over HTTPS to not finish on success, but instead the whole connection to time out. Data for the first request was usually fully written, but the connection neither was properly closed nor re-used.
o Protocols.WebSocket
Added low_connect() and low_websocket_accept().
These make it easier to test the error handling in the module, and to replace the HTTP-layer.
Improved compliance with RFC 6455 section 4.1.
o The nonce is now actually random.
o The http version, method and headers are validated. o Header case-sensitivity issues have been fixed.
The module now has a testsuite.
Improved HTTP-header camel-case consistency.
o Sass
Errors thrown by handle_sass_import() can now be caught and handled by the caller of compile_file() and compile_string().
Added the option "sass_syntax".
This option will parse the input as having indented Sass syntax. This option only has effect in compile_string().
Added method sass2scss() to convert Sass syntax to SCSS syntax.
o Sql.pgsql
Fix regression bug since rel 12 that hangs queries returning over 1024 records.
Fix all rare-deadlock-causes logged in the last two years.
o Stdio.Buffer
Eliminate race condition in read_cstring().
o Stdio.UDP
Fixed wait() failing with ENOTSOCK on NT.
o Thread.Farm
Fixed lost error in provide_error() exception handling.
Avoid delayed deallocation of jobs by clearing references immediately after execution.
o Tools.Standalone
extract_autodoc: Terminate on failure.
Reenable termination on extraction failure.
Building & Tools
o Java
- The location of libjvm is now detected on Ubuntu 18.04.
- Detect and support OpenJDK 10.
o Postgres
Support Postgresql 10 and later.
o Sass
Improved detection of C++ runtime library on MacOS X.
MVH,
Peter Bortas
Great, I'm aiming for release on Sunday then.
/Peter On Sat, Oct 13, 2018 at 12:58 AM H. William Welliver III william@welliver.org wrote:
Hi all,
I’ve uploaded binaries for MacOSX 10.9-10.11 and 10.12+. You’ll find them with the other binaries for 8.0.702.
RPMs for EL6 and 7 (x86_64) have been built, but not uploaded; they have sub-packages and I didn’t want to clutter the download directory un-necessarily. Happy to provide them if anyone thinks they’re useful.
I also have an updated port for pkgsrc (an ongoing project I’ve sunk many, many hours into), and have prepared binaries based on that port for NetBSD 7, EL 6/7, Darwin and SmartOS/illumos. I am working on getting the pike port added to pkgsrc-wip as well as a binary for NetBSD 8, but can provide the binaries if anyone’s interested in testing.
Also, I can provide the RPM specs, pkgsrc ports as well as the build scripts (they’re very slightly specific to the build hosts I’m using) I’ve used if anyone else wants to have a look at how they’re generated.
Bill
On Oct 10, 2018, at 9:54 AM, Peter Bortas bortas@gmail.com wrote:
Pike 8.0.702 release candidate:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702.tar.gz
Other builds:
https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-Darwin-15.4.... https://pike.lysator.liu.se/pub/pike/beta/8.0.702/Pike-v8.0.702-win32-oldlib...
Changes since Pike 8.0.610 (release 12)
New Features
o Sql.mysql
In unicode decode mode, characters outside the BMP are now encoded as UTF-8 encoded UTF-16. This works around that MySQL/MariaDB don't allow characters outside the BMP in utf8 strings (and instead require the character set to be declared as utf8mb4, which has quite a few side effects).
Bug fixes
o Runtime
Fixed NULL dereference (SIGSEGV) in _disable_threads() if another thread is holding the compiler lock.
Fixed loss of Pike_interpreter_pointer (race, --with-debug only).
The Pike_interpreter_pointer must not be altered by threads not holding the interpreter lock...
o Calendar
- Updated tzdata to 2018e.
o Compiler
The machine code generator for ppc64 now generates correct code under ABI v2 (ppc64le)
Fixed an incompatibility between the machine code generator on ppc and GCC 7.
Support inherit of CompilerEnvironment.
Fix some bugs triggered in the supporter subsystem when executing in an inherited CompilerEnviroment.
o Filesystem.Monitor
Fix NULL-dereference in bump().
Survive st being zero in bump().
o Fuse
Switched the Fuse module to use a different libfuse API. The way we used to use libfuse got first deprecated and support for it is now removed from the libfuse git repository entirely. In addition, our previous use of said libfuse API triggered a bug resulting in a segmentation fault in at least libfuse 2.9.2 and 2.9.7. We now use libfuse in a less elegant but more usual way, and do not trigger the bug anymore.
Handle errors in Fuse operations (i.e. Pike code implementing FUSE filesystems) gently by reporting ENOSYS instead of exiting the process.
o Gmp.mpq
Fix numbers between -1.0 and 1.0 sometimes missing a leading 0.
o Pike.identify_cycle
Fix various issues with LFUNs throwing errors.
LFUNs used by mapping operations may throw errors; this caused identify_loop_visit_leave() to also throw errors. The rest of the identify_cycle code was not happy about this and
Forgot to unlock the mc_mutex. This caused all following calls to Pike.identify_cycle() and Pike.count_memory() to hang.
Leaked memory.
The above issues are now avoided by instead using the addresses of objects as indices in the affected mapping. It also fixes the issue with hangs if there are objects with lfuns calling Pike.identify_cycle() or Pike.count_memory().
o Protocols.HTTP.Server
Fix an issue with accounting of sent bytes that caused responses to requests over HTTPS to not finish on success, but instead the whole connection to time out. Data for the first request was usually fully written, but the connection neither was properly closed nor re-used.
o Protocols.WebSocket
Added low_connect() and low_websocket_accept().
These make it easier to test the error handling in the module, and to replace the HTTP-layer.
Improved compliance with RFC 6455 section 4.1.
o The nonce is now actually random.
o The http version, method and headers are validated. o Header case-sensitivity issues have been fixed.
The module now has a testsuite.
Improved HTTP-header camel-case consistency.
o Sass
Errors thrown by handle_sass_import() can now be caught and handled by the caller of compile_file() and compile_string().
Added the option "sass_syntax".
This option will parse the input as having indented Sass syntax. This option only has effect in compile_string().
Added method sass2scss() to convert Sass syntax to SCSS syntax.
o Sql.pgsql
Fix regression bug since rel 12 that hangs queries returning over 1024 records.
Fix all rare-deadlock-causes logged in the last two years.
o Stdio.Buffer
Eliminate race condition in read_cstring().
o Stdio.UDP
Fixed wait() failing with ENOTSOCK on NT.
o Thread.Farm
Fixed lost error in provide_error() exception handling.
Avoid delayed deallocation of jobs by clearing references immediately after execution.
o Tools.Standalone
extract_autodoc: Terminate on failure.
Reenable termination on extraction failure.
Building & Tools
o Java
- The location of libjvm is now detected on Ubuntu 18.04.
- Detect and support OpenJDK 10.
o Postgres
Support Postgresql 10 and later.
o Sass
Improved detection of C++ runtime library on MacOS X.
MVH,
Peter Bortas
pike-devel@lists.lysator.liu.se