-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
RFC: Remove Ryan's Freelist feature #569
Comments
lib/_http_common.js uses it for caching parser objects. I'd be okay with moving lib/freelist.js into lib/_http_common.js if we knew for sure that no one was using it but GH search suggests that there are at least a few projects that do. |
I'd go with moving it. I looked at each case for the first 10 pages of results and most uses of the module are either 1) node wrappers that 1 They're NOP'ing the method, so it's actually just a mock. |
we need truly private internal modules for these kind of things. |
On the first 20 pages, I found one actual use of the module: zxcabs/node-proxy-cache/bf3a1a4. We could move FreeList to http#FreeList and document it, then deprecate _freelist_ as a module and warn the user to move on to http#FreeList. |
If it were up to me I would put it on npm, deprecated it and removed it in a major version update at a later date. |
Did this, done that: npm/freelist. Deprecation isn't that easy though, because #http requires it and we cannot simply move it there because it's a pain in the ass to move cross-require http from iojs#freelist just to have it. I'm not sure about this.. the last resort would be to simply document that feature for the time being.. |
|
Was freelist ever documented? Backwards compatibility is great but we should draw the line somewhere. We shouldn't have to perpetually support an internal feature just because someone decided to use it. |
Pretty sure it could be doing more harm than good so we should re-consider even using it, v8 gc has changed a lot in the last 5 years |
@chrisdickinson can you run this against your static npm analyzer thing? |
There is now a micro-optimization PR on If (as @petkaantonov suggests), |
Being that this is exposed publicly we should work it through the deprecation process (which I believe @chrisdickinson is in the process of documenting and testing). This may be a good candidate to do alongside the deprecation of |
@mikeal |
@thefourtheye the process of actually removing publicly exposed API is more than just printing a warning for a release. |
As per the dicussion in nodejs#569, this patch issues a deprecation warning when freelist modeule is required.
@mikeal The act of adding deprecation warnings, in node, is no indication that the feature will ever be removed. |
@trevnorris i know, but we've been talking about a deprecation process that would actually remove public API at some point and printing a warning is part of that. |
At thanks. Missed that context skimming over the issue. |
As per the dicussion in #569, this patch issues a deprecation warning when freelist module is required. A test file for freelist is also added. PR-URL: #2176 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Brendan Ashworth <[email protected]>
It looks like this was deprecated back in io.js. Is there more to be done here? Are we actually going to remove freelist, or can this issue by closed? |
Looks like we have a deprecation warning now, would be cool if we could close this and have it automatically re-open in a year to consider removing ;) |
I'm going to close. @geek would you mind being our watchdog ;-) |
Ho,
Ryan introduced FreeList in 2010 (landed in aadce8e) and is has been usable ever since.
However, it is not documented nor is it used in core-libraries and IMHO the code doesn't qualify for a core-module.
Comments?
The text was updated successfully, but these errors were encountered: