Skip to content

new_installer.py: support forkserver#51788

Merged
alalazo merged 1 commit intodevelopfrom
hs/fix/new-installer-forkserver-support
Jan 9, 2026
Merged

new_installer.py: support forkserver#51788
alalazo merged 1 commit intodevelopfrom
hs/fix/new-installer-forkserver-support

Conversation

@haampie
Copy link
Copy Markdown
Member

@haampie haampie commented Dec 18, 2025

This adds support for Python 3.14 in the new installer. The issue solved is
that the classic self-pipe trick does not work for forkserver, because
the forkserver process receives the signal that a child has finished, not the
parent process. So, the UI never updates and we never progress to the next
build.

This change is also nice for Python < 3.14, as it avoids the O(n) search for
finished subprocesses. Finally it's slightly more non-unix compatible (not that
Windows is supported now).

This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
@alalazo alalazo self-assigned this Jan 9, 2026
@alalazo alalazo merged commit 594007f into develop Jan 9, 2026
30 of 31 checks passed
@alalazo alalazo deleted the hs/fix/new-installer-forkserver-support branch January 9, 2026 10:00
@alalazo alalazo added the v1.1.1 label Jan 9, 2026
@becker33 becker33 mentioned this pull request Jan 10, 2026
2 tasks
becker33 pushed a commit that referenced this pull request Jan 11, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 11, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 12, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 15, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
vjranagit pushed a commit to vjranagit/spack that referenced this pull request Jan 18, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 22, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Jan 26, 2026
This adds support for Python 3.14 in the new installer. The issue is
that the classic self-pipe trick does not work for `forkserver`, because
there the forkserver process receives the signal that a child has
finished, not the parent process.

What's more, it avoids the O(n) search for finished subprocesses,
whether forkserver or not. Finally it's slightly more non-unix
compatible (not that Windows is supported now).

Signed-off-by: Harmen Stoppels <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants