There's no reason to find the table ahead of time now that we don't
need the interrupt line immedietely. It was also one of the only users
of the StaticParsing find_table code.
Splitting it off allows initializing the later than right after Parser
creation, which allows us to move more resposibility to the Parser
instead of mapping the FADT twice.
This should hopefully get rid of a handful of release_value_but_fixme,
while also making it more likely that we boot on systems where ACPI is
doing something weird (cases we cannot handle yet). While this is
unlikely to occur with our currect range of supported ACPI stuff, when
we add AML interpreting it's quite likely that we will encounter a
cursed DSDT at some point that should not crash the entire system
without a meaningful error.
Per POSIX:
If either the old or new argument names a symbolic link, rename() shall
operate on the symbolic link itself, and shall not resolve the last
component of the argument.
Per POSIX:
If path names a symbolic link, mkdir() shall fail and set errno to
[EEXIST].
The test needs to be done in a subfolder of /tmp, I suppose that it
comes from the custom branch for mounted folders in
`resolve_path_without_veil`. Otherwise, the behavior is quite different
and seems to involve other bugs too.
The correct POSIX behaviour when changing directory is to resolve the
path logically, not following symlinks. Optionally having the -P flag to
resolve the path physically, which follows symlinks.
The singleton class has the side effect of not calling the destructor of
the class, so ~SignalHandlers() was never called and the signal handlers
were never restored.
While restoring the signal handlers at exit is useless in most cases,
this patch fixes a hang at exit when running Shell in a configuration
using GCC and LSan. The sanitizers create a child process to be able
to monitor the parent. Then, when this child exits, the SIGCHLD signal
tried to run the handler installed by Shell, this caused ASan to trip
while LSan was running which causes the hang.
This will be reverted in its entirety once Zig 0.17.1 is released.
I don't know when that will happen so for now let's just make the
package script a bit worse :^)
Note that the current implementation of lgamma doesn't work for negative
values of x. But given that Stirling's approximation is also only
defined for positive values of x, this patch don't change anything in
that regard.
On some platforms, like macOS on ARM, long double is a different type
but has the exact same characteristics as a normal double. When it is
the case, define FloatExtractor<long double> as an alias to
FloatExtractor<double>.