★ wanayoo — archive 1999 https://github.com/nodejs/node/pull/19691Nouvelle recherche | Portail wanayoo
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

buffer: add {read|write}Big[U]Int64{BE|LE} methods #19691

Closed
wants to merge 12 commits into from

Conversation

@seishun
Copy link
Member

@seishun seishun commented Mar 30, 2018

This is a resurrection of #15152, this time with BigInts.

The functions writeBigU_Int64LE and writeBigU_Int64BE look so terrible because setting Uint8Array values to BigInt is disallowed by the spec. I submitted an issue about it in tc39/proposal-bigint#137. Please 👍 it or whatever if you agree.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines
doc/api/buffer.md Outdated Show resolved Hide resolved
if (first === undefined || last === undefined)
boundsError(offset, this.length - 8);

// TODO: do we need tricky math from readUInt48LE?
Copy link
Member

@bnoordhuis bnoordhuis Mar 30, 2018

You mean the (a + b * 256) * 2 ** 32 bit?

I expect it's faster to compute the high and low words as 32 bits quantities first, then convert them to bigints:

const lo = /* ... */;
const hi = /* ... */;
return BigInt(lo) + BigInt(hi) * 2n ** 32n;

I'm unsure if V8 currently constant-folds the 2n ** 32n so you might want to cache that.

Copy link
Member Author

@seishun seishun Mar 30, 2018

It's probably faster now, but I would prefer to put off any optimizations until V8 6.7 is out.

Copy link
Member

@targos targos Mar 30, 2018

Have you considered using A << Bn instead of A * 2n ** Bn (everywhere)?
It's shorter and IMO easier to read.

Copy link
Member

@devsnek devsnek Mar 30, 2018

it's also much more easily optimized :D

Copy link
Member Author

@seishun seishun Mar 30, 2018

I chose to use the same approach as in other read functions.

Copy link
Member Author

@seishun seishun Jun 3, 2018

Caching is indeed faster:

                                                                    confidence improvement accuracy (*)    (**)   (***)
 buffers\\buffer-read.js n=1000000 type='BigInt64BE' buffer='fast'         ***     36.14 %      ±4.71% ±6.26% ±8.15%
 buffers\\buffer-read.js n=1000000 type='BigInt64BE' buffer='slow'         ***     32.26 %      ±5.68% ±7.58% ±9.92%
 buffers\\buffer-read.js n=1000000 type='BigInt64LE' buffer='fast'         ***     37.72 %      ±4.18% ±5.58% ±7.29%
 buffers\\buffer-read.js n=1000000 type='BigInt64LE' buffer='slow'         ***     34.75 %      ±5.00% ±6.66% ±8.67%
 buffers\\buffer-read.js n=1000000 type='BigUInt64BE' buffer='fast'        ***     34.65 %      ±3.41% ±4.56% ±5.97%
 buffers\\buffer-read.js n=1000000 type='BigUInt64BE' buffer='slow'        ***     35.73 %      ±3.70% ±4.92% ±6.42%
 buffers\\buffer-read.js n=1000000 type='BigUInt64LE' buffer='fast'        ***     30.61 %      ±3.91% ±5.20% ±6.78%
 buffers\\buffer-read.js n=1000000 type='BigUInt64LE' buffer='slow'        ***     32.13 %      ±3.36% ±4.47% ±5.83%

But using bitwise shift instead of multiplication as @targos suggested is equally fast, and less ugly than a constant, so I went with that.

doc/api/buffer.md Outdated Show resolved Hide resolved
doc/api/buffer.md Outdated Show resolved Hide resolved
doc/api/buffer.md Outdated Show resolved Hide resolved
lib/internal/buffer.js Show resolved Hide resolved
test/parallel/test-buffer-bigint64.js Outdated Show resolved Hide resolved
-->

* `offset` {integer} Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
* Returns: {bigint}
Copy link
Contributor

@vsemozhetbyt vsemozhetbyt Mar 30, 2018

It seems MDN have not a BigInt doc yet, but maybe we can add a link to spec or proposal in customTypesMap for now?

Copy link
Member Author

@seishun seishun Mar 30, 2018

Let's put it off for now. Maybe it will be on MDN when it's time to land.

Copy link
Member Author

@seishun seishun Jun 3, 2018

Still not on MDN. What do others think about adding a link to the proposal?

Copy link
Member

@devsnek devsnek Jun 3, 2018

I would link to the proposal

Copy link
Contributor

@vsemozhetbyt vsemozhetbyt Jun 3, 2018

We already have a precedent:

'AsyncIterator': 'https://github.com/tc39/proposal-async-iteration',

Copy link
Member Author

@seishun seishun Jun 3, 2018

Good find.

Copy link
Member

@targos targos Apr 3, 2019

Copy link
Contributor

@vsemozhetbyt vsemozhetbyt Apr 5, 2019

Addressed in #27101

doc/api/buffer.md Outdated Show resolved Hide resolved
@TimothyGu
Copy link
Member

@TimothyGu TimothyGu commented Mar 30, 2018

Have you considered using something that already exists in the language, namely DataView#getBigInt64 and friends? The complicated logic in our functions makes it seem worthwhile. Maybe by doing so, we can finally encourage the V8 team to optimize DataView more 😜 Cf. #2897

@BridgeAR
Copy link
Member

@BridgeAR BridgeAR commented Apr 9, 2018

@TimothyGu I doubt that this is going to be as fast as doing this in JS but we could of course try.

@devsnek devsnek removed the blocked label Jun 3, 2018
@seishun seishun force-pushed the buffer64 branch 2 times, most recently from 1234f68 to 9a4e188 Jun 3, 2018
@seishun seishun changed the title [WIP] buffer: add {read|write}Big[U]Int64{BE|LE} methods buffer: add {read|write}Big[U]Int64{BE|LE} methods Jun 3, 2018
@seishun
Copy link
Member Author

@seishun seishun commented Jun 3, 2018

Comments addressed, PTAL.

@TimothyGu last time this was attempted (in the PR you linked) the results were disappointing, so I don't think it would be worthwhile to pursue this again.

@seishun
Copy link
Member Author

@seishun seishun commented Jun 3, 2018

Added a link to the spec. Hope it works, because I can't build docs on Windows.

@seishun
Copy link
Member Author

@seishun seishun commented Jun 3, 2018

@@ -4,6 +4,7 @@ const jsDocPrefix = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/';

const jsDataStructuresUrl = `${jsDocPrefix}Data_structures`;
const jsPrimitives = {
bigint: 'BigInt',
Copy link
Contributor

@vsemozhetbyt vsemozhetbyt Jun 3, 2018

Unfortunately, we cannot add this here, otherwise, the link would be wrong from this code path:

const primitive = jsPrimitives[typeText];
if (primitive !== undefined) {
typeUrl = `${jsDataStructuresUrl}#${primitive}_type`;

So let us just leave the second one for now.

tools/doc/type-parser.js Outdated Show resolved Hide resolved
@vsemozhetbyt
Copy link
Contributor

@vsemozhetbyt vsemozhetbyt commented Jun 3, 2018

@seishun

Hope it works, because I can't build docs on Windows.

It is possible, though tricky.

Building just one doc is simpler, but it will not be styled properly if not placed with assets (which is not needed for simple build test:

node.exe tools/doc/generate.js --format=html --node-version=11.0.0 --analytics= doc/api/buffer.md > buffer.html

for (var i = 0n; i !== n; i++) {
buff[fn](i & m, 0);
}
bench.end(Number(n));
Copy link
Member Author

@seishun seishun Jun 5, 2018

It's minor, but I had trouble choosing between the following options:

  1. n and i are Numbers, convert i to BigInt in the call (BigInt(i) & m).
  2. n is Number, i is BigInt, use != in the loop.
  3. n and i are BigInts, convert to Number before bench.end() call.

It's now using option 3, but I'm not sure it's the best.

Copy link
Member

@bnoordhuis bnoordhuis Jun 11, 2018

Seems fine to me. You could do const nn = Number(n) before bench.start() if you're worried about the coercion influencing the benchmark numbers.

Copy link
Member Author

@seishun seishun Jun 11, 2018

It's already converted to BigInt in main().

Copy link
Member

@bnoordhuis bnoordhuis Jun 11, 2018

I mean the coercion in bench.end(Number(n)).

@seishun
Copy link
Member Author

@seishun seishun commented Jun 9, 2018

@nodejs/buffer PTAL

I'm not sure how to fix the message: '''BigInt'' is not defined.' linter errors.

@devsnek
Copy link
Member

@devsnek devsnek commented Jun 9, 2018

@seishun add BigInt to the globals object in .eslintrc.js https://github.com/nodejs/node/blob/master/.eslintrc.js#L245

@seishun
Copy link
Member Author

@seishun seishun commented Jun 9, 2018

The remaining issue is lines 594 and 598. How do we usually deal with long function calls?

@vsemozhetbyt
Copy link
Contributor

@vsemozhetbyt vsemozhetbyt commented Jun 9, 2018

@seishun It seems something like this will do:

  return writeBigU_Int64LE(
    this, value, offset, -0x8000000000000000n, 0x7fffffffffffffffn);

@seishun
Copy link
Member Author

@seishun seishun commented Jun 9, 2018

@seishun
Copy link
Member Author

@seishun seishun commented Jun 11, 2018

Rebased on master now that #21237 has landed.

New CI: https://ci.nodejs.org/job/node-test-pull-request/15388/

Copy link
Member

@bnoordhuis bnoordhuis left a comment

LGTM with comments/suggestions.

for (var i = 0n; i !== n; i++) {
buff[fn](i & m, 0);
}
bench.end(Number(n));
Copy link
Member

@bnoordhuis bnoordhuis Jun 11, 2018

Seems fine to me. You could do const nn = Number(n) before bench.start() if you're worried about the coercion influencing the benchmark numbers.

doc/api/buffer.md Show resolved Hide resolved
lib/internal/buffer.js Outdated Show resolved Hide resolved
lib/internal/buffer.js Outdated Show resolved Hide resolved
lib/internal/buffer.js Show resolved Hide resolved
test/parallel/test-buffer-bigint64.js Outdated Show resolved Hide resolved
Copy link
Member

@TimothyGu TimothyGu left a comment

Some doc nits. Otherwise LGTM.

doc/api/buffer.md Outdated Show resolved Hide resolved
deermichel pushed a commit to electron/node that referenced this issue Jul 16, 2019
PR-URL: nodejs/node#19691
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
@BethGriggs
Copy link
Member

@BethGriggs BethGriggs commented Sep 3, 2019

I've added the backport-requested-v10.x label as this change doesn't land cleanly on v10.x. If you feel this change should land please open a backport PR (backporting guide)

GaryGSC added a commit to GaryGSC/node that referenced this issue Nov 11, 2019
Backport-PR-URL: nodejs#30361
PR-URL: nodejs#19691
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>

(cherry picked from commit 3d8532f)
BethGriggs pushed a commit that referenced this issue Feb 25, 2020
Backport-PR-URL: #30361
PR-URL: #19691
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
BethGriggs pushed a commit that referenced this issue Mar 10, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
  - upgrade npm to 6.13.7 (Michael Perrotte)
    [#31558](#31558)
- n-api:
 - add napi\_get\_all\_property\_names (himself65)
   [#30006](#30006)
 - add APIs for per-instance state management (Gabriel Schulhof)
   [#28682](#28682)
 - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
   [#26128](#26128)
- tls: support TLS min/max protocol defaults in CLI (Sam Roberts)
  [#27946](#27946)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Mar 12, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
  - upgrade npm to 6.13.7 (Michael Perrotte)
    [#31558](#31558)
- n-api:
 - add napi\_get\_all\_property\_names (himself65)
   [#30006](#30006)
 - add APIs for per-instance state management (Gabriel Schulhof)
   [#28682](#28682)
 - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
   [#26128](#26128)
- tls:
 - expose keylog event on TLSSocket (Alba Mendez)
   [#27654](#27654)
 - support TLS min/max protocol defaults in CLI (Sam Roberts)
   [#27946](#27946)

PR-URL: #31984
@BethGriggs BethGriggs mentioned this pull request Mar 12, 2020
BethGriggs pushed a commit that referenced this issue Mar 23, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
 - add napi\_get\_all\_property\_names (himself65)
   [#30006](#30006)
 - add APIs for per-instance state management (Gabriel Schulhof)
   [#28682](#28682)
 - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
   [#26128](#26128)
- tls:
 - expose keylog event on TLSSocket (Alba Mendez)
   [#27654](#27654)
 - support TLS min/max protocol defaults in CLI (Sam Roberts)
   [#27946](#27946)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Mar 23, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Mar 24, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Mar 25, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Mar 26, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 3, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 6, 2020
Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - define release 6
    [#32058](#32058)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 7, 2020
macOS package notarization and a change in builder configuration

The macOS binaries for this release, and future 10.x releases, are now
being compiled on macOS 10.15 (Catalina) with Xcode 11 to support
package notarization, a requirement for installing .pkg files on macOS
10.15 and later. Previous builds of Node.js 10.x were compiled on macOS
10.7 (Lion). As binaries are still being compiled to support a minimum
of macOS 10.7 (Lion) we do not anticipate this having a negative impact
on Node.js 10.x users with older versions of macOS.

Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - define release 6
    [#32058](#32058)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 7, 2020
macOS package notarization and a change in builder configuration

The macOS binaries for this release, and future 10.x releases, are now
being compiled on macOS 10.15 (Catalina) with Xcode 11 to support
package notarization, a requirement for installing .pkg files on macOS
10.15 and later. Previous builds of Node.js 10.x were compiled on macOS
10.10 (Yosemite) with a minimum deployment target of macOS 10.7 (Lion).
As binaries are still being compiled to support a minimum of macOS 10.7
(Lion) we do not anticipate this having a negative impact on Node.js
10.x users with older versions of macOS.

Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - define release 6
    [#32058](#32058)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 8, 2020
macOS package notarization and a change in builder configuration

The macOS binaries for this release, and future 10.x releases, are now
being compiled on macOS 10.15 (Catalina) with Xcode 11 to support
package notarization, a requirement for installing .pkg files on macOS
10.15 and later. Previous builds of Node.js 10.x were compiled on macOS
10.10 (Yosemite) with a minimum deployment target of macOS 10.7 (Lion).
As binaries are still being compiled to support a minimum of macOS 10.7
(Lion) we do not anticipate this having a negative impact on Node.js
10.x users with older versions of macOS.

Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - define release 6
    [#32058](#32058)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 8, 2020
macOS package notarization and a change in builder configuration

The macOS binaries for this release, and future 10.x releases, are now
being compiled on macOS 10.15 (Catalina) with Xcode 11 to support
package notarization, a requirement for installing .pkg files on macOS
10.15 and later. Previous builds of Node.js 10.x were compiled on macOS
10.10 (Yosemite) with a minimum deployment target of macOS 10.7 (Lion).
As binaries are still being compiled to support a minimum of macOS 10.7
(Lion) we do not anticipate this having a negative impact on Node.js
10.x users with older versions of macOS.

Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - define release 6
    [#32058](#32058)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
BethGriggs pushed a commit that referenced this issue Apr 14, 2020
macOS package notarization and a change in builder configuration

The macOS binaries for this release, and future 10.x releases, are now
being compiled on macOS 10.15 (Catalina) with Xcode 11 to support
package notarization, a requirement for installing .pkg files on macOS
10.15 and later. Previous builds of Node.js 10.x were compiled on macOS
10.10 (Yosemite) with a minimum deployment target of macOS 10.7 (Lion).
As binaries are still being compiled to support a minimum of macOS 10.7
(Lion) we do not anticipate this having a negative impact on Node.js
10.x users with older versions of macOS.

Notable changes:

- buffer: add {read|write}Big\[U\]Int64{BE|LE} methods (garygsc)
  [#19691](#19691)
- build: macOS package notarization (Rod Vagg)
  [#31459](#31459)
- deps:
  - update npm to 6.14.3 (Myles Borins)
    [#32368](#32368)
  - upgrade openssl sources to 1.1.1e (Hassaan Pasha)
    [#32328](#32328)
  - upgrade to libuv 1.34.2 (cjihrig)
    [#31477](#31477)
- n-api:
  - add napi\_get\_all\_property\_names (himself65)
    [#30006](#30006)
  - add APIs for per-instance state management (Gabriel Schulhof)
    [#28682](#28682)
  - define release 6
    [#32058](#32058)
  - turn NAPI\_CALL\_INTO\_MODULE into a function (Anna Henningsen)
    [#26128](#26128)
- tls:
  - expose keylog event on TLSSocket (Alba Mendez)
    [#27654](#27654)
  - support TLS min/max protocol defaults in CLI (Sam Roberts)
    [#27946](#27946)
- url: handle quasi-WHATWG URLs in urlToOptions() (cjihrig)
  [#26226](#26226)

PR-URL: #31984
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet