#1958: parfiles accept 1.0, 0.0, 1e3 for integer typed parameters -----------------------+---------------------------------------------------- Reporter: rhaas | Owner: Type: defect | Status: new Priority: optional | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: -----------------------+----------------------------------------------------
Comment (by rhaas):
Hmm, well, as Frank pointed out, the code will refuse actual non-integer values so there is no harm other than aesthetics. Are you sure that there are thorns out that use 1.0 instead of 1? I am asking because the pre- Piraha parser did have exactly the {{{strol}}} type check that I was suggesting in its ParamSet routine
https://bitbucket.org/cactuscode/cactus/src/c365e508a8a971f6ff61ea7aca547eae... =file-view-default#Parameters.c-2189
and the parameter file parser would only parser parameters to strings.
I think this is different from accepting 0 and 1 for bools since 0 and 1 are actually what the bools look like in the code (CCTK_BOOLEAN parameters have integer values of 0 and 1 and eg in Fortran one needs to check for this and cannot check for truth).
Frank: I am saying that there is a difference between 1.0 and 1 since only the latter fits the definition of what eg the C compiler will accept as an "int" variable. The conversion in integerize() is fine and is ok for the result of expressions that are assigned to integer parameters, this is about accepting the constant 1.0 for an integer parameter.