This will allow us to reuse the scanning protocol with an arbitrary area
scanning function (replacing traceFormatScan) in order to implement
formatted object walking without an extra segment method.
Don't insist on scanning only grey segments: we want to be able to
reuse the scan protocol for walking, when the segments are black.
Git version 2.32 added the backwards-incompatible "feature" that
.gitignore files that are symbolic links are ignored. Since all our
.gitignore files are symbolic links to the .p4ignore file in the same
directory, for compatibility between the Perforce and Git mirrors of
the repository, this broke "git status" for us and all our users.
See https://github.com/git/git/blob/master/Documentation/RelNotes/2.32.0.txt
This change swaps the files so that .p4ignore is a symbolic link to
.gitignore in each case.
As of macOS 10.15 (Catalina), this platform is no longer supported by
Apple, so it is inconvenient to develop and test. The code is left in
place for developers on older versions of macOS.
This is because amcssth fails often on arm64. We believe that this is
not a bug in the arm64 port (because the same failures are observed on
other architectures, but at a much lower frequency), but is rather
because amcssth's lockless multi-threaded updates lead to memory
ordering issues with arm64's relaxed memory ordering rules. We need to
identify all cases where out-of-order updates can happen, and add the
appropriate barriers to prevent them.
See GitHub issue https://github.com/Ravenbrook/mps/issues/59 for details.
This is a patch for the problem outlined in issue https://github.com/Ravenbrook/mps/issues/61 - that the value in
GetLastError() is not automatically saved and restored when a vectored exception
handler is called. This is solved the same way as errno was handled on POSIX
systems.
This patch does *not* save and restore errno on Windows, since it seems like the
MPS does not call any functions that modify errno on the critical path on
Windows (generally only functions from POSIX do that).
This is to illustrate that the value in GetLastError() may be
clobbered by the exception handler on Windows in some
circumstances. As this commit is before the patch, the test currently
fails (clearly showing the issue).
GitHub-reference: https://github.com/Ravenbrook/mps/issues/61
1. Avoid looping over two expressions in parallel when one makes more
sense (compilers can do strength reduction optimization: we don't
need to do it ourselves).
2. Introduce macro ITER_PARALLEL for iterating over two expressions in
parallel, to clarify the intention and explain the need for the
cast to void in the implementation.
3. Add macros SAC_LARGE_ITER and SAC_SMALL_ITER to reduce the amount
of code duplication in sac.c.
The -Wcomma option appears to be turned on automatically by Xcode
12.3, so it's a good idea for the MPS to build with the option, to
avoid unpleasant surprises when people update their Xcode.
The simplest way to suppress the warning is to cast the left hand side
of the comma operator to void.
Clang 10 turns on -Wimplicit-int-float-conversion, and on 64-bit
platforms this issues a warning that implicit conversions to double
from Size and unsigned long "may lose precision".
This commit adds casts to (double) for all such conversions. The loss
of precision is either impossible in practice (because a double can
represent all integers up to 2**53, which is about 9 petabytes, well
beyond the addressing capabilities for current CPUs), or else
acceptable, because we are accumulating an approximate quantity like
"collection work" or "fill size" (that has to cope with loss of
precision due in any case), or computing a threshold like the spare
commit limit where it is acceptable for it to be somewhat approximate.
According to license.txt the new license "supersedes any older licenses that may appear in other files that are part of this distribution and in any of its branches."
* Remove references to MV pool class.
* Typo: "indentifier" for "identifier".
* Use :py:func: to format a Python function.
* Switch out broken link for LinuxThreads.
* Remove doubtful claim about "useful to have two active arenas".
* Document how to have unlimited commited memory.
* Fix cross-reference to mps_arena_commit_limit().
* Clarify what format methods are allowed to access.
* Complete list of functions callable by format methods.