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

Create a new pull request by comparing changes across two branches #1030

Merged
merged 25 commits into from
Oct 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6d36199
build: fix make errors that occur in Makefile
kmk324 Oct 14, 2024
b579779
test: update test_util.cc for coverage
kmk324 Oct 14, 2024
ecedcba
deps: update libuv to 1.49.1
santigimeno Oct 11, 2024
d6175b3
Revert "deps: disable io_uring support in libuv by default"
santigimeno Aug 8, 2024
f97865f
src: remove uv__node_patch_is_using_io_uring
santigimeno Aug 8, 2024
488ce99
events: optimize EventTarget.addEventListener
ronag Oct 14, 2024
80b56bb
diagnostics_channel: fix unsubscribe during publish
simon-id Oct 14, 2024
48b852a
benchmark: adjust byte size for buffer-copy
RafaelGSS Oct 14, 2024
10addb0
test_runner: require `--enable-source-maps` for sourcemap coverage
Oct 14, 2024
7a7c2b3
lib: remove settled dependant signals when they are GCed
geeksilva97 Oct 14, 2024
0581ccf
deps: update c-ares to v1.34.1
nodejs-github-bot Oct 15, 2024
87da1f3
deps: patch V8 to 12.9.202.28
nodejs-github-bot Oct 15, 2024
51d8146
src: fix winapi_strerror error string
huseyinacacak-janea Oct 15, 2024
14f2db9
doc: add instructions for WinGet build
huseyinacacak-janea Oct 15, 2024
6abd545
sqlite: cache column names in stmt.all()
indutny Oct 15, 2024
5e76c40
lib: test_runner#mock:timers respeced timeout_max behaviour
badkeyy Oct 15, 2024
0f375db
tools: fix typos
NathanBaulch Oct 15, 2024
231d5e4
buffer: make Buffer work with resizable ArrayBuffer
jasnell Oct 15, 2024
4dc76a9
deps: update simdutf to 5.6.0
nodejs-github-bot Oct 15, 2024
c0aebed
esm: fix inconsistency with `importAssertion` in `resolve` hook
yesmeck Oct 15, 2024
2545b9e
test_runner: add support for scheduler.wait on mock timers
ErickWendel Oct 15, 2024
019efe1
lib: runtime deprecate SlowBuffer
RafaelGSS Oct 15, 2024
fa8f149
2024-10-16, Version 23.0.0 (Current)
RafaelGSS Oct 9, 2024
73414f3
doc: spell out condition restrictions
jkrems Sep 30, 2024
e2242b4
2024-10-16, Version 22.10.0 (Current)
aduh95 Oct 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 30 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ file a new issue.
* [Windows](#windows)
* [Windows Prerequisites](#windows-prerequisites)
* [Option 1: Manual install](#option-1-manual-install)
* [Option 2: Automated install with Boxstarter](#option-2-automated-install-with-boxstarter)
* [Option 2: Automated install with WinGet](#option-2-automated-install-with-winget)
* [Option 3: Automated install with Boxstarter](#option-3-automated-install-with-boxstarter)
* [Building Node.js](#building-nodejs-2)
* [Android](#android)
* [`Intl` (ECMA-402) support](#intl-ecma-402-support)
Expand Down Expand Up @@ -666,7 +667,34 @@ Optional requirements for compiling with ClangCL:

NOTE: Currently we only support compiling with Clang that comes from Visual Studio.

##### Option 2: Automated install with Boxstarter
##### Option 2: Automated install with WinGet

[WinGet configuration files](https://github.com/nodejs/node/tree/main/.configurations)
can be used to install all the required prerequisites for Node.js development
easily. These files will install the following
[WinGet](https://learn.microsoft.com/en-us/windows/package-manager/winget/) packages:

* Git for Windows with the `git` and Unix tools added to the `PATH`
* `Python 3.12`
* `Visual Studio 2022` (Community, Enterprise or Professional)
* `Visual Studio 2022 Build Tools` with Visual C++ workload, Clang and ClangToolset
* `NetWide Assembler`

To install Node.js prerequisites from Powershell Terminal:

```powershell
winget configure .\configuration.dsc.yaml
```

Alternatively, you can use [Dev Home](https://learn.microsoft.com/en-us/windows/dev-home/)
to install the prerequisites:

* Switch to `Machine Configuration` tab
* Click on `Configuration File`
* Choose the corresponding WinGet configuration file
* Click on `Set up as admin`

##### Option 3: Automated install with Boxstarter

A [Boxstarter](https://boxstarter.org/) script can be used for easy setup of
Windows systems with all the required prerequisites for Node.js development.
Expand Down
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Select a Node.js version below to view the changelog history:

* [Node.js 23](doc/changelogs/CHANGELOG_V23.md) **Current**
* [Node.js 22](doc/changelogs/CHANGELOG_V22.md) **Current**
* [Node.js 21](doc/changelogs/CHANGELOG_V21.md) End-of-Life
* [Node.js 20](doc/changelogs/CHANGELOG_V20.md) **Long Term Support**
Expand Down Expand Up @@ -31,13 +32,17 @@ release.

<table>
<tr>
<th title="Current"><a href="doc/changelogs/CHANGELOG_V23.md">23</a> (Current)</th>
<th title="Current"><a href="doc/changelogs/CHANGELOG_V22.md">22</a> (Current)</th>
<th title="LTS Until 2026-04"><a href="doc/changelogs/CHANGELOG_V20.md">20</a> (LTS)</th>
<th title="LTS Until 2025-04"><a href="doc/changelogs/CHANGELOG_V18.md">18</a> (LTS)</th>
</tr>
<tr>
<b><a href="doc/changelogs/CHANGELOG_V23.md#23.0.0">23.0.0</a></b><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V22.md#22.9.0">22.9.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V22.md#22.10.0">22.10.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V22.md#22.9.0">22.9.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V22.md#22.8.0">22.8.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V22.md#22.7.0">22.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V22.md#22.6.0">22.6.0</a><br/>
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ coverage-clean: ## Remove coverage artifacts.
$(RM) -r coverage/tmp
@if [ -d "out/Release/obj.target" ]; then \
$(FIND) out/$(BUILDTYPE)/obj.target \( -name "*.gcda" -o -name "*.gcno" \) \
-type f -exec $(RM) {};\
-type f | xargs $(RM); \
fi

.PHONY: coverage
Expand All @@ -269,7 +269,7 @@ coverage-build-js: ## Build JavaScript coverage files.
.PHONY: coverage-test
coverage-test: coverage-build ## Run the tests and generate a coverage report.
@if [ -d "out/Release/obj.target" ]; then \
$(FIND) out/$(BUILDTYPE)/obj.target -name "*.gcda" -type f -exec $(RM) {}; \
$(FIND) out/$(BUILDTYPE)/obj.target -name "*.gcda" -type f | xargs $(RM); \
fi
-NODE_V8_COVERAGE=coverage/tmp \
TEST_CI_ARGS="$(TEST_CI_ARGS) --type=coverage" $(MAKE) $(COVTESTS)
Expand Down
2 changes: 1 addition & 1 deletion benchmark/buffers/buffer-copy.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const common = require('../common.js');

const bench = common.createBenchmark(main, {
bytes: [0, 8, 128, 32 * 1024],
bytes: [8, 128, 1024],
partial: ['true', 'false'],
n: [6e6],
});
Expand Down
25 changes: 25 additions & 0 deletions benchmark/events/eventtarget-add-remove-abort.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';
const common = require('../common.js');

const bench = common.createBenchmark(main, {
n: [1e5],
nListener: [1, 5, 10],
});

function main({ n, nListener }) {
const target = new EventTarget();
const listeners = [];
for (let k = 0; k < nListener; k += 1)
listeners.push(() => {});

bench.start();
for (let i = 0; i < n; i += 1) {
for (let k = listeners.length; --k >= 0;) {
target.addEventListener('abort', listeners[k]);
}
for (let k = listeners.length; --k >= 0;) {
target.removeEventListener('abort', listeners[k]);
}
}
bench.end(n);
}
4 changes: 2 additions & 2 deletions benchmark/events/eventtarget-add-remove.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
const common = require('../common.js');

const bench = common.createBenchmark(main, {
n: [1e6],
nListener: [5, 10],
n: [1e5],
nListener: [1, 5, 10],
});

function main({ n, nListener }) {
Expand Down
17 changes: 8 additions & 9 deletions deps/cares/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ INCLUDE (CheckCSourceCompiles)
INCLUDE (CheckStructHasMember)
INCLUDE (CheckLibraryExists)

PROJECT (c-ares LANGUAGES C VERSION "1.33.1" )
PROJECT (c-ares LANGUAGES C VERSION "1.34.1" )

# Set this version before release
SET (CARES_VERSION "${PROJECT_VERSION}")
Expand All @@ -30,7 +30,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w
# For example, a version of 4:0:2 would generate output such as:
# libname.so -> libname.so.2
# libname.so.2 -> libname.so.2.2.0
SET (CARES_LIB_VERSIONINFO "20:1:18")
SET (CARES_LIB_VERSIONINFO "21:1:19")


OPTION (CARES_STATIC "Build as a static library" OFF)
Expand Down Expand Up @@ -406,7 +406,7 @@ ENDIF ()

CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_scope_id "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID LANGUAGE C)


CHECK_SYMBOL_EXISTS (memmem "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_MEMMEM)
CHECK_SYMBOL_EXISTS (closesocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET)
CHECK_SYMBOL_EXISTS (CloseSocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET_CAMEL)
CHECK_SYMBOL_EXISTS (connect "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONNECT)
Expand Down Expand Up @@ -443,6 +443,7 @@ CHECK_SYMBOL_EXISTS (IoctlSocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IOCTLSO
CHECK_SYMBOL_EXISTS (recv "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_RECV)
CHECK_SYMBOL_EXISTS (recvfrom "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_RECVFROM)
CHECK_SYMBOL_EXISTS (send "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SEND)
CHECK_SYMBOL_EXISTS (sendto "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SENDTO)
CHECK_SYMBOL_EXISTS (setsockopt "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SETSOCKOPT)
CHECK_SYMBOL_EXISTS (socket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKET)
CHECK_SYMBOL_EXISTS (strcasecmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRCASECMP)
Expand Down Expand Up @@ -500,7 +501,10 @@ IF (CARES_THREADS)
CARES_EXTRAINCLUDE_IFSET (HAVE_PTHREAD_NP_H pthread_np.h)
CHECK_SYMBOL_EXISTS (pthread_init "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_PTHREAD_INIT)
# Make sure libcares.pc.cmake knows about thread libraries on static builds
LIST (APPEND CARES_DEPENDENT_LIBS ${CMAKE_THREAD_LIBS_INIT})
# The variable set by FIND_PACKAGE(Threads) has a -l prefix on it, we need
# to strip that first since CARES_DEPENDENT_LIBS doesn't expect that.
STRING (REPLACE "-l" "" CARES_THREAD_LIBRARY "${CMAKE_THREAD_LIBS_INIT}")
LIST (APPEND CARES_DEPENDENT_LIBS ${CARES_THREAD_LIBRARY})
ELSE ()
MESSAGE (WARNING "Threading support not found, disabling...")
SET (CARES_THREADS OFF)
Expand Down Expand Up @@ -688,7 +692,6 @@ IF (HAVE_ARPA_NAMESER_COMPAT_H)
SET (CARES_HAVE_ARPA_NAMESER_COMPAT_H 1)
ENDIF()


# Coverage
IF (CARES_COVERAGE)
# set compiler flags
Expand Down Expand Up @@ -755,9 +758,6 @@ IF (CARES_BUILD_TESTS OR CARES_BUILD_CONTAINER_TESTS)
ADD_SUBDIRECTORY (test)
ENDIF ()




# Export targets
IF (CARES_INSTALL)
SET (CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
Expand All @@ -781,7 +781,6 @@ IF (CARES_INSTALL)
INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" COMPONENT Devel DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
ENDIF ()


# Legacy chain-building variables (provided for compatibility with old code).
# Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares).
SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND")
Expand Down
5 changes: 3 additions & 2 deletions deps/cares/Makefile.Watcom
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ CP = copy

CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm -aa &
-wcd=201 -bt=nt -d+ -dCARES_BUILDING_LIBRARY &
-dNTDDI_VERSION=0x06020000 -I. -I.\include -I.\src\lib $(SYS_INCL)
-dNTDDI_VERSION=0x06020000 -I. -I.\include -I.\src\lib -I.\src\lib\include &
$(SYS_INCL)

LFLAGS = option quiet, map, caseexact, eliminate

Expand Down Expand Up @@ -124,7 +125,7 @@ $(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG)
$(OBJ_BASE)\tools\ares_getopt.obj:
$(CC) $(CFLAGS) -DCARES_STATICLIB .\src\tools\ares_getopt.c -fo=$^@

adig.exe: $(OBJ_BASE)\tools\ares_getopt.obj $(LIBNAME).lib
adig.exe: $(LIBNAME).lib
$(CC) $(CFLAGS) src\tools\adig.c -fo=$(OBJ_BASE)\tools\adig.obj
$(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\adig.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib

Expand Down
2 changes: 1 addition & 1 deletion deps/cares/Makefile.dj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ VPATH = src/lib src/tools
WATT32_ROOT = $(realpath $(WATT_ROOT))
WATT32_LIB = $(WATT32_ROOT)/lib/libwatt.a

CFLAGS = -g -O2 -I./include -I./src/lib \
CFLAGS = -g -O2 -I./include -I./src/lib -I./src/lib/include \
-I$(WATT32_ROOT)/inc \
-Wall \
-Wextra \
Expand Down
2 changes: 1 addition & 1 deletion deps/cares/Makefile.m32
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ RANLIB = $(CROSSPREFIX)ranlib
#RM = rm -f
CP = cp -afv

CFLAGS = $(CARES_CFLAG_EXTRAS) -O2 -Wall -I./include -I./src/lib -D_WIN32_WINNT=0x0602
CFLAGS = $(CARES_CFLAG_EXTRAS) -O2 -Wall -I./include -I./src/lib -I./src/lib/include -D_WIN32_WINNT=0x0602
CFLAGS += -DCARES_STATICLIB
LDFLAGS = $(CARES_LDFLAG_EXTRAS) -s
LIBS = -lws2_32 -liphlpapi
Expand Down
11 changes: 1 addition & 10 deletions deps/cares/Makefile.msvc
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ EX_LIBS_DBG = ws2_32.lib advapi32.lib kernel32.lib iphlpapi.lib

CC_CMD_REL = cl.exe /nologo $(RTLIB) /DNDEBUG /O2
CC_CMD_DBG = cl.exe /nologo $(RTLIBD) /D_DEBUG /Od /Zi /RTCsu
CC_CFLAGS = $(CFLAGS) /D_REENTRANT /I.\src\lib /I.\include /W3 /EHsc /FD
CC_CFLAGS = $(CFLAGS) /D_REENTRANT /I.\src\lib /I.\include /I.\src\lib\include /W3 /EHsc /FD

RC_CMD_REL = rc.exe /l 0x409 /d "NDEBUG"
RC_CMD_DBG = rc.exe /l 0x409 /d "_DEBUG"
Expand Down Expand Up @@ -344,15 +344,6 @@ PROG3_OBJS = $(PROG3_OBJS) $(PROG3_OBJDIR)\ahost.obj
{$(SRCDIR)\src\tools}.c{$(PROG3_OBJDIR)}.obj:
$(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$@ /Fd$(PROG3_OBJDIR)\ /c $<

# Hack Alert! we reference ../lib/str files in the Makefile.inc for tools as they
# share some files with the library itself. We need to hack around that here.

{$(SRCDIR)\src\lib\str}.c{$(PROG2_OBJDIR)\..\lib\str}.obj:
$(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG2_OBJDIR)\str\$(@F) /Fd$(PROG2_OBJDIR)\str\ /c $<

{$(SRCDIR)\src\lib\str}.c{$(PROG3_OBJDIR)\..\lib\str}.obj:
$(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG3_OBJDIR)\str\$(@F) /Fd$(PROG3_OBJDIR)\str\ /c $<

# ------------------------------------------------------------- #
# ------------------------------------------------------------- #
# Default target when no CFG library type has been specified, #
Expand Down
9 changes: 7 additions & 2 deletions deps/cares/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ to sign releases):

```bash
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 # Daniel Stenberg
gpg --keyserver hkps://keys.openpgp.org --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
```

### Verifying signatures
Expand All @@ -109,8 +109,11 @@ gpg: binary signature, digest algorithm SHA512, key algorithm rsa2048
```

## Features

See [Features](FEATURES.md)

### Supported RFCs and Proposals
- [RFC1035](https://datatracker.ietf.org/doc/html/rfc7873).
- [RFC1035](https://datatracker.ietf.org/doc/html/rfc1035).
Initial/Base DNS RFC
- [RFC2671](https://datatracker.ietf.org/doc/html/rfc2671),
[RFC6891](https://datatracker.ietf.org/doc/html/rfc6891).
Expand Down Expand Up @@ -151,3 +154,5 @@ gpg: binary signature, digest algorithm SHA512, key algorithm rsa2048
IPv6 address sorting as used by `ares_getaddrinfo()`.
- [RFC7413](https://datatracker.ietf.org/doc/html/rfc7413).
TCP FastOpen (TFO) for 0-RTT TCP Connection Resumption.
- [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986).
Uniform Resource Identifier (URI). Used for server configuration.
Loading
Loading