Stratego warnings in Spoofax language projects with NaBL2 analysis
When I create a new language project in Spoofax 2.1 with NaBL2 analysis, the built creates the following warnings when it enters Stratego compilation:
15:47 | INFO | Build log - > Compile Stratego code 15:47 | INFO | Build log - Execute strj -i /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/trans/plsql.str -o /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/target/metaborg/stratego.ctree -p com.oracle.plsql.frontend.trans --library --clean -I /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen -I /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend -I /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/trans -I /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/nabl2 -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/meta.lib.spoofax.eclipse_2.1.0/target/unpacked/latest/trans -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.lib.analysis.eclipse_2.1.0/target/unpacked/latest/trans -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/trans -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/trans -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen -I /Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2 --cache-dir /Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/target/stratego-cache -la stratego-lib -la stratego-sglr -la stratego-gpp -la stratego-xtc -la stratego-aterm -la stratego-sdf -la strc -F 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'pp'! 15:47 | INFO | stderr - ["/Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/pp","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/pp","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/pp"] 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'signatures'! 15:47 | INFO | stderr - ["/Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/signatures","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures"] 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'signatures'! 15:47 | INFO | stderr - ["/Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/signatures","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures"] 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'pp'! 15:47 | INFO | stderr - ["/Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/pp","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/pp","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/pp"] 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'nabl2/runtime'! 15:47 | INFO | stderr - ["/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/trans/nabl2/runtime","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime"] 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'nabl2/runtime'! 15:47 | INFO | stderr - ["/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/trans/nabl2/runtime","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime"] 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'nabl2/runtime'! 15:47 | INFO | stderr - ["/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/trans/nabl2/runtime","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime"] 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'nabl2/runtime'! 15:47 | INFO | stderr - ["/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/trans/nabl2/runtime","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime"] 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures/nabl2/shared'! 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'pp'! 15:47 | INFO | stderr - ["/Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/pp","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/pp","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/pp"] 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'nabl2/runtime'! 15:47 | INFO | stderr - ["/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/trans/nabl2/runtime","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime"] 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/nabl2/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures/nabl2/runtime'! 15:47 | INFO | stderr - [ strj | warning ] No Stratego files found in directory '/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures/nabl2/shared'! 15:47 | INFO | stderr - [ strj | warning ] Found more than one matching subdirectory found for 'signatures'! 15:47 | INFO | stderr - ["/Users/oracle/Cloud/git/tutorials-steps/com.oracle.plsql.frontend/src-gen/signatures","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.shared.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures","/Users/oracle/Applications/spoofax210.app/Contents/Eclipse/plugins/org.metaborg.meta.nabl2.runtime.eclipse_2.1.0/target/unpacked/latest/src-gen/signatures"]
In general, this large amount of warnings in a new project looks problematic to new users. These kind of name clashes also proved to be harmful when we split languages into several components. So I would expect trouble here as well.
Submitted by Guido Wachsmuth on 22 February 2017 at 15:53
Issue Log
These warnings are filtered out now. However, name clashes can still occur when not taking care to properly name modules. To prevent name clashes, put all files to be exported in a directory of the language name, and only export files in those directories. For an example, see the java-front project.
Note that many of these warnings are caused by unpacked NaBL2 files, which seem to be on the path automatically. I would assume that this should be fixed in the NaBL2 directory structure, since a language developer might be unaware of name clashes with NaBL2 files.
Log in to post comments