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

removing unused passes #197

Closed
rhalstea opened this issue Dec 20, 2016 · 6 comments
Closed

removing unused passes #197

rhalstea opened this issue Dec 20, 2016 · 6 comments
Assignees

Comments

@rhalstea
Copy link
Contributor

After removing a .cpp and .h file for an unneeded pass I try to recompile and get a "No such file or directory" error. It looks like one of the unified-sources-<backend>-<n>.cpp doesn't get rid of the removed files.

Is there a better way to handle this than deleting the build folder, and rebuilding from scratch?

@rhalstea
Copy link
Contributor Author

I did some background reading about unit builds and this is one of the common disadvantages traded off for faster builds.

I'm still curious if there is a way to rebuild without deleting the build folder, or does bootstrap always have to be run in this case?

@ChrisDodd
Copy link
Contributor

Just rerunning bootstrap.sh should be enough to regenerate the Makefiles in this case -- its not necessary to actually delete the entire build directory. Part of the problem is that bootstrap.sh is generating a couple of .am files that automake then processes; we have no rules in the Makefile to regenerate those files if something changes; we should look into doing that.

@sethfowler
Copy link
Contributor

Yep. As I understand it from my discussion with Chris, automake adds rules to the output Makefile that trigger regeneration of the Makefile if one of the automake input files (Makefile.am etc) changes. We just need to detect this case and rerun the program that generates unified-compilation.am before automake is rerun. I'd expect that to be a straightforward matter of adding an additional make rule that does the job. I need to take a quick look at the structure of the rules automake generates, but I don't foresee any problems.

@sethfowler
Copy link
Contributor

FWIW, I have patches that implement this, but I can't push them to Github because there's an issue with my fork of the p4c repository. I've contacted them and I'm hoping that'll get straightened out by tomorrow.

@rhalstea
Copy link
Contributor Author

Thanks.

Is your fork "temporarally unavailable" on GitHub? I had the same issue when p4lang/p4c.git went public. I contacted them, but they couldn't give a time estimate for the fix. After a day I just deleted the repo and re-forked it which seemed to work.

@sethfowler
Copy link
Contributor

Yeah, that's my problem! That's a good idea; I'll delete and refork.

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

No branches or pull requests

3 participants