RESOLVED FIXED 160031
REGRESSION(r62549): Objective-C DOM bindings sometimes fail to regenerate when CodeGenerator.pm is modified
https://bugs.webkit.org/show_bug.cgi?id=160031
Summary REGRESSION(r62549): Objective-C DOM bindings sometimes fail to regenerate whe...
Blaze Burg
Reported 2016-07-21 10:37:03 PDT
Ryosuke wrote: "Objective-C bindings files may fail to re-generate after https://trac.webkit.org/changeset/203337. Simply trigger clean rebuilds or delete files under DerivedSources/WebCore/ and it should go away." I hit this myself when moving past r203337. I think we have a bad dependency somewhere. Let's investigate in this bug.
Attachments
Proposed Fix (2.51 KB, patch)
2016-07-21 15:29 PDT, Blaze Burg
no flags
Darin Adler
Comment 1 2016-07-21 13:26:57 PDT
Ryosuke’s theory was that the binding generator doesn't re-generate .cpp files when CodeGeneratorJS.pm is modified (even though that dependency is explicitly expressed in DerivedSources.make). The best way to test this is to do a build, then do another to check that nothing rebuilds (sort of a "baseline"), then touch CodeGeneratorJS.pm, and see what rebuilds. If too little rebuilds, then we could change things so make is invoked with "-d" and see why the rule that is supposed to trigger rebuilds isn’t working.
Blaze Burg
Comment 2 2016-07-21 13:30:19 PDT
(In reply to comment #1) > Ryosuke’s theory was that the binding generator doesn't re-generate .cpp > files when CodeGeneratorJS.pm is modified (even though that dependency is > explicitly expressed in DerivedSources.make). > > The best way to test this is to do a build, then do another to check that > nothing rebuilds (sort of a "baseline"), then touch CodeGeneratorJS.pm, and > see what rebuilds. > > If too little rebuilds, then we could change things so make is invoked with > "-d" and see why the rule that is supposed to trigger rebuilds isn’t working. I am going to kick off a build and see if I can repro this particular case again.
Blaze Burg
Comment 3 2016-07-21 13:50:59 PDT
(In reply to comment #1) > Ryosuke’s theory was that the binding generator doesn't re-generate .cpp > files when CodeGeneratorJS.pm is modified (even though that dependency is > explicitly expressed in DerivedSources.make). I believe the relevant Make target is for the output .h files. These are a proxy for the .cpp/.mm files. GENERATE_SCRIPTS = \ bindings/scripts/CodeGenerator.pm \ bindings/scripts/IDLParser.pm \ bindings/scripts/generate-bindings.pl \ bindings/scripts/preprocessor.pm JS_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(WINDOW_CONSTRUCTORS_FILE) $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) $(PLATFORM_FEATURE_DEFINES) $(call generator_script, $(JS_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --idlAttributesFile $(IDL_ATTRIBUTES_FILE) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $<
Blaze Burg
Comment 4 2016-07-21 13:53:13 PDT
The build is still going, but my hunch is that we are missing $(WEBCORE) prefixes from some bindings files.
Blaze Burg
Comment 5 2016-07-21 15:09:03 PDT
Validating a fix.
Blaze Burg
Comment 6 2016-07-21 15:29:34 PDT
Created attachment 284269 [details] Proposed Fix
WebKit Commit Bot
Comment 7 2016-07-21 20:01:06 PDT
Comment on attachment 284269 [details] Proposed Fix Clearing flags on attachment: 284269 Committed r203549: <http://trac.webkit.org/changeset/203549>
WebKit Commit Bot
Comment 8 2016-07-21 20:01:10 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.