Display Windows NTSTATUS exit codes in hex#11504
Merged
Leonidas-from-XIV merged 2 commits intoocaml:mainfrom Feb 28, 2025
Merged
Display Windows NTSTATUS exit codes in hex#11504Leonidas-from-XIV merged 2 commits intoocaml:mainfrom
NTSTATUS exit codes in hex#11504Leonidas-from-XIV merged 2 commits intoocaml:mainfrom
Conversation
Collaborator
Leonidas-from-XIV
left a comment
There was a problem hiding this comment.
Looks reasonable to me, can you sign the DCO?
2a2a2da to
afd72b6
Compare
Leonidas-from-XIV
approved these changes
Feb 26, 2025
maiste
approved these changes
Feb 26, 2025
afd72b6 to
3488d5e
Compare
On Windows, "negative" exit codes are probably NTSTATUS values. For example, if a program accesses an invalid memory location, Unix sends a SIGSEGV signal which, if unhandled, will terminate the process (setting some kind of non-zero exit code - for example, Linux sets the exit code to 128 + signal number to give a fairly memorable 139). In the equivalent scenario, Windows throws an EXCEPTION_ACCESS_VIOLATION which, if handled by the default exception handler, will terminate the process with exit code STATUS_ACCESS_VIOLATION. These codes are large negative numbers, which are not terribly memorable in decimal, so for negative exit codes we instead display them in hexadecimal as 0xc0000005 is slightly more memorable than -1073741819. Co-authored-by: David Allsopp <david.allsopp@metastack.com> Signed-off-by: Antonin Décimo <antonin@tarides.com>
3488d5e to
916dfbf
Compare
Signed-off-by: Marek Kubica <marek@tarides.com>
Leonidas-from-XIV
added a commit
to Leonidas-from-XIV/dune
that referenced
this pull request
Mar 6, 2025
* Display Windows NTSTATUS exit codes in hex On Windows, "negative" exit codes are probably NTSTATUS values. For example, if a program accesses an invalid memory location, Unix sends a SIGSEGV signal which, if unhandled, will terminate the process (setting some kind of non-zero exit code - for example, Linux sets the exit code to 128 + signal number to give a fairly memorable 139). In the equivalent scenario, Windows throws an EXCEPTION_ACCESS_VIOLATION which, if handled by the default exception handler, will terminate the process with exit code STATUS_ACCESS_VIOLATION. These codes are large negative numbers, which are not terribly memorable in decimal, so for negative exit codes we instead display them in hexadecimal as 0xc0000005 is slightly more memorable than -1073741819. Co-authored-by: David Allsopp <david.allsopp@metastack.com> Signed-off-by: Antonin Décimo <antonin@tarides.com> * Add changelog entry Signed-off-by: Marek Kubica <marek@tarides.com> --------- Signed-off-by: Antonin Décimo <antonin@tarides.com> Signed-off-by: Marek Kubica <marek@tarides.com> Co-authored-by: David Allsopp <david.allsopp@metastack.com> Co-authored-by: Marek Kubica <marek@tarides.com>
maiste
added a commit
to maiste/opam-repository
that referenced
this pull request
Mar 31, 2025
CHANGES: ### Fixed - Support HaikuOS: don't call `execve` since it's not allowed if other pthreads have been created. The fact that Haiku can't call `execve` from other threads than the principal thread of a process (a team in haiku jargon), is a discrepancy to POSIX and hence there is a [bug about it](https://dev.haiku-os.org/ticket/18665). (@Sylvain78, ocaml/dune#10953) - Fix flag ordering in generated Merlin configurations (ocaml/dune#11503, @voodoos, fixes ocaml/merlin#1900, reported by @vouillon) ### Added - Add `(format-dune-file <src> <dst>)` action. It provides a replacement to `dune format-dune-file` command. (ocaml/dune#11166, @nojb) - Allow the `--prefix` flag when configuring dune with `ocaml configure.ml`. This allows to set the prefix just like `$ dune install --prefix`. (ocaml/dune#11172, @rgrinberg) - Allow arguments starting with `+` in preprocessing definitions (starting with `(lang dune 3.18)`). (@amonteiro, ocaml/dune#11234) - Support for opam `(maintenance_intent ...)` in dune-project (ocaml/dune#11274, @art-w) - Validate opam `maintenance_intent` (ocaml/dune#11308, @art-w) - Support `not` in package dependencies constraints (ocaml/dune#11404, @art-w, reported by @hannesm) ### Changed - Warn when failing to discover root due to reads failing. The previous behavior was to abort. (@KoviRobi, ocaml/dune#11173) - Use shorter path for inline-tests artifacts. (@hhugo, ocaml/dune#11307) - Allow dash in `dune init` project name (ocaml/dune#11402, @art-w, reported by @saroupille) - On Windows, under heavy load, file delete operations can sometimes fail due to AV programs, etc. Guard against it by retrying the operation up to 30x with a 1s waiting gap (ocaml/dune#11437, fixes ocaml/dune#11425, @MSoegtropIMC) - Cache: we now only store the executable permission bit for files (ocaml/dune#11541, fixes ocaml/dune#11533, @ElectreAAS) - Display negative error codes on Windows in hex which is the more customary way to display `NTSTATUS` codes (ocaml/dune#11504, @MisterDA)
maiste
added a commit
to maiste/opam-repository
that referenced
this pull request
Apr 3, 2025
CHANGES: ### Fixed - Support HaikuOS: don't call `execve` since it's not allowed if other pthreads have been created. The fact that Haiku can't call `execve` from other threads than the principal thread of a process (a team in haiku jargon), is a discrepancy to POSIX and hence there is a [bug about it](https://dev.haiku-os.org/ticket/18665). (@Sylvain78, ocaml/dune#10953) - Fix flag ordering in generated Merlin configurations (ocaml/dune#11503, @voodoos, fixes ocaml/merlin#1900, reported by @vouillon) ### Added - Add `(format-dune-file <src> <dst>)` action. It provides a replacement to `dune format-dune-file` command. (ocaml/dune#11166, @nojb) - Allow the `--prefix` flag when configuring dune with `ocaml configure.ml`. This allows to set the prefix just like `$ dune install --prefix`. (ocaml/dune#11172, @rgrinberg) - Allow arguments starting with `+` in preprocessing definitions (starting with `(lang dune 3.18)`). (@amonteiro, ocaml/dune#11234) - Support for opam `(maintenance_intent ...)` in dune-project (ocaml/dune#11274, @art-w) - Validate opam `maintenance_intent` (ocaml/dune#11308, @art-w) - Support `not` in package dependencies constraints (ocaml/dune#11404, @art-w, reported by @hannesm) ### Changed - Warn when failing to discover root due to reads failing. The previous behavior was to abort. (@KoviRobi, ocaml/dune#11173) - Use shorter path for inline-tests artifacts. (@hhugo, ocaml/dune#11307) - Allow dash in `dune init` project name (ocaml/dune#11402, @art-w, reported by @saroupille) - On Windows, under heavy load, file delete operations can sometimes fail due to AV programs, etc. Guard against it by retrying the operation up to 30x with a 1s waiting gap (ocaml/dune#11437, fixes ocaml/dune#11425, @MSoegtropIMC) - Cache: we now only store the executable permission bit for files (ocaml/dune#11541, fixes ocaml/dune#11533, @ElectreAAS) - Display negative error codes on Windows in hex which is the more customary way to display `NTSTATUS` codes (ocaml/dune#11504, @MisterDA)
Contributor
Author
|
The |
Collaborator
|
@MisterDA, I didn't test, but my bet would be it is in the verbose function. Maybe by modifying this variable you can get the verbose output correct. |
anmonteiro
pushed a commit
to anmonteiro/dune
that referenced
this pull request
Apr 22, 2025
* Display Windows NTSTATUS exit codes in hex On Windows, "negative" exit codes are probably NTSTATUS values. For example, if a program accesses an invalid memory location, Unix sends a SIGSEGV signal which, if unhandled, will terminate the process (setting some kind of non-zero exit code - for example, Linux sets the exit code to 128 + signal number to give a fairly memorable 139). In the equivalent scenario, Windows throws an EXCEPTION_ACCESS_VIOLATION which, if handled by the default exception handler, will terminate the process with exit code STATUS_ACCESS_VIOLATION. These codes are large negative numbers, which are not terribly memorable in decimal, so for negative exit codes we instead display them in hexadecimal as 0xc0000005 is slightly more memorable than -1073741819. Co-authored-by: David Allsopp <david.allsopp@metastack.com> Signed-off-by: Antonin Décimo <antonin@tarides.com> * Add changelog entry Signed-off-by: Marek Kubica <marek@tarides.com> --------- Signed-off-by: Antonin Décimo <antonin@tarides.com> Signed-off-by: Marek Kubica <marek@tarides.com> Co-authored-by: David Allsopp <david.allsopp@metastack.com> Co-authored-by: Marek Kubica <marek@tarides.com>
Sudha247
pushed a commit
to Sudha247/dune
that referenced
this pull request
Jul 23, 2025
* Display Windows NTSTATUS exit codes in hex On Windows, "negative" exit codes are probably NTSTATUS values. For example, if a program accesses an invalid memory location, Unix sends a SIGSEGV signal which, if unhandled, will terminate the process (setting some kind of non-zero exit code - for example, Linux sets the exit code to 128 + signal number to give a fairly memorable 139). In the equivalent scenario, Windows throws an EXCEPTION_ACCESS_VIOLATION which, if handled by the default exception handler, will terminate the process with exit code STATUS_ACCESS_VIOLATION. These codes are large negative numbers, which are not terribly memorable in decimal, so for negative exit codes we instead display them in hexadecimal as 0xc0000005 is slightly more memorable than -1073741819. Co-authored-by: David Allsopp <david.allsopp@metastack.com> Signed-off-by: Antonin Décimo <antonin@tarides.com> * Add changelog entry Signed-off-by: Marek Kubica <marek@tarides.com> --------- Signed-off-by: Antonin Décimo <antonin@tarides.com> Signed-off-by: Marek Kubica <marek@tarides.com> Co-authored-by: David Allsopp <david.allsopp@metastack.com> Co-authored-by: Marek Kubica <marek@tarides.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
On Windows, "negative" exit codes are probably
NTSTATUSvalues. For example, if a program accesses an invalid memory location, Unix sends aSIGSEGVsignal which, if unhandled, will terminate the process (setting some kind of non-zero exit code - for example, Linux sets the exit code to 128 + signal number to give a fairly memorable 139). In the equivalent scenario, Windows throws anEXCEPTION_ACCESS_VIOLATIONwhich, if handled by the default exception handler, will terminate the process with exit codeSTATUS_ACCESS_VIOLATION. These codes are large negative numbers, which are not terribly memorable in decimal, so for negative exit codes we instead display them in hexadecimal as0xc0000005is slightly more memorable than-1073741819.