Skip to content

Commit

Permalink
Merge pull request #1954 from svaarala/v2.3.0-release-prep
Browse files Browse the repository at this point in the history
Release preparations for 2.3.0 release
  • Loading branch information
svaarala authored Aug 4, 2018
2 parents 2aecfba + 4157e1d commit d7fdb67
Show file tree
Hide file tree
Showing 12 changed files with 59 additions and 29 deletions.
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Duktape license

(http://opensource.org/licenses/MIT)

Copyright (c) 2013-2017 by Duktape authors (see AUTHORS.rst)
Copyright (c) 2013-2018 by Duktape authors (see AUTHORS.rst)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
19 changes: 12 additions & 7 deletions RELEASES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3227,10 +3227,7 @@ Miscellaneous:
* Fix potential dangling pointer use in Duktape thread termination handling;
the dangling pointer could cause unsafe memory behavior (GH-1845, GH-1868)

Planned
=======

2.3.0 (XXXX-XX-XX)
2.3.0 (2018-08-04)
------------------

* When C++ exception support is enabled use a separate duk_fatal_exception
Expand All @@ -3251,6 +3248,9 @@ Planned
* 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)

Expand All @@ -3261,9 +3261,6 @@ Planned
actually did match the "non-standard" behavior provided by the option
(GH-1823)

* Add support for Symbol.toPrimitive (@@toPrimitive) in ToPrimitive()
internal algorithm and duk_to_primitive() API call (GH-1825)

* Add duk_random() to allow C code access to the same random number source
as ECMAScript code (GH-1815)

Expand Down Expand Up @@ -3338,6 +3335,8 @@ Planned

* 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)
Expand Down Expand Up @@ -3391,6 +3390,12 @@ Planned
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)

Planned
=======

2.4.0 (XXXX-XX-XX)
------------------

3.0.0 (XXXX-XX-XX)
------------------

Expand Down
2 changes: 2 additions & 0 deletions debugger/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ Install DukLuv:

* ``git clone https://github.com/creationix/dukluv.git``

* ``cd dukluv``

* ``git submodule init; git submodule update``

* ``make``
Expand Down
2 changes: 1 addition & 1 deletion dist-files/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ You can find release notes at:
* https://github.com/svaarala/duktape/blob/master/RELEASES.rst
(summary of all versions)

* https://github.com/svaarala/duktape/blob/master/doc/release-notes-v2-2.rst
* https://github.com/svaarala/duktape/blob/master/doc/release-notes-v@DUK_MAJOR@-@DUK_MINOR@.rst
(more detailed notes for this version)

This distributable contains Duktape version @DUK_VERSION_FORMATTED@, created from git
Expand Down
19 changes: 11 additions & 8 deletions doc/release-checklist.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ Checklist for ordinary releases

* Git maintenance

- ensure git commits are up-to-date
- Ensure git commits are up-to-date

- ensure branches are merged, unused branches deleted (also remotely)
- Ensure branches are merged, unused branches deleted (also remotely)

- ensure branches are rebased where applicable
- Ensure branches are rebased where applicable

- Check for uncommitted files

- git fsck --full

Expand All @@ -37,8 +39,6 @@ Checklist for ordinary releases

* Check dist-files/README.rst

- Update release specific release notes link

* Ensure LICENSE.txt is up-to-date

- Check year range
Expand Down Expand Up @@ -109,15 +109,18 @@ Checklist for ordinary releases
- Run::

$ make duk-sanitize-clang
$ for i in tests/ecmascript/test-*.js; do python util/runtest.py --duk ./duk-sanitize-clang --timeout 30 $i; done
$ for i in tests/ecmascript/test-*.js; do python util/runtest.py --duk ./duk-sanitize-clang --timeout 60 $i; done

* ECMAScript testcases

- On x86-64 (exercise 16-byte duk_tval):

- make ecmatest

- VALGRIND_WRAP=1 make ecmatest # valgrind test
- Run testcases with util/runtest.py with --valgrind option::

$ make duk
$ for i in tests/ecmascript/test-*.js; do python util/runtest.py --duk ./duk --valgrind --timeout 60 $i; done

- On x86-32 (exercise 8-byte duk_tval)

Expand All @@ -127,7 +130,7 @@ Checklist for ordinary releases

- Run with assertions enabled at least on x86-64

* Run testcases with torture options
* Run testcases with torture options, DUK_USE_ASSERTIONS and:

- DUK_USE_GC_TORTURE

Expand Down
35 changes: 27 additions & 8 deletions doc/release-notes-v2-3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,6 @@ Release overview

Main changes in this release (see RELEASES.rst for full details):

* TBD.

* DUK_USE_ALIGN_BY now always defaults to 8 (natural alignment) to avoid any
potentially unsafe assumptions about compiler behavior for unaligned memory
accesses and pointers (which may be an issue even on x86).

* duk_xxx_literal() API call variants which take a plain C literal argument,
for example duk_get_prop_literal(ctx, -2, "myProperty"). The calls are
conceptually similar to the duk_xxx_string() variants, but can take advantage
Expand All @@ -23,19 +17,39 @@ Main changes in this release (see RELEASES.rst for full details):
literal to a heap string object quite fast (almost as fast as using a heapptr).
For now the calls are experimental.

* More ES2015 support: Symbol.hasInstance, Symbol.toStringTag,
Symbol.isConcatSpreadable, Symbol.toPrimitive, Proxy improvements,
Number.EPSILON, Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER,
Number.isFinite(), Number.isNaN(), Number.isSafeInteger(),
Number.parseInt(), Number.parseFloat().

* Other API additions: duk_random(), duk_push_new_target(),
duk_get_global_heapptr(), duk_put_global_heapptr().

* When C++ exception support is enabled (DUK_USE_CPP_EXCEPTIONS), Duktape now
uses a C++ exception throw also for fatal errors (e.g. uncaught error). The
exception thrown has the type ``duk_fatal_exception`` which inherits from
``std::runtime_error`` so it has a ::what() method and a useful message.

* DUK_USE_ALIGN_BY now always defaults to 8 (natural alignment) to avoid any
potentially unsafe assumptions about compiler behavior for unaligned memory
accesses and pointers (which may be an issue even on x86).

* A new CBOR encoder/decoder extra which may be eventually merged (in some
form) into Duktape itself. CBOR is a useful binary serialization format
which is a superset of JSON and has an RFC specification.

* A Promise polyfill which will be used as a basis for the initial native
implementation.

* Various fixes and portability improvements.

Upgrading from Duktape 2.2
==========================

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

* TBD.

* If you are using DUK_USE_CPP_EXCEPTIONS note that fatal errors are now
thrown using a C++ exception of the type ``duk_fatal_exception`` which
inherits from ``std::runtime_error`` and will be caught by a boilerplate
Expand Down Expand Up @@ -77,6 +91,11 @@ from Duktape v2.2.x. Note the following:
by default in the example low_memory.yaml configuration. Enable them
manually if necessary using DUK_USE_BASE64_SUPPORT and DUK_USE_HEX_SUPPORT.

* The built-in base64 decoder is now more lenient. If you're relying on
strictness or specific behavior of the base64 decoder, you should use an
external decoder with the exact behavior desired (base64 decoders differ
quite a lot with respect to various decoding corner cases).

* Several -fsanitize=undefined warnings have been fixed in the default
configuration using explicit checks to avoid undefined behavior. For
example, floating point division by zero is avoided and behavior in that
Expand Down
2 changes: 1 addition & 1 deletion src-input/duktape.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
* development snapshots have 99 for patch level (e.g. 0.10.99 would be a
* development version after 0.10.0 but before the next official release).
*/
#define DUK_VERSION 20299L
#define DUK_VERSION 20300L

/* Git commit, describe, and branch for Duktape build. Useful for
* non-official snapshot builds so that application code can easily log
Expand Down
1 change: 1 addition & 0 deletions tests/api/test-all-public-symbols.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ static duk_ret_t test_func(duk_context *ctx, void *udata) {
(void) duk_push_literal(ctx, "dummy");
(void) duk_push_lstring(ctx, "dummy", 0);
(void) duk_push_nan(ctx);
(void) duk_push_new_target(ctx);
(void) duk_push_null(ctx);
(void) duk_push_number(ctx, 0.0);
(void) duk_push_object(ctx);
Expand Down
3 changes: 3 additions & 0 deletions util/dist.py
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,9 @@ def main():

copy_and_replace(os.path.join('dist-files', 'README.rst'), os.path.join(dist, 'README.rst'), {
'@DUK_VERSION_FORMATTED@': duk_version_formatted,
'@DUK_MAJOR@': str(duk_major),
'@DUK_MINOR@': str(duk_minor),
'@DUK_PATCH@': str(duk_patch),
'@GIT_COMMIT@': git_commit,
'@GIT_DESCRIBE@': git_describe,
'@GIT_BRANCH@': git_branch
Expand Down
1 change: 0 additions & 1 deletion website/api/duk_components_to_time.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ example: |
tags:
- time
- experimental

seealso:
- duk_time_to_components
Expand Down
1 change: 0 additions & 1 deletion website/api/duk_get_now.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,5 @@ example: |
tags:
- time
- experimental

introduced: 2.0.0
1 change: 0 additions & 1 deletion website/api/duk_time_to_components.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ example: |
tags:
- time
- experimental

seealso:
- duk_components_to_time
Expand Down

0 comments on commit d7fdb67

Please sign in to comment.