GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — src, buffer: add --pending-deprecation flag by jasnell · Pull Request #11968 · nodejs/node

Conversation

@jasnell

@jasnell jasnell commented Mar 21, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

This PR was split out of #11808 by request of the @nodejs/ctc.

This adds a new --pending-deprecation command line flag and equivalent NODE_PENDING_DEPRECATION environment variable. These are used to cause
core to emit pending DeprecationWarnings that are off by default.

A pending deprecation warning for use of Buffer() and new Buffer() is included. The pending deprecation warning is off by default and is only emitted when the new pending deprecation
flag is used.

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
Affected core subsystem(s)

src, buffer

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ChALkeR reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@jasnell jasnell added the semver-minor PRs that contain new features and should be released in the next minor version. label Mar 21, 2017
@nodejs-github-bot nodejs-github-bot added buffer Issues and PRs related to the buffer subsystem. c++ Issues and PRs that require attention from people who are familiar with C++. labels Mar 21, 2017
@jasnell jasnell mentioned this pull request Mar 21, 2017
buffer: auto random fill Buffer(num) and new Buffer(num) #11808
Closed
3 tasks done
addaleax
addaleax approved these changes Mar 22, 2017
View reviewed changes
mscdex
mscdex reviewed Mar 22, 2017
View reviewed changes
Comment thread lib/buffer.js Outdated

@mscdex mscdex Mar 22, 2017

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this change?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@jasnell jasnell Mar 22, 2017

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a workaround to ensure that Uint8Array inherited methods work correctly. See: #11808 (review)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@ChALkeR ChALkeR Mar 22, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can more people please review this specific change for us to be on the safe side?
/cc @nodejs/buffer

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@addaleax addaleax Mar 22, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So… what this would break, afaik, is that Buffer.prototype.constructor === Buffer no longer holds true, which is a bit odd but something we might be able to just accept. Everything else, including instanceof and buf.constructor.name, should continue to work fine.

One alternative way that was brought up, and I think I might prefer that, we should be able to set FastBuffer[Symbol.species] to FastBuffer, that should keep the Uint8Array methods working, too. (Didn’t try that out, though).

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@targos targos Mar 23, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added the explicit constructor to fix a performance regression in #8754
Can we keep it or check that current V8 version doesn't have the issue?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@jasnell jasnell Mar 31, 2017

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@addaleax ... setting the Symbol.species on the old version of FastBuffer has no impact, unfortunately. Still playing with it tho

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@addaleax addaleax Mar 31, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jasnell Do you have that code pushed somewhere? I mean, if it does have no effect, that would be a bug, right?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@jasnell jasnell Mar 31, 2017

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:-) ... I was hanging the Symbol.species off the wrong thing... attaching it to Buffer[Symbol.species] appears to work. Still testing tho

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ChALkeR

ChALkeR commented Mar 22, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Perhaps a testcase for NODE_PENDING_DEPRECATION env variable could be added?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@silverwind

silverwind commented Mar 22, 2017

Copy link
Copy Markdown
Contributor

Both the flag and the env variable need to be documented in node.1, --help, and in cli.md.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell
jasnell force-pushed the pending-deprecations branch from 9d38d26 to 2ce30cf Compare March 22, 2017 20:21
@jasnell

jasnell commented Mar 22, 2017

Copy link
Copy Markdown
Member Author

@ChALkeR @silverwind ... done! I added a new test for both --pending-deprecation and NODE_PENDING_DEPRECATION, and added the documentation for both.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

silverwind
silverwind reviewed Mar 22, 2017
View reviewed changes
Comment thread doc/api/cli.md Outdated

@silverwind silverwind Mar 22, 2017

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a sentence with the purpose of a pending deprecation?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@Trott Trott Mar 23, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: Maybe also specify that it's specifically the runtime deprecation that's pending, and that stuff is frequently deprecated in the docs but with no runtime deprecation message. Or something. We differentiate between "runtime deprecation" and "docs deprecation" pretty much everywhere, so it seems like there ought to be some clarity when people are using this flag.

That said, I'm fine with this landing without that information. I know it's crunch time on this stuff right now. It can always be added in a subsequent pull request if it turns out that it's important to include.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@jasnell jasnell Mar 23, 2017

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to add an explanatory note.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@jasnell
jasnell force-pushed the pending-deprecations branch from 2ce30cf to 3ec15ad Compare March 23, 2017 00:15
targos
targos approved these changes Mar 23, 2017
View reviewed changes
Comment thread lib/buffer.js Outdated

@targos targos Mar 23, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added the explicit constructor to fix a performance regression in #8754
Can we keep it or check that current V8 version doesn't have the issue?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@jasnell
jasnell force-pushed the pending-deprecations branch from 3ec15ad to 7ca48f8 Compare March 23, 2017 18:45
@jasnell

jasnell commented Mar 23, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

@targos ...

Benchmark results for buffer-from
PR to master

improvement confidence      p.value
buffers/buffer-from.js n=1024 len=10 source="array"                   -16.42 %        *** 7.792262e-11
buffers/buffer-from.js n=1024 len=10 source="arraybuffer-middle"      -21.38 %        *** 2.168308e-06
buffers/buffer-from.js n=1024 len=10 source="arraybuffer"             -22.32 %        *** 2.294274e-09
buffers/buffer-from.js n=1024 len=10 source="buffer"                  -17.65 %        *** 1.350472e-05
buffers/buffer-from.js n=1024 len=10 source="object"                  -12.25 %        *** 1.180961e-06
buffers/buffer-from.js n=1024 len=10 source="string-base64"            -7.05 %        *** 2.333473e-04
buffers/buffer-from.js n=1024 len=10 source="string"                  -12.77 %        *** 6.414072e-04
buffers/buffer-from.js n=1024 len=10 source="uint8array"              -15.14 %        *** 1.109671e-06
buffers/buffer-from.js n=1024 len=2048 source="array"                  -1.83 %            3.509761e-01
buffers/buffer-from.js n=1024 len=2048 source="arraybuffer-middle"    -24.98 %        *** 3.233412e-11
buffers/buffer-from.js n=1024 len=2048 source="arraybuffer"           -18.99 %        *** 1.380310e-07
buffers/buffer-from.js n=1024 len=2048 source="buffer"                 -8.26 %          * 1.192811e-02
buffers/buffer-from.js n=1024 len=2048 source="object"                -13.14 %        *** 1.258989e-07
buffers/buffer-from.js n=1024 len=2048 source="string-base64"          -2.15 %          * 3.041810e-02
buffers/buffer-from.js n=1024 len=2048 source="string"                 -1.00 %            7.109994e-01
buffers/buffer-from.js n=1024 len=2048 source="uint8array"             -6.50 %          * 1.043962e-02

PR to v7-latest

improvement confidence      p.value
buffers/buffer-from.js n=1024 len=10 source="array"                    14.66 %          * 4.128284e-02
buffers/buffer-from.js n=1024 len=10 source="arraybuffer-middle"      -31.02 %        *** 1.252807e-07
buffers/buffer-from.js n=1024 len=10 source="arraybuffer"             -33.07 %        *** 2.434402e-08
buffers/buffer-from.js n=1024 len=10 source="buffer"                   11.13 %            7.116099e-02
buffers/buffer-from.js n=1024 len=10 source="object"                   27.77 %        *** 4.621124e-04
buffers/buffer-from.js n=1024 len=10 source="string-base64"           -18.06 %         ** 2.839069e-03
buffers/buffer-from.js n=1024 len=10 source="string"                  -22.87 %        *** 3.704564e-05
buffers/buffer-from.js n=1024 len=10 source="uint8array"              -10.61 %          * 2.388147e-02
buffers/buffer-from.js n=1024 len=2048 source="array"                  -2.76 %            6.038384e-01
buffers/buffer-from.js n=1024 len=2048 source="arraybuffer-middle"    -32.39 %        *** 2.247906e-08
buffers/buffer-from.js n=1024 len=2048 source="arraybuffer"           -33.12 %        *** 6.387633e-09
buffers/buffer-from.js n=1024 len=2048 source="buffer"                  8.03 %            1.359963e-01
buffers/buffer-from.js n=1024 len=2048 source="object"                 30.79 %        *** 2.044209e-04
buffers/buffer-from.js n=1024 len=2048 source="string-base64"          -2.57 %            6.409698e-01
buffers/buffer-from.js n=1024 len=2048 source="string"                 -8.51 %            8.553839e-02
buffers/buffer-from.js n=1024 len=2048 source="uint8array"            293.43 %        *** 1.781736e-22

master to v7-latest

improvement confidence      p.value
buffers/buffer-from.js n=1024 len=10 source="array"                    37.57 %        *** 1.781021e-12
buffers/buffer-from.js n=1024 len=10 source="arraybuffer-middle"      -13.65 %        *** 4.060694e-07
buffers/buffer-from.js n=1024 len=10 source="arraybuffer"             -12.98 %        *** 2.349020e-05
buffers/buffer-from.js n=1024 len=10 source="buffer"                   26.04 %        *** 4.158553e-10
buffers/buffer-from.js n=1024 len=10 source="object"                   44.97 %        *** 6.654504e-18
buffers/buffer-from.js n=1024 len=10 source="string-base64"           -10.05 %        *** 9.244411e-05
buffers/buffer-from.js n=1024 len=10 source="string"                  -18.68 %        *** 6.452878e-13
buffers/buffer-from.js n=1024 len=10 source="uint8array"                0.37 %            8.982949e-01
buffers/buffer-from.js n=1024 len=2048 source="array"                   3.59 %          * 3.594595e-02
buffers/buffer-from.js n=1024 len=2048 source="arraybuffer-middle"    -14.08 %        *** 2.082821e-04
buffers/buffer-from.js n=1024 len=2048 source="arraybuffer"           -13.67 %        *** 7.702316e-07
buffers/buffer-from.js n=1024 len=2048 source="buffer"                 11.01 %         ** 4.616398e-03
buffers/buffer-from.js n=1024 len=2048 source="object"                 42.88 %        *** 2.021887e-16
buffers/buffer-from.js n=1024 len=2048 source="string-base64"           1.39 %            5.063980e-01
buffers/buffer-from.js n=1024 len=2048 source="string"                 -5.65 %        *** 4.850306e-04
buffers/buffer-from.js n=1024 len=2048 source="uint8array"            321.70 %        *** 2.335348e-28

I'm running the buffer-creation benchmarks now

Benchmark results for buffer-creation
PR vs v7-latest
                                                                    improvement confidence      p.value
 buffers/buffer-creation.js n=1024 len=10 type="buffer()"              -37.70 %        *** 8.170936e-07
 buffers/buffer-creation.js n=1024 len=10 type="fast-alloc-fill"       -22.43 %        *** 4.234106e-04
 buffers/buffer-creation.js n=1024 len=10 type="fast-alloc"            -18.70 %         ** 2.991527e-03
 buffers/buffer-creation.js n=1024 len=10 type="fast-allocUnsafe"      -39.59 %        *** 2.983973e-09
 buffers/buffer-creation.js n=1024 len=10 type="slow-allocUnsafe"      -25.74 %        *** 5.983443e-05
 buffers/buffer-creation.js n=1024 len=10 type="slow"                  -27.11 %        *** 1.038236e-05
 buffers/buffer-creation.js n=1024 len=1024 type="buffer()"            -28.41 %        *** 2.246628e-05
 buffers/buffer-creation.js n=1024 len=1024 type="fast-alloc-fill"     -10.43 %            1.321668e-01
 buffers/buffer-creation.js n=1024 len=1024 type="fast-alloc"          -10.79 %            7.761290e-02
 buffers/buffer-creation.js n=1024 len=1024 type="fast-allocUnsafe"    -29.88 %        *** 2.164879e-06
 buffers/buffer-creation.js n=1024 len=1024 type="slow-allocUnsafe"    -21.92 %        *** 3.027289e-04
 buffers/buffer-creation.js n=1024 len=1024 type="slow"                -23.86 %        *** 3.208618e-04
 buffers/buffer-creation.js n=1024 len=2048 type="buffer()"            -22.88 %         ** 1.258741e-03
 buffers/buffer-creation.js n=1024 len=2048 type="fast-alloc-fill"      -9.78 %            1.632281e-01
 buffers/buffer-creation.js n=1024 len=2048 type="fast-alloc"          -11.73 %          * 4.364843e-02
 buffers/buffer-creation.js n=1024 len=2048 type="fast-allocUnsafe"    -22.75 %        *** 7.573624e-04
 buffers/buffer-creation.js n=1024 len=2048 type="slow-allocUnsafe"    -19.22 %         ** 6.876306e-03
 buffers/buffer-creation.js n=1024 len=2048 type="slow"                -19.85 %         ** 1.531455e-03
 buffers/buffer-creation.js n=1024 len=4096 type="buffer()"             -9.88 %            1.343226e-01
 buffers/buffer-creation.js n=1024 len=4096 type="fast-alloc-fill"     -12.65 %          * 3.085357e-02
 buffers/buffer-creation.js n=1024 len=4096 type="fast-alloc"           -6.36 %            2.733906e-01
 buffers/buffer-creation.js n=1024 len=4096 type="fast-allocUnsafe"    -10.92 %            1.366664e-01
 buffers/buffer-creation.js n=1024 len=4096 type="slow-allocUnsafe"    -19.47 %         ** 8.094237e-03
 buffers/buffer-creation.js n=1024 len=4096 type="slow"                -18.56 %         ** 3.257171e-03
 buffers/buffer-creation.js n=1024 len=8192 type="buffer()"            -25.61 %        *** 8.851354e-04
 buffers/buffer-creation.js n=1024 len=8192 type="fast-alloc-fill"     -25.86 %        *** 3.210301e-05
 buffers/buffer-creation.js n=1024 len=8192 type="fast-alloc"          -18.27 %         ** 1.576755e-03
 buffers/buffer-creation.js n=1024 len=8192 type="fast-allocUnsafe"    -24.54 %         ** 1.267306e-03
 buffers/buffer-creation.js n=1024 len=8192 type="slow-allocUnsafe"    -22.22 %         ** 2.361535e-03
 buffers/buffer-creation.js n=1024 len=8192 type="slow"                -24.95 %         ** 1.274023e-03

PR to Master
                                                                    improvement confidence      p.value
 buffers/buffer-creation.js n=1024 len=10 type="buffer()"              -23.82 %        *** 4.603310e-07
 buffers/buffer-creation.js n=1024 len=10 type="fast-alloc-fill"        -8.98 %          * 4.796022e-02
 buffers/buffer-creation.js n=1024 len=10 type="fast-alloc"             -9.66 %          * 2.705076e-02
 buffers/buffer-creation.js n=1024 len=10 type="fast-allocUnsafe"      -21.20 %        *** 1.350862e-04
 buffers/buffer-creation.js n=1024 len=10 type="slow-allocUnsafe"       -8.17 %          * 4.477244e-02
 buffers/buffer-creation.js n=1024 len=10 type="slow"                   -8.14 %            7.364837e-02
 buffers/buffer-creation.js n=1024 len=1024 type="buffer()"            -12.14 %         ** 1.536780e-03
 buffers/buffer-creation.js n=1024 len=1024 type="fast-alloc-fill"      -2.95 %            4.062755e-01
 buffers/buffer-creation.js n=1024 len=1024 type="fast-alloc"           -7.04 %            6.421243e-02
 buffers/buffer-creation.js n=1024 len=1024 type="fast-allocUnsafe"    -21.17 %        *** 3.190386e-04
 buffers/buffer-creation.js n=1024 len=1024 type="slow-allocUnsafe"     -5.00 %            2.486273e-01
 buffers/buffer-creation.js n=1024 len=1024 type="slow"                 -2.82 %            5.463033e-01
 buffers/buffer-creation.js n=1024 len=2048 type="buffer()"             -4.22 %            4.282637e-01
 buffers/buffer-creation.js n=1024 len=2048 type="fast-alloc-fill"      -6.86 %          * 4.507429e-02
 buffers/buffer-creation.js n=1024 len=2048 type="fast-alloc"           -4.34 %            3.098785e-01
 buffers/buffer-creation.js n=1024 len=2048 type="fast-allocUnsafe"    -12.63 %          * 1.633488e-02
 buffers/buffer-creation.js n=1024 len=2048 type="slow-allocUnsafe"     -0.03 %            9.952215e-01
 buffers/buffer-creation.js n=1024 len=2048 type="slow"                 -1.11 %            8.161170e-01
 buffers/buffer-creation.js n=1024 len=4096 type="buffer()"              3.13 %            5.248264e-01
 buffers/buffer-creation.js n=1024 len=4096 type="fast-alloc-fill"      -5.42 %            1.418995e-01
 buffers/buffer-creation.js n=1024 len=4096 type="fast-alloc"           -6.19 %            8.675164e-02
 buffers/buffer-creation.js n=1024 len=4096 type="fast-allocUnsafe"     -5.31 %            2.569296e-01
 buffers/buffer-creation.js n=1024 len=4096 type="slow-allocUnsafe"     -1.27 %            8.108671e-01
 buffers/buffer-creation.js n=1024 len=4096 type="slow"                 -0.12 %            9.768392e-01
 buffers/buffer-creation.js n=1024 len=8192 type="buffer()"             15.40 %            1.746439e-01
 buffers/buffer-creation.js n=1024 len=8192 type="fast-alloc-fill"      -1.56 %            8.272071e-01
 buffers/buffer-creation.js n=1024 len=8192 type="fast-alloc"           -2.94 %            7.164391e-01
 buffers/buffer-creation.js n=1024 len=8192 type="fast-allocUnsafe"      4.65 %            6.791579e-01
 buffers/buffer-creation.js n=1024 len=8192 type="slow-allocUnsafe"    -15.99 %            9.725391e-02
 buffers/buffer-creation.js n=1024 len=8192 type="slow"                -15.01 %            1.110732e-01

master to v7-latest

                                                                    improvement confidence      p.value
 buffers/buffer-creation.js n=1024 len=10 type="buffer()"              -19.82 %        *** 2.918161e-06
 buffers/buffer-creation.js n=1024 len=10 type="fast-alloc-fill"       -13.46 %        *** 2.816522e-04
 buffers/buffer-creation.js n=1024 len=10 type="fast-alloc"             -7.80 %         ** 9.382877e-03
 buffers/buffer-creation.js n=1024 len=10 type="fast-allocUnsafe"      -20.60 %        *** 2.080874e-09
 buffers/buffer-creation.js n=1024 len=10 type="slow-allocUnsafe"       -9.86 %        *** 4.085916e-04
 buffers/buffer-creation.js n=1024 len=10 type="slow"                  -11.86 %         ** 2.226668e-03
 buffers/buffer-creation.js n=1024 len=1024 type="buffer()"            -18.86 %        *** 1.114447e-06
 buffers/buffer-creation.js n=1024 len=1024 type="fast-alloc-fill"     -11.83 %        *** 3.524462e-04
 buffers/buffer-creation.js n=1024 len=1024 type="fast-alloc"           -9.32 %         ** 8.059771e-03
 buffers/buffer-creation.js n=1024 len=1024 type="fast-allocUnsafe"     -9.28 %         ** 1.530503e-03
 buffers/buffer-creation.js n=1024 len=1024 type="slow-allocUnsafe"     -7.37 %         ** 1.946543e-03
 buffers/buffer-creation.js n=1024 len=1024 type="slow"                 -8.66 %         ** 2.212602e-03
 buffers/buffer-creation.js n=1024 len=2048 type="buffer()"             -9.55 %         ** 1.281355e-03
 buffers/buffer-creation.js n=1024 len=2048 type="fast-alloc-fill"      -8.09 %          * 1.395453e-02
 buffers/buffer-creation.js n=1024 len=2048 type="fast-alloc"           -4.03 %            1.707212e-01
 buffers/buffer-creation.js n=1024 len=2048 type="fast-allocUnsafe"     -7.36 %          * 4.570890e-02
 buffers/buffer-creation.js n=1024 len=2048 type="slow-allocUnsafe"     -5.30 %            1.155574e-01
 buffers/buffer-creation.js n=1024 len=2048 type="slow"                 -7.37 %         ** 1.663168e-03
 buffers/buffer-creation.js n=1024 len=4096 type="buffer()"             -6.45 %         ** 1.664182e-03
 buffers/buffer-creation.js n=1024 len=4096 type="fast-alloc-fill"      -7.76 %          * 2.186373e-02
 buffers/buffer-creation.js n=1024 len=4096 type="fast-alloc"           -2.32 %            2.932382e-01
 buffers/buffer-creation.js n=1024 len=4096 type="fast-allocUnsafe"     -6.03 %         ** 4.181543e-03
 buffers/buffer-creation.js n=1024 len=4096 type="slow-allocUnsafe"     -6.37 %         ** 8.358552e-03
 buffers/buffer-creation.js n=1024 len=4096 type="slow"                 -7.15 %          * 1.098388e-02
 buffers/buffer-creation.js n=1024 len=8192 type="buffer()"            -19.75 %         ** 8.360417e-03
 buffers/buffer-creation.js n=1024 len=8192 type="fast-alloc-fill"     -20.11 %        *** 1.702175e-04
 buffers/buffer-creation.js n=1024 len=8192 type="fast-alloc"          -19.21 %        *** 3.986116e-04
 buffers/buffer-creation.js n=1024 len=8192 type="fast-allocUnsafe"    -26.04 %        *** 6.409609e-04
 buffers/buffer-creation.js n=1024 len=8192 type="slow-allocUnsafe"    -27.41 %        *** 6.028415e-04
 buffers/buffer-creation.js n=1024 len=8192 type="slow"                -19.57 %          * 1.026433e-02
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell
jasnell force-pushed the pending-deprecations branch from 7ca48f8 to 72bec87 Compare March 24, 2017 16:40
@ChALkeR

ChALkeR commented Mar 25, 2017

Copy link
Copy Markdown
Member

For the record, a heavy +1 for me on this one, but I'm not posting an LGTM because I'm not 100% sure how exactly does the workaround on the FastBuffer line work here.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ChALkeR ChALkeR added this to the 8.0.0 milestone Mar 25, 2017
@ChALkeR

ChALkeR commented Mar 25, 2017

Copy link
Copy Markdown
Member

We surely can get this in in time for 8.0, right? ;-)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Mar 25, 2017 via email

Copy link
Copy Markdown
Member Author
I'm not that happy with the FastBuffer work around either given the perf hit. I'm thinking through another approach.
…
On Sat, Mar 25, 2017 at 7:50 AM Сковорода Никита Андреевич < ***@***.***> wrote: For the record, a heavy +1 for me on this one, but I'm not posting an LGTM because I'm not 100% sure how exactly does the workaround on the FastBuffer line work here. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#11968 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAa2eTdKO_le3QqddFwPBClKRR9OcLVhks5rpSnDgaJpZM4MkFDa> .
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Mar 25, 2017

Copy link
Copy Markdown
Member

I'm not that happy with the FastBuffer work around either given the perf
hit.

The work around does not work if you implement constructor ?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Mar 25, 2017

Copy link
Copy Markdown
Member Author

It does! Just did that. It appears to alleviate some of the perf cost (not all but some).

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Mar 25, 2017

Copy link
Copy Markdown
Member Author

I will update the PR in a minute

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell
jasnell force-pushed the pending-deprecations branch from 72bec87 to 11711d6 Compare March 25, 2017 19:14
@jasnell

jasnell commented Mar 25, 2017

Copy link
Copy Markdown
Member Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ChALkeR ChALkeR added the security Issues and PRs related to security. label Mar 25, 2017
@Trott Trott added the notable-change PRs with changes that should be highlighted in changelogs. label Mar 25, 2017
@jasnell

jasnell commented Mar 27, 2017

Copy link
Copy Markdown
Member Author

@nodejs/ctc ... one final check on this before it lands. Are there any objections? Should I hold off until the CTC call on Wednesday?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ChALkeR

ChALkeR commented Mar 27, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

@jasnell I'm not sure if this isn't a semver-major because of #11968 (comment).

This isn't an objection, though.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Mar 27, 2017

Copy link
Copy Markdown
Member Author

I'm ok with making it a semver-major

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ChALkeR

ChALkeR commented Mar 31, 2017 •
edited by seishun
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Ok, let's have a quick 🚲🏡 vote here.

Please edit this comment, adding your opinion for each of the flag names.
I know this is cumbersome, but it's still better than having everyone to post a comment.
/cc @nodejs/ctc

Empty No/Abstain fields are hidden to save space, please uncomment them on first use.

--pending-deprecation

Yes: @ChALkeR @Trott @jasnell @targos

--warn-deprecation

No: @ChALkeR @Trott @jasnell @targos

--warn-doc-deprecation

No: @ChALkeR @Trott @jasnell @targos

--flagged-deprecation

Yes: @ChALkeR
No: @targos
Abstain: @Trott @jasnell

--opt-in-deprecate or --opt-in-deprecation

Yes: @ChALkeR @Trott @jasnell

Abstain: @targos

--pending-runtime-deprecation

Yes: @ChALkeR @Trott @targos

--pending-warn-deprecation

No: @targos

--pending-warning


It's ok to propose new flag names right here below this line, using the template above:

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Trott Trott mentioned this pull request Apr 3, 2017
Node.js Foundation Core Technical Committee (CTC) Meeting 2017-04-05 nodejs/CTC#93
Closed
@jasnell

jasnell commented Apr 5, 2017

Copy link
Copy Markdown
Member Author

@nodejs/ctc ... Given that this has enough votes to land using the --pending-deprecation name, I plan to land it Friday if there are no further objections

ChALkeR reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Trott Trott mentioned this pull request Apr 9, 2017
Node.js Foundation Core Technical Committee (CTC) Meeting 2017-04-12 nodejs/CTC#98
Closed
@refack
refack force-pushed the master branch from 16073c0 to fbe946b Compare April 14, 2017 04:11
@Trott Trott mentioned this pull request Apr 17, 2017
Node.js Foundation Core Technical Committee (CTC) Meeting 2017-04-19 nodejs/CTC#105
Closed
@jasnell

jasnell commented Apr 17, 2017

Copy link
Copy Markdown
Member Author

It's a bit later, but one final call for objections on landing this as --pending-deprecation.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Apr 19, 2017

Copy link
Copy Markdown
Member Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

jasnell added a commit that referenced this pull request Apr 19, 2017
@jasnell
src: add --pending-deprecation and NODE_PENDING_DEPRECATION
a16b570
Command line flag and environment variable that can be used to
indicate that pending deprecations should be emitted.

PR-URL: #11968
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: James M Snell <[email protected]>
jasnell added a commit that referenced this pull request Apr 19, 2017
@jasnell
buffer: add pending deprecation warning
d2d32ea
The pending deprecation warning is off by default.
Launch the node process with --pending-deprecation
or NODE_PENDING_DEPRECATION=1 env var set.

PR-URL: #11968
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@jasnell

jasnell commented Apr 19, 2017

Copy link
Copy Markdown
Member Author

Landed in a16b570 and d2d32ea

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell jasnell closed this Apr 19, 2017
@Trott Trott removed the ctc-review label Apr 24, 2017
@sam-github sam-github mentioned this pull request Apr 25, 2017
(v8.x backport) src: allow CLI args in env with NODE_OPTIONS #12647
Closed
4 tasks
@ChALkeR ChALkeR mentioned this pull request May 4, 2017
buffer: runtime-deprecate Buffer constructor #7152
Closed
2 tasks done
@jasnell jasnell mentioned this pull request May 11, 2017
8.0.0 Release Proposal #12220
Closed
jasnell added a commit to jasnell/node that referenced this pull request May 29, 2017
@jasnell
2017-05-30, Version 8.0.0 (Current)
c596751
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](nodejs@4a7233c178)]
    [nodejs#12892](nodejs#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](nodejs@d2d32ea5a2)]
    [nodejs#11968](nodejs#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](nodejs@7eb1b4658e)]
    [nodejs#12141](nodejs#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](nodejs@beca3244e2)]
    [nodejs#10236](nodejs#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](nodejs@97a77288ce)]
    [nodejs#12348](nodejs#12348),
    [[`d75fdd96aa`](nodejs@d75fdd96aa)]
    [nodejs#10423](nodejs#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](nodejs@627ecee9ed)]
    [nodejs#10653](nodejs#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](nodejs@f18e08d820)]
    [nodejs#9744](nodejs#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](nodejs@3c3b36af0f)]
    [nodejs#12936](nodejs#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](nodejs@60d1aac8d2)]
    [nodejs#12784](nodejs#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](nodejs@84dabe8373)]
    [nodejs#12489](nodejs#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](nodejs@7a55e34ef4)]
    [nodejs#10467](nodejs#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](nodejs@3c2a9361ff)]
    [nodejs#9683](nodejs#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](nodejs@90403dd1d0)]
    [nodejs#11567](nodejs#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](nodejs@d3480776c7)]
    [nodejs#11259](nodejs#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](nodejs@fb71ba4921)]
    [nodejs#11355](nodejs#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](nodejs@3e6f1032a4)]
    [nodejs#10805](nodejs#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](nodejs@5de3cf099c)]
    [nodejs#10116](nodejs#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](nodejs@84a23391f6)]
    [nodejs#12113](nodejs#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](nodejs@56e881d0b0)]
    [nodejs#11975](nodejs#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](nodejs@03e89b3ff2)]
    [nodejs#10116](nodejs#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](nodejs@dd20e68b0f)]
    [nodejs#12725](nodejs#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](nodejs@3f27f02da0)]
    [nodejs#11599](nodejs#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (nodejs@ec7cbaf266)]
    [nodejs#12995](nodejs#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](nodejs@a16b570f8c)]
    [nodejs#11968](nodejs#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](nodejs@010f864426)]
    [nodejs#12949](nodejs#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](nodejs@a5f91ab230)]
    [nodejs#11689](nodejs#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](nodejs@8a7db9d4b5)]
    [nodejs#12087](nodejs#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](nodejs@b6e1d22fa6)]
    [nodejs#12925](nodejs#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](nodejs@07c7f198db)]
    [nodejs#12828](nodejs#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](nodejs@348cc80a3c)]
    [nodejs#5923](nodejs#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](nodejs@a2ae08999b)]
    [nodejs#11349](nodejs#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](nodejs@d523eb9c40)]
    [nodejs#11447](nodejs#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](nodejs@d080ead0f9)]
    [nodejs#12710](nodejs#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](nodejs@5bfd13b81e)]
    [nodejs#9726](nodejs#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](nodejs@455e6f1dd8)]
    [nodejs#11708](nodejs#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](nodejs@aab0d202f8)]
    [nodejs#11624](nodejs#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](nodejs@99da8e8e02)]
    [nodejs#12442](nodejs#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](nodejs@91383e47fd)]
    [nodejs#12001](nodejs#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](nodejs@b514bd231e)]
    [nodejs#11391](nodejs#11391).
jasnell added a commit that referenced this pull request May 30, 2017
@jasnell
2017-05-30, Version 8.0.0 (Current)
0d8021e
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](4a7233c178)]
    [#12892](#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](d2d32ea5a2)]
    [#11968](#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](7eb1b4658e)]
    [#12141](#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](beca3244e2)]
    [#10236](#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](97a77288ce)]
    [#12348](#12348),
    [[`d75fdd96aa`](d75fdd96aa)]
    [#10423](#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](627ecee9ed)]
    [#10653](#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](f18e08d820)]
    [#9744](#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](3c3b36af0f)]
    [#12936](#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](60d1aac8d2)]
    [#12784](#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](84dabe8373)]
    [#12489](#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](7a55e34ef4)]
    [#10467](#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](3c2a9361ff)]
    [#9683](#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](90403dd1d0)]
    [#11567](#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](d3480776c7)]
    [#11259](#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](fb71ba4921)]
    [#11355](#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](3e6f1032a4)]
    [#10805](#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](5de3cf099c)]
    [#10116](#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](84a23391f6)]
    [#12113](#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](56e881d0b0)]
    [#11975](#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](03e89b3ff2)]
    [#10116](#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](dd20e68b0f)]
    [#12725](#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](3f27f02da0)]
    [#11599](#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (ec7cbaf266)]
    [#12995](#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](a16b570f8c)]
    [#11968](#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](010f864426)]
    [#12949](#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](a5f91ab230)]
    [#11689](#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](8a7db9d4b5)]
    [#12087](#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](b6e1d22fa6)]
    [#12925](#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](07c7f198db)]
    [#12828](#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](348cc80a3c)]
    [#5923](#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](a2ae08999b)]
    [#11349](#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](d523eb9c40)]
    [#11447](#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](d080ead0f9)]
    [#12710](#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](5bfd13b81e)]
    [#9726](#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](455e6f1dd8)]
    [#11708](#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](aab0d202f8)]
    [#11624](#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](99da8e8e02)]
    [#12442](#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](91383e47fd)]
    [#12001](#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](b514bd231e)]
    [#11391](#11391).
jasnell added a commit that referenced this pull request May 30, 2017
@jasnell
2017-05-30, Version 8.0.0 (Current)
43e4efd
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](4a7233c178)]
    [#12892](#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](d2d32ea5a2)]
    [#11968](#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](7eb1b4658e)]
    [#12141](#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](beca3244e2)]
    [#10236](#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](97a77288ce)]
    [#12348](#12348),
    [[`d75fdd96aa`](d75fdd96aa)]
    [#10423](#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](627ecee9ed)]
    [#10653](#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](f18e08d820)]
    [#9744](#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](3c3b36af0f)]
    [#12936](#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](60d1aac8d2)]
    [#12784](#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](84dabe8373)]
    [#12489](#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](7a55e34ef4)]
    [#10467](#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](3c2a9361ff)]
    [#9683](#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](90403dd1d0)]
    [#11567](#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](d3480776c7)]
    [#11259](#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](fb71ba4921)]
    [#11355](#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](3e6f1032a4)]
    [#10805](#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](5de3cf099c)]
    [#10116](#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](84a23391f6)]
    [#12113](#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](56e881d0b0)]
    [#11975](#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](03e89b3ff2)]
    [#10116](#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](dd20e68b0f)]
    [#12725](#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](3f27f02da0)]
    [#11599](#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (ec7cbaf266)]
    [#12995](#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](a16b570f8c)]
    [#11968](#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](010f864426)]
    [#12949](#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](a5f91ab230)]
    [#11689](#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](8a7db9d4b5)]
    [#12087](#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](b6e1d22fa6)]
    [#12925](#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](07c7f198db)]
    [#12828](#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](348cc80a3c)]
    [#5923](#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](a2ae08999b)]
    [#11349](#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](d523eb9c40)]
    [#11447](#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](d080ead0f9)]
    [#12710](#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](5bfd13b81e)]
    [#9726](#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](455e6f1dd8)]
    [#11708](#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](aab0d202f8)]
    [#11624](#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](99da8e8e02)]
    [#12442](#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](91383e47fd)]
    [#12001](#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](b514bd231e)]
    [#11391](#11391).
@gibfahn gibfahn mentioned this pull request Jun 18, 2017
test: check that pending warning is emitted once #12527
Closed
3 tasks done
@ChALkeR ChALkeR mentioned this pull request Jul 29, 2017
Distrust Symantec root certs #14537
Closed
@seishun seishun mentioned this pull request Sep 11, 2017
buffer: runtime-deprecate Buffer ctor by default #15346
Closed
3 of 4 tasks
@ChALkeR ChALkeR mentioned this pull request Jan 28, 2018
--pending-deprecation process is underdocumented #18417
Closed
@seishun seishun mentioned this pull request Jun 15, 2018
buffer: runtime-deprecate Buffer constructor everywhere by default #21351
Closed
4 tasks done
@ChALkeR ChALkeR mentioned this pull request Jul 11, 2018
Password Hashing API #21766
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@ChALkeR ChALkeR ChALkeR left review comments
@Trott Trott Trott left review comments
@addaleax addaleax addaleax approved these changes
+4 more reviewers
@mscdex mscdex mscdex left review comments
@silverwind silverwind silverwind left review comments
@targos targos targos approved these changes
@mhdawson mhdawson mhdawson approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

buffer Issues and PRs related to the buffer subsystem. c++ Issues and PRs that require attention from people who are familiar with C++. notable-change PRs with changes that should be highlighted in changelogs. security Issues and PRs related to security. semver-major PRs that contain breaking changes and should be released in the next major version.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

14 participants

@jasnell @ChALkeR @silverwind @targos @addaleax @Trott @mscdex @cjihrig @gibfahn @seishun @rvagg @Fishrock123 @mhdawson @nodejs-github-bot
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.