Call for 1.10.1 testing: Delay opening logfiles, macOS 10.12

Skip to first unread message

Jan Niklas Hasse

Aug 3, 2020, 7:08:54 AM8/3/20
to ninja-build
Hi everyone,

we'd like to release 1.10.1 from current master.

1.10.0 introduced the restat tool, which CMake 3.17 uses to update the timestamps in .ninja_log to avoid having to run some rules twice after regenerating. This didn't work on Windows though, as you can't write to a file which is opened for writing by another process there. To clarify what I mean imagine you have the following hierarchy:

a.) ninja
b.) -> regenerate by calling CMake
c.) -> -> CMake calls ninja -t restat
d.) ninja continues the build and rereads the build manifest

Between a.) and d.) the outer ninja process would (unnecessarily) open .ninja_log, but not write anything to it yet. c.) would then fail on Windows.

After ninja will now open .ninja_log on the first write - so during d.) - or if it has finished. In the future we could even avoid creating .ninja_log if it would be empty, but I didn't want to change too much of the behavior in a minor release (it would also require touching some unit tests).

The other change is that the automatic build on GitHub Actions now builds binaries compatible with macOS 10.12 (previously they required 10.14 IIRC).

Please test a build of the master branch with your projects and report any problems. Thanks!

Brad King

Aug 3, 2020, 10:56:35 AM8/3/20
On 8/3/2020 7:08 AM, Jan Niklas Hasse wrote:
> we'd like to release 1.10.1 from current master.
> After

I just tested Ninja `master` as of commit 00968321d6 on Windows.
I locally hacked its version number to be 1.10.1. With that, the
problem from is
fixed. I've posted a merge request to CMake:

to remove our workaround for Ninja 1.10.1 and above. I've closed the
CMake merge request temporarily until Ninja 1.10.1 is actually released,
but once it is I'll re-open and merge the CMake change.


Aug 18, 2020, 3:43:03 PM8/18/20
to ninja-build
Thanks! Since there haven't been any objections, I've just released 1.10.1 on GitHub.
Reply all
Reply to author
0 new messages