bugGNU Octave - Bugs: bug #51678, YACC always run for oct-parse.h...

 
 

bug #51678: YACC always run for oct-parse.h and oct-text-parser.h

Submitted by:  Rik <rik5>
Submitted on:  Mon 07 Aug 2017 01:28:34 AM UTC  
 
Category: Configuration and Build SystemSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Performance
Status: Wont FixAssigned to: None
Originator Name: Open/Closed: Closed
Release: devOperating System: Any

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Mon 07 Aug 2017 05:43:23 PM UTC, comment #5:

FWIW my workaround is usually to just look for all the files that say "is unchanged" in the build output, delete them manually, rebuild, and that takes care of putting all the timestamps in the right order. And is usually a little faster than a full rebuild after a maintainer-clean.

Mike Miller <mtmiller>
Project Administrator
Mon 07 Aug 2017 04:26:45 PM UTC, comment #4:

OTOH, maybe we don't really want to disable ALL uses of move-if-change. I just tried this edit to the generated Makefile

and then each time make runs, we end up generating some build scripts and relinking all the .oct files. I'm looking to see whether there is a good compromise (mostly disable move-if-change) but ultimately this may not be worth fixing.

John W. Eaton <jwe>
Project Administrator
Mon 07 Aug 2017 03:38:10 PM UTC, comment #3:

We could have a "--disable-move-if-change" configure option. With ccache having move-if-change is not as important.

John W. Eaton <jwe>
Project Administrator
Mon 07 Aug 2017 03:13:10 PM UTC, comment #2:

Okay, I did a 'make maintainer-clean' and then re-built everything and it no longer does this. It's annoying that even a developer used to the build system can forget this little failing. In any case, I don't think we're going to change things any time soon so I have marked this as "Won't Fix" and am closing the report.

Rik <rik5>
Project Administrator
Mon 07 Aug 2017 01:32:01 AM UTC, comment #1:

If you delete those two files, they will be rebuilt and their timestamps will be updated. This will cause a chain reaction of other things to be rebuilt and relinked, but the build will no longer continue calling YACC.

This is a standard side effect of our move-if-change rules. If the prerequisite is updated, but the contents of the output don't change, we don't update the timestamp to avoid unnecessary rebuilds.

Mike Miller <mtmiller>
Project Administrator
Mon 07 Aug 2017 01:28:34 AM UTC, original submission:

I can run make repeatedly, and all built files are up-to-date, but the build system continues to call YACC to build these two files. The performance hit isn't huge, but it is annoying.

Sample Log of make

Rik <rik5>
Project Administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jwe (Posted a comment)
  • -unavailable- added by mtmiller (Posted a comment)
  • -unavailable- added by rik5 (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon 07 Aug 2017 03:13:10 PM UTCrik5StatusNone=>Wont Fix
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1