SDF3 changes or a language dependency are not loaded after building the main project is built
For my project I have a main project, metac, and sub-languages that are combined into metac: https://github.com/arian/metac
The sub-languages are added as dependencies in the metac/pom.xml.
However after changes of SDF files in such a sub-language and building the main metac project, the updates are not loaded. Only after cleaning the metac project, rebuilding it and restarting eclipse the changes are loaded.
Changes in the main project,
metac/syntax
, are loaded after a rebuild.Submitted by Arian on 1 December 2015 at 12:13Eclipse: org.eclipse.epp.package.standard.feature.feature.group 4.4.2.20150219-0708 Spoofax: org.metaborg.spoofax.eclipse 1.5.0.20151130-221944-new-spoofax-plugin System: Linux amd64 3.13.0-68-generic
Issue Log
Is build automatically (in Project menu) on? If so, maybe it is an incrementality issue in the Ant build script. If you run the build for metac after making SDF3 changes, does the Ant build script make a new parse table, or does it skip the step because files are up to date?
It seems a new parse table isn’t created indeed. Toggling “build automatically” doesn’t seem to affect this.
13:54 | INFO | o.m.s.e.m.b.PreJavaBuilder - Building language project eclipse:///metac Buildfile: /tmp/vfs_cache/tmp_62047_build.xml generate-sources: copy-sdf2: pack-sdf: [echo] include/MetaC.def is up-to-date copy-sdf: make-permissive: [echo] include/MetaC.def -> include/MetaC-Permissive.def is up-to-date sdf2table: [echo] /home/arian/ws2/metac/metac/include/MetaC-Permissive.def -> /home/arian/ws2/metac/metac/include/MetaC.tbl is up-to-date meta-sdf2table: ppgen: [echo] include/MetaC.def -> include/MetaC.generated.pp is up-to-date ppgen.helper.fallback: pppack: pppack.helper: pppack.helper.fallback: sdf2rtg: [echo] include/MetaC.def -> include/MetaC.rtg is up-to-date sdf2parenthesize: [trycatch] Caught exception: required attribute nativepath not set generate-sources-common: rtg2sig: [echo] include/MetaC.rtg -> include/MetaC.str is up-to-date stratego.ctree: [delete] Deleting: /home/arian/ws2/metac/metac/include/metac.ctree copy-jar: stratego.jvm.helper: [java] [ Main | warning ] Found more than one matching subdirectory found for 'signatures'! [java] ["/home/arian/ws2/metac/metac/src-gen/signatures","/home/arian/ws2/metac/basec/src-gen/signatures","/home/arian/ws2/metac/metac-sm/src-gen/signatures","/home/arian/ws2/metac/metac-bitfield/src-gen/signatures","/home/arian/ws2/metac/metac-err/src-gen/signatures","/home/arian/ws2/metac/metac-csp/src-gen/signatures"] [java] [ Main | warning ] Found more than one matching subdirectory found for 'signatures'! [java] ["/home/arian/ws2/metac/metac/src-gen/signatures","/home/arian/ws2/metac/basec/src-gen/signatures","/home/arian/ws2/metac/metac-sm/src-gen/signatures","/home/arian/ws2/metac/metac-bitfield/src-gen/signatures","/home/arian/ws2/metac/metac-err/src-gen/signatures","/home/arian/ws2/metac/metac-csp/src-gen/signatures"] [java] [ Main | warning ] Found more than one matching subdirectory found for 'signatures'! [java] ["/home/arian/ws2/metac/metac/src-gen/signatures","/home/arian/ws2/metac/basec/src-gen/signatures","/home/arian/ws2/metac/metac-sm/src-gen/signatures","/home/arian/ws2/metac/metac-bitfield/src-gen/signatures","/home/arian/ws2/metac/metac-err/src-gen/signatures","/home/arian/ws2/metac/metac-csp/src-gen/signatures"] [java] [ Main | warning ] Found more than one matching subdirectory found for 'signatures'! [java] ["/home/arian/ws2/metac/metac/src-gen/signatures","/home/arian/ws2/metac/basec/src-gen/signatures","/home/arian/ws2/metac/metac-sm/src-gen/signatures","/home/arian/ws2/metac/metac-bitfield/src-gen/signatures","/home/arian/ws2/metac/metac-err/src-gen/signatures","/home/arian/ws2/metac/metac-csp/src-gen/signatures"] [java] [ Main | warning ] Found more than one matching subdirectory found for 'pp'! [java] ["/home/arian/ws2/metac/metac/src-gen/pp","/home/arian/ws2/metac/basec/src-gen/pp","/home/arian/ws2/metac/metac-sm/src-gen/pp","/home/arian/ws2/metac/metac-bitfield/src-gen/pp","/home/arian/ws2/metac/metac-err/src-gen/pp","/home/arian/ws2/metac/metac-csp/src-gen/pp"] [java] [ Main | warning ] Found more than one matching subdirectory found for 'signatures'! [java] ["/home/arian/ws2/metac/metac/src-gen/signatures","/home/arian/ws2/metac/basec/src-gen/signatures","/home/arian/ws2/metac/metac-sm/src-gen/signatures","/home/arian/ws2/metac/metac-bitfield/src-gen/signatures","/home/arian/ws2/metac/metac-err/src-gen/signatures","/home/arian/ws2/metac/metac-csp/src-gen/signatures"] [java] [ Main | warning ] Found more than one matching subdirectory found for 'signatures'! [java] ["/home/arian/ws2/metac/metac/src-gen/signatures","/home/arian/ws2/metac/basec/src-gen/signatures","/home/arian/ws2/metac/metac-sm/src-gen/signatures","/home/arian/ws2/metac/metac-bitfield/src-gen/signatures","/home/arian/ws2/metac/metac-err/src-gen/signatures","/home/arian/ws2/metac/metac-csp/src-gen/signatures"] [java] [ Main | info ] Front-end succeeded : [user/system] = [25.89s/0.00s] [java] [ Main | info ] Optimization succeeded -O 2 : [user/system] = [2.22s/0.00s] [java] [ Main | info ] Abstract syntax in '/home/arian/ws2/metac/metac/include/metac.rtree' [java] [ Main | info ] Export of externals succeeded : [user/system] = [0.18s/0.00s] [delete] Deleting: /home/arian/ws2/metac/metac/include/metac.rtree generate-sources-ctree: BUILD SUCCESSFUL BUILD SUCCESSFUL Total time: 33 seconds
That’s an incrementality issue,
pack-sdf
probably does not check for SDF2 files in dependencies. As a workaround, you can make an edit in an SDF3 or SDF2 file in the metac project to force it to generate a new parse table.I will work on incrementality issues in the build script in about 2 weeks.
Fixed with the new build system
Log in to post comments