diff options
author | agc <agc@pkgsrc.org> | 2019-03-20 18:29:20 +0000 |
---|---|---|
committer | agc <agc@pkgsrc.org> | 2019-03-20 18:29:20 +0000 |
commit | 2621c527e91405bcd24f480a3e79247621a42c14 (patch) | |
tree | c05b81d338271a3f990258d5af0a231e9aab8e07 /lang | |
parent | 51b3dd8b47fee29efc1c123775663406eb401b96 (diff) | |
download | pkgsrc-2621c527e91405bcd24f480a3e79247621a42c14.tar.gz |
Update duktape and libduktape to 2.3.0
Changes since previous version (2.2.0):
pkgsrc: use the included Makefile.cmdline to build duktape, rather
than custom command in pkgsrc Makefile. Don't assume ${CC} is gcc
while doing so
XXX - it looks like the ABI has changed (silently) from 2.2.0 without
a corresponding libtool version bump from upstream. caveat buildor
2.3.0 (2018-08-04)
+ When C++ exception support is enabled use a separate
duk_fatal_exception (inherits from std::runtime_error) to propagate
fatal errors (uncaught errors, assertions) out of Duktape when using
the default fatal error handler (GH-1915)
+ Update UnicodeData.txt and SpecialCasing.txt used for building
internal Unicode control data to Unicode version 10.0.0 (GH-1851)
+ Add support for Symbol.hasInstance (@@hasInstance) check for
'instanceof' operator and duk_instanceof() API call; also add
Symbol.hasInstance and Function.prototype[@@hasInstance] (GH-1821)
+ Add support for Symbol.toStringTag (@@toStringTag) in
Object.prototype.toString() (GH-1822)
+ Add support for Symbol.isConcatSpreadable (@@isConcatSpreadable) in
Array.prototype.concat() (GH-1823)
+ Add support for Symbol.toPrimitive (@@toPrimitive) in ToPrimitive()
internal algorithm and duk_to_primitive() API call (GH-1825)
+ Invoke Proxy 'has' trap in Array.prototype.concat() when inspecting
the elements of the Proxy target (GH-1823)
+ Remove DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER because the underlying
ES5.1 specification "bug" was fixed in ES2015 (GH-1823)
+ Remove DUK_USE_NONSTD_ARRAY_MAP_TRAILER because ES5.0/ES5.1 behavior
actually did match the "non-standard" behavior provided by the option
(GH-1823)
+ Add duk_random() to allow C code access to the same random number
source as ECMAScript code (GH-1815)
+ Add duk_push_new_target() to allow C code to access new.target; at
present this is for completeness because without actual class support
it's only useful to detect constructor calls which can already be done
using duk_is_constructor_call() (GH-1745)
+ Add experimental API call variants for plain C literals, for example
duk_push_literal(ctx, "key") and duk_get_prop_literal(ctx,
"propname"), which allow e.g. better performance; calls added:
duk_push_literal(), duk_get_prop_literal(), duk_put_prop_literal(),
duk_has_prop_literal(), duk_del_prop_literal(),
duk_get_global_literal(), duk_put_global_literal() (GH-1805)
+ Add duk_get_global_heapptr() and duk_put_global_heapptr() for
completeness (GH-1805)
+ Automatically pin strings accessed using the C literal API call
variants such as duk_get_prop_literal(ctx, "propname") between
mark-and-sweep rounds to facilitate literal caching and to reduce
string table traffic; this behavior can be disabled by disabling
DUK_USE_LITCACHE_SIZE in configure.py (GH-1813)
+ Add a lookup cache for C literals to speed up string table lookups
when using API call variants such as duk_get_prop_literal(ctx,
"propname"); the cache relies on literals being pinned between
mark-and-sweep rounds, and can be disabled by disabling
DUK_USE_LITCACHE_SIZE in configure.py (GH-1813)
+ ES2015 Number constructor properties: EPSILON, MIN_SAFE_INTEGER,
MAX_SAFE_INTEGER, isFinite(), isInteger(), isNaN(), isSafeInteger(),
parseInt(), parseFloat() (GH-1756, GH-1761)
+ Assume only natural alignment (DUK_USE_ALIGN_BY=8) on all platforms
to minimize compiler assumptions regarding unaligned accesses (which
can be an issue even on x86); applications working with a low memory
target may want to force DUK_USE_ALIGN_BY in configuration (GH-1783,
GH-1784)
+ Base64 decoder is now more lenient for padding: accepts missing
padding ('Zm'), partial padding ('Zm='), standard padding ('Zm=='),
and extra padding ('Zm===' etc), also for concatenated documents
('Zm===Zm' decodes to 'ff' for example) (GH-1789)
+ Base64 encoder and decoder performance improvements for both fast
path and slow path variants (GH-1789)
+ Make base64 support optional and drop it from lowmem base
configuration; define DUK_USE_BASE64_SUPPORT to enable it (GH-1789)
+ Make hex support optional and drop it from lowmem base
configuration; define DUK_USE_BASE64_SUPPORT to enable it (GH-1789)
+ Add C++ name mangling wrappers (extern "C") for extras (GH-1780,
GH-1782)
+ Add a duk_uint64_t to duk_hbuffer_fixed forced alignment union trick
just in case double and uint64_t alignment requirements differ
(GH-1799)
+ Add a CBOR encoder/decoder as an extra (GH-1781, GH-1800, GH-1801)
+ Add a minimal ES2015 Promise polyfill into the distribution
(GH-1865)
+ Include <exception> only when compiling as C++ with C++ exception
support enabled (GH-1838, GH-1839)
+ Allow undefined timeout in eventloop example setTimeout() and
setInterval() bindings, minor cleanups and improvements (GH-1866,
GH-1879, GH-1884)
+ Revise Number.prototype.toFixed() 'this' binding and fractionDigits
argument validation order to match ES2015 where the 'this' binding is
validated first (GH-1887)
+ Add Makefile.jsoncbor to the distributable (GH-1885)
+ Makefile.sharedlibrary portability improvements (GH-1922, GH-1923)
+ Change spelling from ECMAScript to ECMAScript throughout the
internal source code; as far as external behavior is concerned this
only affects a few debug prints (GH-1894)
+ Fix NULL pointer dereference in error augmentation when
DUK_USE_TRACEBACKS was disabled (GH-1909)
+ Fix potential dangling pointer use in Duktape thread termination
handling; the dangling pointer could cause unsafe memory behavior
(GH-1845, GH-1868)
+ Fix performance.now() property attributes to 'wec' (earlier 'wc')
(GH-1821)
+ Fix debugger StepOver behavior when a tailcall happens in a nested
function (not the function where stepping started from) (GH-1786,
GH-1787)
+ Fix trailing single line comment handling for Function constructor;
new Function('return "foo" //') previously failed with SyntaxError
(GH-1757)
+ Fix some lexer bugs related to parsing in RegExp mode (interpret
leading '/' as part of a RegExp) or not (interpret '/' as division)
(GH-1779)
+ Fix DUK_BOOL_{MIN,MAX} defines for unsigned duk_bool_t (GH-1769)
+ Fix 'defined but not used' warning for Windows (GH-1775)
+ Fix potential uninitialized data use when Windows Date provider
FileTimeToSystemTime() or FileTimeToLocalFileTime() failed (GH-1953)
+ Fix some Clang warnings by avoiding undefined behavior by default,
define DUK_USE_ALLOW_UNDEFINED_BEHAVIOR to reduce the explicit
undefined behavior checks for better footprint/performance (GH-1777,
GH-1795, GH-1796, GH-1797, GH-1798)
+ Fix some compilation warnings triggered when DUK_NORETURN is not
defined; the internal DUK_WO_NORETURN() is used to include unreachable
dummy statements when the noreturn attribute is not available, e.g.
DUK_WO_NORETURN(return 0;); (GH-1790)
+ Fix a few casts in duk_trans_socket_windows.c to avoid errors in a
C++ build (GH-1773)
+ Fix harmless -Wcast-align warnings on armhf (GH-1793)
+ Various compiler warning fixes (GH-1788, GH-1932, GH-1924, GH-1950,
GH-1951, etc)
+ Add automatic workaround for union aliasing issues with FreeBSD +
-m32 + Clang prior to 5.0; the aliasing issues cause packed duk_tval
to work incorrectly (see
https://github.com/svaarala/duktape/blob/master/misc/clang_aliasing.c),
and the workaround is to use unpacked duk_tval prior to Clang 5.0
(GH-1764)
2.2.1 (2018-04-26)
+ Fix trailing single line comment handling for Function constructor;
new Function('return "foo" //') previously failed with SyntaxError
(GH-1757)
+ Fix DUK_BOOL_{MIN,MAX} defines for unsigned duk_bool_t (GH-1769)
+ Fix debugger StepOver behavior when a tailcall happens in a nested
function (not the function where stepping started from) (GH-1786,
GH-1787)
+ Fix potential dangling pointer use in Duktape thread termination
handling; the dangling pointer could cause unsafe memory behavior
(GH-1845, GH-1868)
Diffstat (limited to 'lang')
-rw-r--r-- | lang/duktape/Makefile | 10 | ||||
-rw-r--r-- | lang/duktape/distinfo | 11 | ||||
-rw-r--r-- | lang/duktape/patches/patch-Makefile.cmdline | 15 | ||||
-rw-r--r-- | lang/libduktape/Makefile | 4 | ||||
-rw-r--r-- | lang/libduktape/distinfo | 10 |
5 files changed, 32 insertions, 18 deletions
diff --git a/lang/duktape/Makefile b/lang/duktape/Makefile index 6084c86034b..6f416bf40dc 100644 --- a/lang/duktape/Makefile +++ b/lang/duktape/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.2 2017/10/29 22:26:56 leot Exp $ +# $NetBSD: Makefile,v 1.3 2019/03/20 18:29:20 agc Exp $ -DISTNAME= duktape-2.2.0 +DISTNAME= duktape-2.3.0 CATEGORIES= devel MASTER_SITES= http://duktape.org/ EXTRACT_SUFX= .tar.xz @@ -10,10 +10,8 @@ HOMEPAGE= http://duktape.org/ COMMENT= Embeddable Javascript engine LICENSE= mit -do-build: - (cd ${WRKSRC} && \ - ${CC} ${CFLAGS} examples/cmdline/duk_cmdline.c \ - -Wl,-R${PREFIX}/lib -L${PREFIX}/lib -lduktape -lm -o duk) +MAKE_FILE= Makefile.cmdline +BUILD_TARGET= duk do-install: mkdir -p ${DESTDIR}${PREFIX}/bin diff --git a/lang/duktape/distinfo b/lang/duktape/distinfo index 785dd64a0be..3935526478a 100644 --- a/lang/duktape/distinfo +++ b/lang/duktape/distinfo @@ -1,6 +1,7 @@ -$NetBSD: distinfo,v 1.2 2017/10/29 22:26:56 leot Exp $ +$NetBSD: distinfo,v 1.3 2019/03/20 18:29:20 agc Exp $ -SHA1 (duktape-2.2.0.tar.xz) = 059d8f6ce4537bfca5689da693225802bb482706 -RMD160 (duktape-2.2.0.tar.xz) = cd341d62ed4f2ec3a1969426dec8ef82ede47925 -SHA512 (duktape-2.2.0.tar.xz) = 6fe67660ad4cfbab37b9048840bd8c42ee9585441c17253e1f17cb06e4527d1413851bc167d8b013990d5cae9f8e6eb4cb6ff80866f55bd8d67b0cf47580be7c -Size (duktape-2.2.0.tar.xz) = 969136 bytes +SHA1 (duktape-2.3.0.tar.xz) = 1d0edbb757b16f85bcf916b66c605103f736b4ff +RMD160 (duktape-2.3.0.tar.xz) = 3e90960d43a93909aadacd6cfc5ae642f057f483 +SHA512 (duktape-2.3.0.tar.xz) = ec6b88549948c7f68f0ae8e54b16240c148fcc0d976fc7004b9d29c67652abbc659429ecb102c6e386809463ed99e5c76d636ec6ec632af4abca46d4cb03e834 +Size (duktape-2.3.0.tar.xz) = 997572 bytes +SHA1 (patch-Makefile.cmdline) = 8e19c38b6da425c3fcff644987c0ab6c92b4b1d2 diff --git a/lang/duktape/patches/patch-Makefile.cmdline b/lang/duktape/patches/patch-Makefile.cmdline new file mode 100644 index 00000000000..9986a4200f5 --- /dev/null +++ b/lang/duktape/patches/patch-Makefile.cmdline @@ -0,0 +1,15 @@ +$NetBSD: patch-Makefile.cmdline,v 1.1 2019/03/20 18:29:20 agc Exp $ + +Don't assume we have gcc + +--- Makefile.cmdline 2019/03/20 18:08:52 1.1 ++++ Makefile.cmdline 2019/03/20 18:13:12 +@@ -8,7 +8,7 @@ + CMDLINE_SOURCES = \ + examples/cmdline/duk_cmdline.c + +-CC = gcc ++#CC = gcc + CCOPTS = -Os -pedantic -std=c99 -Wall -fstrict-aliasing -fomit-frame-pointer + CCOPTS += -I./examples/cmdline -I./src # duktape.h and duk_config.h must be in include path + CCLIBS = -lm diff --git a/lang/libduktape/Makefile b/lang/libduktape/Makefile index 58aaf4f826c..8c13af46874 100644 --- a/lang/libduktape/Makefile +++ b/lang/libduktape/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.2 2017/10/29 22:24:45 leot Exp $ +# $NetBSD: Makefile,v 1.3 2019/03/20 18:29:20 agc Exp $ -DISTNAME= duktape-2.2.0 +DISTNAME= duktape-2.3.0 PKGNAME= lib${DISTNAME} CATEGORIES= devel MASTER_SITES= http://duktape.org/ diff --git a/lang/libduktape/distinfo b/lang/libduktape/distinfo index 81428d8d91d..41e71eddc96 100644 --- a/lang/libduktape/distinfo +++ b/lang/libduktape/distinfo @@ -1,6 +1,6 @@ -$NetBSD: distinfo,v 1.2 2017/10/29 22:24:45 leot Exp $ +$NetBSD: distinfo,v 1.3 2019/03/20 18:29:20 agc Exp $ -SHA1 (duktape-2.2.0.tar.xz) = 059d8f6ce4537bfca5689da693225802bb482706 -RMD160 (duktape-2.2.0.tar.xz) = cd341d62ed4f2ec3a1969426dec8ef82ede47925 -SHA512 (duktape-2.2.0.tar.xz) = 6fe67660ad4cfbab37b9048840bd8c42ee9585441c17253e1f17cb06e4527d1413851bc167d8b013990d5cae9f8e6eb4cb6ff80866f55bd8d67b0cf47580be7c -Size (duktape-2.2.0.tar.xz) = 969136 bytes +SHA1 (duktape-2.3.0.tar.xz) = 1d0edbb757b16f85bcf916b66c605103f736b4ff +RMD160 (duktape-2.3.0.tar.xz) = 3e90960d43a93909aadacd6cfc5ae642f057f483 +SHA512 (duktape-2.3.0.tar.xz) = ec6b88549948c7f68f0ae8e54b16240c148fcc0d976fc7004b9d29c67652abbc659429ecb102c6e386809463ed99e5c76d636ec6ec632af4abca46d4cb03e834 +Size (duktape-2.3.0.tar.xz) = 997572 bytes |