On Nov-15, Leopold Toetsch wrote:
> Steve Fink wrote:
> 
> >I replied to ticket #16941 a while back but I don't think I had RT
> >actually send any mail to anybody. Anyone have an opinion on the patch
> >I put in it? (I'm trying to clean out some local changes so I can
> >apply other people's patches more easily.)
> >
> >Thanks.
> 
> I don't like it very much, to run make regen_all while developing, but 
> anyway, I always can hack my local Makefile.

I don't understand. The patch never runs anything unnecessarily; it
just replaces make's timestamp-based dependency check with a
checksum-based check. So it unconditionally runs the runyacc script,
but that script only runs yacc/bison if it needs to. As long as you
don't change imcc.y, yacc will never run.

Or am I misunderstanding your objection?

Checksum-based dependency analysis has been used successfully in other
projects. For example, I think that Cons defaults to using it
exclusively.

Note that the patch would require a few changes: it should be used for
running lex as well as yacc, and the 'runyacc' script should be
renamed to something more neutral
('regenerate-if-outdated-something-that-generates-C-code').

> So, if we don't have an option, that after CVS checkin the generated 
> files are touched automatically it would be better to apply #16941.

I'm not sure, but I don't think CVS is guaranteed to obey checkin
order on checkout. I think it just checks out in directory order.

As for #16941, which completely removes the dependencies and instead
requires the user to manually do a 'make regen_all': I could live with
it, but I'd rather not. I've spent too much of my life tracking down
mysterious failures that caused by me forgetting to regenerate
something or other. And I'm not growing a lot of new brain cells these
days, so I'd prefer an automated solution.

Another alternative would be to have Configure.pl update the
timestamps in the correct order, but my initial attempt to implement
something like that felt much too hackish -- or, at least, too hackish
considering that it's only a partial solution; I don't always rerun
Configure.pl after every update, so I'm likely to mess it up anyway.

Reply via email to