Sun Oct 29 22:24:45 2017 UTC ()
libduktape: Update lang/libduktape to 2.1

Reviewed and thanks to <agc>!

Changes:
=========================
Duktape 2.1 release notes
=========================
Release overview
================
Main changes in this release (see RELEASES.rst for full details):

* Performance, footprint, and portability improvements.
* API additions for more convenient handling of optional arguments:
  duk_opt_xxx() and duk_get_xxx_default().
* Allow duk_push_heapptr() for objects which have become unreachable and
  are pending finalization.  In such a case a duk_push_heapptr() cancels
  the pending finalizer call and automatically rescues the object.
* ES2015 additions like String.prototype.{startsWith,endsWith,includes}()
  and HTML comment syntax.  Non-standard shebang ("#!...") comment support.
* Finalizer handling rework for reference counting and mark-and-sweep to fix
  a few "side effect" bugs.  Also improved torture test coverage for ensuring
  side effects are handled correctly in Duktape internals.
* DUK_VERSION is now visible to duk_config.h so it's possible for duk_config.h
  to support multiple Duktape versions.  For example, some config options may be
  disabled prior to a certain patch level.

Upgrading from Duktape 2.0
==========================
No action (other than recompiling) should be needed for most users to upgrade
from Duktape v2.0.x.  Note the following:

* The Duktape thread used for finalizer calls is now always the initial thread
  (heap_thread), for both reference counting and mark-and-sweep triggered
  finalization.  This should be taken into account in finalizer functions;
  in particular, if there are multiple global environments, finalizers will
  execute in the first global environment created for the heap.
  Prior to 2.1 the finalizer thread could also be heap_thread but usually the
  current thread would be used.

=========================
Duktape 2.0 release notes
=========================
Release overview
================
Main changes in this release (see RELEASES.rst for full details):
* New tools/configure.py frontend tool replaces genconfig.py for configuring
  and preparing Duktape sources for build.
* Buffer handling has been simplified: Duktape.Buffer has been removed and is
  replaced by Uint8Array, plain buffers now behave like Uint8Array objects.
  Node.js Buffer behavior aligned with more recent Node.js Buffer API.
* Implement more ES2015 and ES2016 functionality, and align some ES5.1
  semantics with ES2015/ES2016.  Implement WHATWG Encoding API with
  TextEncoder() and TextDecoder() bindings.
* Some incompatible API changes, and several API additions.  API and config
  changes to avoid I/O dependencies (such as printf() and fopen()) in core
  Duktape code to simplify porting.
* More configuration flexibility in dropping Duktape specific functionality
  from build, e.g. coroutines and finalization.
* Disabled Ecmascript bindings are no longer present (instead of being present
  but throwing a TypeError).
* Built-in functionality moved to optional extras: print/alert bindings,
  logging, and module loader.  New optional extras include a Node.js-like
  module loader and a 'console' binding.
* Bug fixes, performance and footprint improvements.

The release has API incompatible changes, see upgrading notes below.

Upgrading from Duktape 1.x
==========================
There are API incompatible changes in this release.  Whenever possible the
incompatible changes cause a compilation error (or warning) so that fixing
call sites should be straightforward.  Below are instructions on how to
migrate from 1.x to 2.0.0.  There are also bug fixes and other minor
behavioral changes which may affect some applications, see ``RELEASES.rst``
for details.

There are backwards compatible providers for some removed/modified API calls
in ``extras/duk-v1-compat``.

Known issues
============
* Some non-compliant behavior for array indices near 2G or 4G elements.
* RegExp parser is strict and won't accept some real world RegExps which
  are technically not compliant with Ecmascript E5/E5.1 specification
  but allowed in ES2015 Annex B.
* Final mantissa bit rounding issues in the internal number-to-string
  conversion.

=========================
Duktape 1.6 release notes
=========================
Release overview
================
Main changes in this release (see RELEASES.rst for full details):

* Add duk_suspend() and duk_resume() API calls, backported from Duktape 2.0.

Upgrading from Duktape 1.5.x
============================
No action (other than recompiling) should be needed for most users to upgrade
from Duktape v1.5.x.

Known issues
============
This release has the following known issues worth noting:
* Non-compliant behavior for array indices near 2G or 4G elements.
* RegExp parser is strict and won't accept some real world RegExps which
  are technically not compliant with Ecmascript E5/E5.1 specification.
* Final mantissa bit rounding issues in the internal number-to-string
  conversion.
* On FreeBSD 10.x (at least 10.1 and 10.2): Clang with ``-m32`` generates
  incorrect code for union assignments needed by Duktape's 8-byte packed
  value encoding (see
  https://github.com/svaarala/duktape/blob/master/misc/clang_aliasing.c).
  The issue can be detected by defining ``DUK_OPT_SELF_TESTS``.  A workaround
  is to avoid packed types in this case by defining ``DUK_OPT_NO_PACKED_TVAL``.


(leot)
diff -r1.1 -r1.2 pkgsrc/lang/libduktape/Makefile
diff -r1.1 -r1.2 pkgsrc/lang/libduktape/distinfo

cvs diff -r1.1 -r1.2 pkgsrc/lang/libduktape/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/libduktape/Makefile 2016/05/05 03:57:26 1.1
+++ pkgsrc/lang/libduktape/Makefile 2017/10/29 22:24:45 1.2
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1# $NetBSD: Makefile,v 1.1 2016/05/05 03:57:26 agc Exp $ 1# $NetBSD: Makefile,v 1.2 2017/10/29 22:24:45 leot Exp $
2 2
3DISTNAME= duktape-1.5.0 3DISTNAME= duktape-2.2.0
4PKGNAME= lib${DISTNAME} 4PKGNAME= lib${DISTNAME}
5CATEGORIES= devel 5CATEGORIES= devel
6MASTER_SITES= http://duktape.org/ 6MASTER_SITES= http://duktape.org/
7EXTRACT_SUFX= .tar.xz 7EXTRACT_SUFX= .tar.xz
8 8
9MAINTAINER= pkgsrc-users@NetBSD.org 9MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= http://duktape.org/ 10HOMEPAGE= http://duktape.org/
11COMMENT= Embeddable Javascript engine library 11COMMENT= Embeddable Javascript engine library
12LICENSE= mit 12LICENSE= mit
13 13
14WRKSRC= ${WRKDIR}/${DISTNAME}/src 14WRKSRC= ${WRKDIR}/${DISTNAME}/src
15USE_LIBTOOL= yes 15USE_LIBTOOL= yes
16 16

cvs diff -r1.1 -r1.2 pkgsrc/lang/libduktape/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/libduktape/distinfo 2016/05/05 03:57:26 1.1
+++ pkgsrc/lang/libduktape/distinfo 2017/10/29 22:24:45 1.2
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
1$NetBSD: distinfo,v 1.1 2016/05/05 03:57:26 agc Exp $ 1$NetBSD: distinfo,v 1.2 2017/10/29 22:24:45 leot Exp $
2 2
3SHA1 (duktape-1.5.0.tar.xz) = 6c53eff86e498c9a81181dfaf72034d616a35cba 3SHA1 (duktape-2.2.0.tar.xz) = 059d8f6ce4537bfca5689da693225802bb482706
4RMD160 (duktape-1.5.0.tar.xz) = c4af4b76978e03fe621886601b65d9fbad240b19 4RMD160 (duktape-2.2.0.tar.xz) = cd341d62ed4f2ec3a1969426dec8ef82ede47925
5SHA512 (duktape-1.5.0.tar.xz) = f9b1500980e75700296d054d91edcd6a86d5ee20d63a7c246c66af7d5f5f097191cf59c4175214138345154afb6e3f5bb338a549ac3fbadeba858d8beb610093 5SHA512 (duktape-2.2.0.tar.xz) = 6fe67660ad4cfbab37b9048840bd8c42ee9585441c17253e1f17cb06e4527d1413851bc167d8b013990d5cae9f8e6eb4cb6ff80866f55bd8d67b0cf47580be7c
6Size (duktape-1.5.0.tar.xz) = 708528 bytes 6Size (duktape-2.2.0.tar.xz) = 969136 bytes