Currently, the macro-processor adds many empty lines to the pre-processed file that serve no purpose. Users can opt to remove them using the noemptylinemacro-option. We should always use this feature and drop the option.
Designs
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
If we’re 100% sure that it has no impact on functionality (and in particular that it does not break line numbering in error messages), then I'm ok for having it in 4.6.
When noemptylinemacro is passed, they serve no purpose.... well, they give you a reference to the original .mod file where that part of the code came from, but the resulting line number will no longer be correct as empty lines will have been removed.
Yes, that's precisely the problem I'm pointing at. With the current default, even if they may be useless, the @#line have at least a meaning. With the noemptylinemacro, they become meaningless. So we could decide to remove the @#line from the generated file as well, drop the nolinemacro option, and thus fix #45 (closed) by the same token.
What you're saying implies that @#line never serves a purpose to the user, which is not true. When noemptylinemacro is NOT passed, the @#line commands serve to say where the output comes from relative to a certain line in a non-macro-processed file. We could get rid of all @#line commands (and hence the nolinemacro option) if we decide that this is not something that users are interested in.
Having @#line commands with noemptylinemacro does not make sense. So, noemptylinemacro can imply nolinemacro.
And since noemptylinemacro would now be the default, that implies that nolinemacro would also be. I think this is fine, and I would simply drop these two options.
@JohannesPfeifer suggested to introduce a new linemacro option that would simply revert to the former behaviour (i.e. it would disable the prettying of the macro-expanded output).