-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Status interface #1631
Status interface #1631
Conversation
This comment was marked as abuse.
This comment was marked as abuse.
Edges are nominally ordered by order in the build manifest, but in fact are ordered by memory address. In most cases the memory address will be monontonically increasing. Since serialized build output will need unique IDs, add a monotonically increasing ID to edges, and use that for sorting instead of memory address.
Working on it right now. |
e98940c
to
f611ed7
Compare
43d8568
to
d89f457
Compare
The times that end up in the build log currently originate in the status printer, and are propagated back out to the Builder. Move the edge times into the Builder instead, and move the overall start time into NinjaMain so it doesn't get reset during manifest rebuilds.
Store the number of running edges instead of trying to compute it from the started and finshed edge counts, which may be different for starting and ending status messages. Allows removing the status parameter to PrintStatus and the EdgeStatus enum.
af1c1a5
to
7ce05a1
Compare
1f8dc42
to
9051ea4
Compare
Make BuildStatus an abstract interface, and move the current implementation to StatusPrinter, to make way for a serialized Status output.
Send all output after manifest parsing is finished to the Status interface, so that when status frontends are added they can handle build messages.
9051ea4
to
9383724
Compare
Can you rebase on master? |
Absolutely, will do in the next few hours.
…On Tue, Feb 4, 2020, 9:56 AM Jan Niklas Hasse ***@***.***> wrote:
Can you rebase on master?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1631?email_source=notifications&email_token=AARWGZ7JUKBVDXH3D2XEXJDRBGM4LA5CNFSM4IKWCCN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKYL66Q#issuecomment-582008698>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARWGZZ4G3IMKNUART3NG7TRBGM4LANCNFSM4IKWCCNQ>
.
|
I've been working on this rebase as I can. It's taken quite a bit longer
than I expected. There's lots of great feedback on the PR. In doing the
rebase I'm starting to realize how meandering the many commits are. It may
be better for me to start over and create a PR that does the same work in
far fewer commits. This will make for less working for reviewers.
…On Tue, Feb 4, 2020 at 9:42 AM Eli Ribble ***@***.***> wrote:
Absolutely, will do in the next few hours.
On Tue, Feb 4, 2020, 9:56 AM Jan Niklas Hasse ***@***.***>
wrote:
> Can you rebase on master?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#1631?email_source=notifications&email_token=AARWGZ7JUKBVDXH3D2XEXJDRBGM4LA5CNFSM4IKWCCN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKYL66Q#issuecomment-582008698>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AARWGZZ4G3IMKNUART3NG7TRBGM4LANCNFSM4IKWCCNQ>
> .
>
|
Did you have a look at my rebase? https://github.com/jhasse/ninja/commits/serialize I've recently done it for 1.10, the tests don't compile yet though. |
Just the first commit: #1866 |
Are you still working on this? If so, please rebase and reopen. |
I'm no longer working on this - as mentioned in the discussion at #1499 - it seems the maintainers are not interested since they would not engage in conversation around it. |
This is a subset of PR #1600 which adds a new frontend. This is designed to avoid the controversy around what data format is used for the new frontend and whether ninja creates the subprocess. This change will form the base of making a ninja library by allowing library clients to define their own status reporter class.