ianhinder / Kranc

A Mathematica package for generating code for solving time dependent partial differential equations
http://kranccode.org
GNU General Public License v2.0
28 stars 10 forks source link

Check schedule routine names #83

Open eschnett opened 11 years ago

eschnett commented 11 years ago

Ensure that scheduled routine names are correct C identifiers. I accidentally wrote the following:

Name -> "ML_WaveToyDGFE_RHSFluxes AS ML_WaveToyDGFE_RHS", Schedule -> {"IN MoL_CalcRHS", "AT analysis"},

Of course, the "AS" should go into the Schedule clause instead; name must be a legal C identifier.

ianhinder commented 11 years ago

In addition to this, I thought that we might want to automatically add the thorn name as a prefix, to avoid the user having to do this. This avoids most possible name collisions, which might go undetected otherwise. The only downside to this is that when the user refers to the function name in other parts of the schedule, they would have to add the prefix. In the ideal world future, the user would not be providing Cactus schedule strings, and everything would be handled by data dependency information. In light of this, maybe we just want to recommend that the name starts with the thorn name, and warn if this is not the case. This makes the actual name visible to the user, as well as all but forcing them to follow this convention.