git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Makefile: add and use the ".DELETE_ON_ERROR" flag

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Jul 3, 2021, 18:42 UTC
Message-ID
<60e0af8f1636d_2f720865@natae.notmuch>
In-Reply-To
<87k0m78sc7.fsf@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason wrote:
Show 44 quoted lines
> 
> On Fri, Jul 02 2021, Felipe Contreras wrote:
> 
> > Ævar Arnfjörð Bjarmason wrote:
> >> On Wed, Jun 30 2021, Felipe Contreras wrote:
> >> > Ævar Arnfjörð Bjarmason wrote:
> >> 
> >> >> Even if you don't care about the end result or making git easier to hack
> >> >> on for people who don't share your setup,
> >> >
> >> > I don't know about Junio, I do want to make git easier to hack for
> >> > people that don't share my setup, but I would like to know what that
> >> > setup is.
> >> 
> >> I think all of this is covered in detail upthread.
> >
> > From [1] I understand some systems have a problem clobbering a binary
> > that is being run. So if you are running a test that is using a binary
> > that you are rebuilding at the same time, you get an error.
> >
> > OK.
> >
> > I still don't see why anyone would want to rebuild the binary in the
> > middle of running tests. The result of the tests is only meaningful for
> > a particular build. This is what I don't get. I get that you want to do
> > this, what I don't get is *why*.
> 
> This is mostly covered upthread & in the linked thread(s), but as
> summary / elaboration:
> 
>  1. Running the tests on some of these machines takes 30-45 minutes. A
>     common use-case is firing off a test run to see how bright the
>     dumpster fire is that day, noticing an early failure, and inspecting
>     it manually.
> 
>     Then while the rest of the full run is underway I'd like to
>     re-compile and e.g. add some printf debugging guarded by a getenv()
>     to some isolated code I'm poking, it's nice if the full test run
>     isn't invalidated by that.
> 
>     Keep in mind that it takes 30-45 minutes because it's *slooooooow*,
>     so "just use another workdir" isn't a viable option. I'm also going
>     to wait 10-20 minutes for another full recompile in that workdir
>     (and now the concurrent test run takes more than an hour).
OK. If you are careful enough that makes sense.
Show 6 quoted lines
>  2. We have bugs in the test suite that e.g. leave orphaned git-daemon
>     background processes on these platforms.
> 
>     Yes that should be fixed, but fixing it is annoying when you can't
>     even recompile and run other (even more broken) tests due to the bug
>     you're trying to fix.
Yeah, that's a separate issue.
>  3. You're assuming that the only thing I might want to use the built
>     git for is the tests.
Not really.
>  4. I think you/Junio/Jeff (although maybe less so in Jeff's case) are
>     taking this axiom that thou shalt not recompile during tests as an
>     absolute.

Just like in language I'm not a prescriptivist in workflows either. The fact that I don't recompile during tests doesn't mean I would presume to dictate to others what they should do.

You know more about your setup than me.
Show 9 quoted lines
> I think you've also said something to the effect that the 3rd party tool
> should be the thing doing the in-place-rename if needed, fair
> enough.
> 
> But claiming that it's both an external implementation detail (so it
> could do an in-place rename, or not), and also maintaining that we can't
> do in-place rename ourselves because doing so would enable bad thing XYZ
> to happen (i.e. this concurrent test thing), seems like a case of
> wanting to have your cake and eat it too.

I never claimed we can't do in-place rename ourselves, I only said that I did not see the point. And to be clear the fact that I don't see it doesn't mean it isn't here.

Now I see why you want this and I suppose for this particular case only it does make sense to do the renaming. But it still seems like a wart to me. If the build system supported out-of-tree builds there would be no need for us to do this manually in the Makefile, correct?

But yeah, for now I suppose there's no better alternative.
-- 
Felipe Contreras
Previous: Ævar Arnfjörð BjarmasonNext: Felipe Contreras
Message 19 of 35 in “Makefile: add and use the ".DELETE_ON_ERROR" flag”
  1. Makefile: add and use the ".DELETE_ON_ERROR" flagÆvar Arnfjörð Bjarmason, Jun 22, 2021
  2. Taylor BlauJun 22, 2021
  3. Ævar Arnfjörð BjarmasonJun 22, 2021
  4. Jeff KingJun 22, 2021
  5. Ævar Arnfjörð BjarmasonJun 23, 2021
  6. Jeff KingJun 23, 2021
  7. Ævar Arnfjörð BjarmasonJun 24, 2021
  8. Jeff KingJun 24, 2021
  9. Ævar Arnfjörð BjarmasonJun 25, 2021
  10. Jeff KingJun 29, 2021
  11. Junio C HamanoJun 29, 2021
  12. Ævar Arnfjörð BjarmasonJun 29, 2021
  13. Junio C HamanoJun 29, 2021
  14. Jeff KingJun 30, 2021
  15. Felipe ContrerasJul 1, 2021
  16. Ævar Arnfjörð BjarmasonJul 1, 2021
  17. Felipe ContrerasJul 3, 2021
  18. Ævar Arnfjörð BjarmasonJul 3, 2021
  19. Felipe ContrerasJul 3, 2021
  20. Felipe ContrerasJun 23, 2021
  21. Felipe ContrerasJun 23, 2021
  22. Felipe ContrerasJun 23, 2021
  23. Ævar Arnfjörð BjarmasonJun 23, 2021
  24. Felipe ContrerasJun 23, 2021
  25. Ævar Arnfjörð BjarmasonJun 29, 2021
  26. Felipe ContrerasJul 1, 2021
  27. Felipe ContrerasJun 23, 2021
  28. Ævar Arnfjörð BjarmasonJun 23, 2021
  29. Felipe ContrerasJun 23, 2021
  30. Ævar Arnfjörð BjarmasonJun 29, 2021
  31. Felipe ContrerasJul 1, 2021
  32. Makefile: add and use the ".DELETE_ON_ERROR" flagÆvar Arnfjörð Bjarmason, Jun 29, 2021
  33. Makefile: remove archives before manipulating them with 'ar'SZEDER Gábor, Aug 18, 2021
  34. Junio C HamanoAug 19, 2021
  35. Ævar Arnfjörð BjarmasonSep 1, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.