Skip to content

Use the %run hook function for running binaries. #90

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

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

jpco
Copy link
Collaborator

@jpco jpco commented Feb 7, 2024

Resolves #80.

I'm actually not sure if it's better to go with this "use the primitive if %run is unset" fallback, or to just throw an error if %run happens to be unset. The former is more useful but the latter is more consistent.

@jpco
Copy link
Collaborator Author

jpco commented Jul 8, 2024

Well, I was coming back to switch this to the more-consistent behavior (throw an error if %run isn't set) but it seems like there's a memory bug in this PR that causes es to crash with -DGCDEBUG=1 with the commands

fn-%run = ()
exit

EDIT: Actually, I was wrong, I think this might have been one of the recent exception-related bug fixes that haven't been merged into my development branch. It works at head.

@jpco
Copy link
Collaborator Author

jpco commented Nov 27, 2024

@wryun, any opinion on this? It's not even approximately a bug fix so I don't feel confident merging it unilaterally.

jpco added a commit to jpco/es-shell that referenced this pull request Mar 10, 2025
This PR combines:
 - PR wryun#149, "Add a few things to make $&waiting more flexible."
 - PR wryun#90, "Use the %run hook function for running binaries."
 - A heap of new logic in proc.c and prim-sys.c, generally much cleaner
   than in the original newjobcontrol branch
 - Support for '+signame' signal handling to sig_ignore in the shell pgrp
 - A draft share/job-control.es script

Overall things seem pretty solid.  It even builds and runs successfully
right now with `-ansi -D_POSIX_C_SOURCE=200112L -pedantic -DGCDEBUG=1`,
which is a pleasant surprise.

It still needs:
 - A lot of testing
 - Some more refactoring of pgroup handling, especially around exit
   statuses
 - Follow-up on WCONTINUED and WIFCONTINUED alternatives in POSIX.1-2001
   (or whether ifdef'ing is worth it)
 - A way to hook the %interactive-loop to add signal handlers and run
   newpgrp on startup (this is a blocker to running job-control.es from
   .esrc right now)
jpco added a commit to jpco/es-shell that referenced this pull request Mar 10, 2025
This PR combines:
 - PR wryun#149, "Add a few things to make $&waiting more flexible."
 - PR wryun#90, "Use the %run hook function for running binaries."
 - A heap of new logic in proc.c and prim-sys.c, generally much cleaner
   than in the original newjobcontrol branch
 - Support for '+signame' signal handling to sig_ignore in the shell pgrp
 - A draft share/job-control.es script

Overall things seem pretty solid.  It even builds and runs successfully
right now with `-ansi -D_POSIX_C_SOURCE=200112L -pedantic -DGCDEBUG=1`,
which is a pleasant surprise.

It still needs:
 - A lot of testing
 - Some more refactoring of pgroup handling, especially around exit
   statuses
 - Follow-up on WCONTINUED and WIFCONTINUED alternatives in POSIX.1-2001
   (or whether ifdef'ing is worth it)
 - A way to hook the %interactive-loop to add signal handlers and run
   newpgrp on startup (this is a blocker to running job-control.es from
   .esrc right now)
jpco added a commit to jpco/es-shell that referenced this pull request Mar 10, 2025
This PR combines:
 - PR wryun#149, "Add a few things to make $&waiting more flexible."
 - PR wryun#90, "Use the %run hook function for running binaries."
 - A heap of new logic in proc.c and prim-sys.c, generally much cleaner
   than in the original newjobcontrol branch
 - Support for '+signame' signal handling to sig_ignore in the shell pgrp
 - A draft share/job-control.es script

Overall things seem pretty solid.  It even builds and runs successfully
right now with `-ansi -D_POSIX_C_SOURCE=200112L -pedantic -DGCDEBUG=1`,
which is a pleasant surprise.

It still needs:
 - A lot of testing
 - Some more refactoring of pgroup handling, especially around exit
   statuses
 - Follow-up on WCONTINUED and WIFCONTINUED alternatives in POSIX.1-2001
   (or whether ifdef'ing is worth it)
 - A way to hook the %interactive-loop to add signal handlers and run
   newpgrp on startup (this is a blocker to running job-control.es from
   .esrc right now)
jpco added a commit to jpco/es-shell that referenced this pull request Jun 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Should %run be the built-in way binaries are run?
1 participant