[Insight-developers] Windows 64 bits & unsigned long

Luis Ibanez luis.ibanez at kitware.com
Thu Nov 12 20:20:25 EST 2009


Hi Brad,

I just setup a build in thurmite.kitware with Wshorten-64-to-32.

We should see it tomorrow... unless, as you pointed out,
CDash is suppressing the warnings... (in which case, we
will have to look at disabling that CDash suppression).


Copying code from VTK is perfectly fine.
The VTK license is BSD just as ITK.
The only detail is that if you move VTK code into an ITK file,
then you should remember to add the VTK copyright header
in the same file (just below the ITK header).   Unless the amount
of copy/pasted code is so small that can be considered just a
Functional unit.

Functional code is not copyrightable.

For example, a for-loop for counting the number of elements
in an array, is not copyrightable because it is a functional piece
of code and there are not many different ways of writing such
code, therefore it lacks the level of artistic expression that could
be the object of Copyright protection.


You have a good point about the testing: Yes, I think that the
only way to make sure this works is to have several tests for
images larger than 2GB.  (maybe tests that will be run only
in selected machines).


Your suggestion of going by phases sounds very reasonable.
How about the method we used for fixing the coding style ?

We go directory by directory..

We probably want to start with "Common" and follow with
- "IO",
-"BasicFilters"
-"Algorithms"

In which case, it will be nice if we could add the warning flag
via CMake commands, in order to apply it only in selected
directories....


    Luis

--------------------------------------------
On Thu, Nov 12, 2009 at 10:27 AM, Bradley Lowekamp
<blowekamp at mail.nih.gov> wrote:
> Luis,
> This sounds like a good idea now that we are not rushing for a release.
> 1) I believe CDash is suppressing the warning generated by Wshorten-64-to-32
> warning.
> Also the standard practice has been to add static_cast to suppress this kind
> of warning. It is so standard that I bet it has sometimes been done with out
> thought
> 2) We still need NumericTraits for the size_t and ptrdiff_t (long long/
> __int64)
> I believe that win64 defines these as long long types. I have begun to look
> into the partial work done in ITK on long long and __int64 and the work done
> in VTK. Since we are going to be using this type as the coordinate type, we
> must have a specialized NumericTraits. We already have the rounding methods
> that we just implemented to 64bits.
> Can I just copy selected parts of VTK CMake into ITK? License issues?
> 3) VNL does not support this "long long"/__int64 type for the math functions
> contained in "vnl_math"
> Again this relates to the IndexType not being long, but being ptrdiff_t.
> 3) How are we going to test this?
> Running a lot of test with more the 2GB pixels does not seem good, but we
> need some.
> 4) Do we have phases?
> Making ITK 64-bit safe is a big goal and requires detailed look at a lot of
> code! I guess my thought is to just initially keep the scope well defined...
> ie we want to be able to do X, Y and Z on win64. For example on my apple
> fread does not work with read over 2GB. We don't know what other weird
> limitation we may run into...
>
> Brad
> On Nov 12, 2009, at 9:13 AM, Luis Ibanez wrote:
>
> Sean,
>
> Excellent idea.
> Yes, have an Experimental will this flag on will be useful.
> (I'll set up one in thurmite.kitware too, so  we have two
> points of reference).
>
> Also, I'll search for an equivalent flag for VS9.
>
>
>    Thanks,
>
>          Luis
>
>
> -----------------------------------------------------------------------------------
> On Wed, Nov 11, 2009 at 12:51 PM, Sean McBride <sean at rogue-research.com>
> wrote:
>
> On 11/11/09 12:36 PM, Luis Ibanez said:
>
> It seems to be a good time to resume the effort
>
> for fixing the use of integers in Windows 64 bits.
>
> *SNIP*
>
> Any suggestions on how to go about it in an efficient way ?
>
> Perhaps during this work, it would be beneficial to enable gcc's -
>
> Wshorten-64-to-32 warning?  Alas, last I checked, the warning exists
>
> only in Apple's fork of gcc.  I imaging Windows compilers have a similar
>
> option.  This warning would warn on the following for example:
>
> unsigned int size = sizeof (foo);
>
> If you're going to change the size/type of many variables, it seems like
>
> the time.
>
> We could provide an experimental nightly with this on.
>
> --
>
> ____________________________________________________________
>
> Sean McBride, B. Eng                 sean at rogue-research.com
>
> Rogue Research                        www.rogue-research.com
>
> Mac Software Developer              Montréal, Québec, Canada
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
>
> ========================================================
>
> Bradley Lowekamp
>
> Lockheed Martin Contractor for
>
> Office of High Performance Computing and Communications
>
> National Library of Medicine
>
> blowekamp at mail.nih.gov
>
>


More information about the Insight-developers mailing list