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).