[ET Trac] [Einstein Toolkit] #1958: parfiles accept 1.0, 0.0, 1e3 for integer typed parameters

Einstein Toolkit trac-noreply at einsteintoolkit.org
Mon Sep 26 18:36:54 CDT 2016


#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):

 I admit to being confused. Since the check only happens at runtime (when
 the .par files are read) then compilation seems to not be sufficient (also
 since C++ will let you do "int a = (double)b"). I would also expect that
 all tests in the testsuite will pass since the pre-piraha parser would
 allow 1.0 so no test could rely on it. It would however be good to check
 if things like:
 {{{
 thorn::par = 2*1
 }}}
 still work after the change or not. Please note that I am only suggesting
 that
 {{{
 thorn::par = 1.0
 }}}
 should fail, not
 {{{
 thorn::par = 1.0*1
 }}}
 (mostly since the later would require that we re-introduce integer
 arithmetic into the evaluator if all arguments of an expression are
 integers).


 If you make the change, please also update the user guide which currently
 states that "In cases where this is clear, types will be converted, e.g.
 3.0 will convert to an integer, but not 3.1." in section B 3.2. Booleans
 being represented as {{{CCTK_INT}}} is documented in the UserGuide
 (section C1.6 section "Parameters" in my current checkout) documenting C's
 convention for true/false. There is however a body of Fortran code around
 that uses {{{param.eq.1}}} to test for truth rather than the more correct
 {{{.not. (param.eq.0)}}}, so at least for the actual code we are stuck
 with representing true/false as 1/0.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1958#comment:7>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list