Skip to content
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

Closed
wants to merge 5 commits into from
Closed

Conversation

EliRibble
Copy link

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.

@jonesmz

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.
@EliRibble
Copy link
Author

Working on it right now.

@EliRibble EliRibble force-pushed the status-interface branch 2 times, most recently from e98940c to f611ed7 Compare August 12, 2019 17:50
src/build.cc Show resolved Hide resolved
src/build.cc Outdated Show resolved Hide resolved
src/build.h Show resolved Hide resolved
src/build.h Outdated Show resolved Hide resolved
src/build.h Show resolved Hide resolved
src/ninja.cc Outdated Show resolved Hide resolved
src/status.cc Show resolved Hide resolved
src/status.cc Outdated Show resolved Hide resolved
src/status.h Outdated Show resolved Hide resolved
src/status.h Show resolved Hide resolved
@EliRibble EliRibble force-pushed the status-interface branch 2 times, most recently from 43d8568 to d89f457 Compare August 12, 2019 22:46
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.
@EliRibble EliRibble force-pushed the status-interface branch 2 times, most recently from af1c1a5 to 7ce05a1 Compare August 13, 2019 16:55
src/state.h Show resolved Hide resolved
@EliRibble EliRibble force-pushed the status-interface branch 3 times, most recently from 1f8dc42 to 9051ea4 Compare August 14, 2019 17:37
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.
@jhasse jhasse added this to the 1.11.0 milestone Nov 12, 2019
@jhasse
Copy link
Collaborator

jhasse commented Feb 4, 2020

Can you rebase on master?

@EliRibble
Copy link
Author

EliRibble commented Feb 4, 2020 via email

@EliRibble
Copy link
Author

EliRibble commented Feb 7, 2020 via email

@jhasse
Copy link
Collaborator

jhasse commented Feb 7, 2020

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.

@jhasse
Copy link
Collaborator

jhasse commented Oct 30, 2020

Just the first commit: #1866

@jhasse
Copy link
Collaborator

jhasse commented Dec 3, 2020

Are you still working on this? If so, please rebase and reopen.

@jhasse jhasse closed this Dec 3, 2020
@EliRibble
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants