Pike 8.0.438 Release notes
Changes since Pike 8.0.404 (release 8)
New Features
Calendar
Updated Calendar to use timezonedata from tzdata2017a.
GL & GLUT
Prefer Quartz implementation on systems that have it (OS X).
GTK2
Add -x objective-c for Darwin.
Support linking against other implementations than X11.
Protocols.HTTP
Connecting to HTTP proxies over HTTPS is now supported.
Web.decode_jwk()
Support decoding of symmetric (ie HMAC) keys.
Web.encode_jws() and Web.decode_jws()
Added simplified API for dealing with JSON Web Signature values.
Bug fixes
Runtime
Variant dispatcher
Improved string range checking.
Fixes mismatches due to te lazy string range (ed string(8bit)) exceeding the typed string range (eg string(7bit)) for narrow strings.
mkpackage
Support multiple sub-packages with the same name.
Gnu-tar doesn’t like being asked to extract the same file multiple times from the same tar-file. It claims that the second file doesn’t exist in the archive.
This can happen when a sub-package has been replaced with a fixed version.
smartlink
Don’t override MACOS_DEPLOYMENT_TARGET if it’s been specified.
This should prevent “compiled against version x but linking against version y” warnings.
Arg & ADT.Struct
Survive use by old (ie 8.0.232) pike binaries.
Roxen 6.0.130 uses a Pike 8.0.232 binary with current modules.
Backend.PollDeviceBackend
Make set_signal_event_callback() optional.
This fixes the warning “An expression of type function({ Backend = object(implements _static_modules.Builtin()->defaultBackendClass) } : void) cannot be assigned to a variable of type function({ Backend = object(implements _static_modules.Builtin()->Backend) } : void).”.
bool
Make sure that 0 is part of the range for the bool type.
Charset
Fixed encoding errors for two characters in the GSM-03.38 charset.
Debug
Fixed typo in mask in check_callback_chain().
Fixes infinite loop in circularity detection.
Gdbm
Support building with gdbc 1.13.
Fixes obscure compilation error when building with gdbm 1.13 due to a symbol clash with the symbol “fatal” used as an argument in the macro definition of gdbm_set_errno().
Mapping
Removed extraneous and conflicting prototype.
Fixes linking issues on NT.
Protocols.HTTP
Fixed do_async_proxied_method() losing the timeout during TLS negotiation.
Now fails immediately if Query is unable to open a socket, instead of waiting 120 seconds for a time out.
Allow connection reuse also when the server is a hostname.
Thread.Mutex
- Perform a thread yield on mutex onlock in an attempt to reduce thread starvation.
Sql.pgsql
- Added an extra synchronisation condition, and increased parallelisation to resolve all detected race conditions (which in rare circumstances (many parallel queries on a single filedescriptor) could have resulted in a deadlock).