Proposals:Updating Nrrd library 2009: Difference between revisions
(→Table) |
|||
Line 56: | Line 56: | ||
== Table == | == Table == | ||
The table below lists all the files in NrrdIO which are generated from a Teem checkout via NrrdIO/pre-GNUmakefile; these are marked with "*". Changes in these files in ITK's NrrdIO since GLK's last commits in 2005 should be back-propagated to the corresponding files in Teem, so that when NrrdIO is next regenerated from Teem, none of the improvements to ITK's NrrdIO are lost. Handling updates to these files is the hard/interesting part of this project. | |||
The files not marked with a "*" are not generated from Teem via NrrdIO/pre-GNUmakefile; they exist only within NrrdIO. GLK doesn't see why there would have been any changes to these in files in ITK's NrrdIO, because it wouldn't effect how ITK uses Nrrd, but if there are changes they should also be reviewed and possibly back-propagated to Teem's NrrdIO. | |||
{| border="1" | {| border="1" | ||
Line 63: | Line 67: | ||
| 000-README.txt || || | | 000-README.txt || || | ||
|- | |- | ||
| 754.c || || | | * air/754.c || || | ||
|- | |- | ||
| accessors.c || || | | * nrrd/accessors.c || || | ||
|- | |- | ||
| array.c || || | | * air/array.c || || | ||
|- | |- | ||
| arraysNrrd.c || || | | * nrrd/arraysNrrd.c || || | ||
|- | |- | ||
| axis.c || || | | * nrrd/axis.c || || | ||
|- | |- | ||
| biffbiff.c || || | | * biff/biffbiff.c || || | ||
|- | |- | ||
| biffmsg.c || || | | * biff/biffmsg.c || || | ||
|- | |- | ||
| CMakeLists.txt || || | | CMakeLists.txt || || | ||
|- | |- | ||
| comment.c || || | | * nrrd/comment.c || || | ||
|- | |- | ||
| defaultsNrrd.c || || | | * nrrd/defaultsNrrd.c || || | ||
|- | |- | ||
| dio.c || || | | * air/dio.c || || | ||
|- | |- | ||
| encodingAscii.c || || | | * nrrd/encodingAscii.c || || | ||
|- | |- | ||
| encodingBzip2.c || || | | encodingBzip2.c || || | ||
|- | |- | ||
| encoding.c || || | | * nrrd/encoding.c || || | ||
|- | |- | ||
| encodingGzip.c || || | | * nrrd/encodingGzip.c || || | ||
|- | |- | ||
| encodingHex.c || || | | * nrrd/encodingHex.c || || | ||
|- | |- | ||
| encodingRaw.c || || | | * nrrd/encodingRaw.c || || | ||
|- | |- | ||
| endianAir.c || || | | * air/endianAir.c || || | ||
|- | |- | ||
| endianNrrd.c || || | | * nrrd/endianNrrd.c || || | ||
|- | |- | ||
| enum.c || || | | * air/enum.c || || | ||
|- | |- | ||
| enumsNrrd.c || || | | * nrrd/enumsNrrd.c || || | ||
|- | |- | ||
| format.c || || | | * nrrd/format.c || || | ||
|- | |- | ||
| formatEPS.c || || | | formatEPS.c || || | ||
|- | |- | ||
| formatNRRD.c || || | | * nrrd/formatNRRD.c || || | ||
|- | |- | ||
| formatPNG.c || || | | formatPNG.c || || | ||
Line 119: | Line 123: | ||
| formatVTK.c || || | | formatVTK.c || || | ||
|- | |- | ||
| gzio.c || || | | * nrrd/gzio.c || || | ||
|- | |- | ||
| keyvalue.c || || | | * nrrd/keyvalue.c || || | ||
|- | |- | ||
| mangle.pl || || | | mangle.pl || || | ||
|- | |- | ||
| methodsNrrd.c || || | | * nrrd/methodsNrrd.c || || | ||
|- | |- | ||
| miscAir.c || || | | * air/miscAir.c || || | ||
|- | |- | ||
| mop.c || || | | * air/mop.c || || | ||
|- | |- | ||
| NrrdIO.h || || | | * air,biff,nrrd/NrrdIO.h || || | ||
|- | |- | ||
| NrrdIO_Srcs.txt || || | | NrrdIO_Srcs.txt || || | ||
Line 137: | Line 141: | ||
| NrrIOLIst.txt || || | | NrrIOLIst.txt || || | ||
|- | |- | ||
| parseAir.c || || | | * air/parseAir.c || || | ||
|- | |- | ||
| parseNrrd.c || || | | * nrrd/parseNrrd.c || || | ||
|- | |- | ||
| preamble.c || || | | preamble.c || || | ||
Line 145: | Line 149: | ||
| pre-GNUmakefile || || | | pre-GNUmakefile || || | ||
|- | |- | ||
| privateAir.h || || | | * air/privateAir.h || || | ||
|- | |- | ||
| privateNrrd.h || || | | * nrrd/privateNrrd.h || || | ||
|- | |- | ||
| qnanhibit.c || || | | qnanhibit.c || || | ||
|- | |- | ||
| read.c || || | | * nrrd/read.c || || | ||
|- | |- | ||
| reorder.c || || | | * nrrd/reorder.c || || | ||
|- | |- | ||
| sample-GNUmakefile || || | | sample-GNUmakefile || || | ||
Line 159: | Line 163: | ||
| sampleIO.c || || | | sampleIO.c || || | ||
|- | |- | ||
| sane.c || || | | * air/sane.c || || | ||
|- | |- | ||
| simple.c || || | | * nrrd/simple.c || || | ||
|- | |- | ||
| string.c || || | | * air/string.c || || | ||
|- | |- | ||
| subset.c || || | | * nrrd/subset.c || || | ||
|- | |- | ||
| teem32bit.h || || | | * teem32bit.h || || | ||
|- | |- | ||
| teemDio.h || || | | * teemDio.h || || | ||
|- | |- | ||
| teemEndian.h || || | | * teemEndian.h || || | ||
|- | |- | ||
| teemPng.h || || | | * teemPng.h || || | ||
|- | |- | ||
| teemQnanhibit.h || || | | * teemQnanhibit.h || || | ||
|- | |- | ||
| unteem.pl || || | | unteem.pl || || | ||
|- | |- | ||
| write.c || || | | * nrrd/write.c || || | ||
|} | |} |
Revision as of 06:17, 19 December 2009
Nrrd Library
This page describes the procedure for synchronizing the NrrdIO parts of Teem, with the one in Insight/Utilities/NrrdIO
Note that patches may have to be moved in both directions.
Background
- Nrrd started as one of the libraries in Teem <http://teem.sf.net>
- NrrdIO is a subset of Teem containing only the IO functionalities (basically, parts of the air, biff, and nrrd libraries).
- The only part of Teem that's in ITK is in NrrdIO. Also, while Teem has a weakened LGPL license, NrrdIO is licensed identically to ITK.
- Creating NrrdIO from Teem is done by a GNUMakefile and a perl script.
- The back-propagation that should happen is from NrrdIO back to Teem, because the idea is that NrrdIO should be periodically regenerated from Teem.
Checking out NrrdIO
Use the following SVN command
svn co http://teem.svn.sourceforge.net/svnroot/teem/NrrdIO/trunk NrrdIO
This was generated in the Teem side by
- running a "pre-GNUmakefile" gnu makefile, which also uses a little perl script unteem.py.
- The comments in pre-GNUmakefile explain this some.
Update Procedure
Perform the following two tasks:
From ITK to NrrdIO
For all the changes made to
Insight/Utilities/NrrdIO
after the last Nrrd batch commit (from G Kindlmann), understand what the change was, and then apply the same change to either sourceforge's NrrdIO or even better, to Teem itself.
For the .c files this should be easy; these are just copied directly from a Teem checkout, and then the headers are mangled.
For NrrdIO.h; this is actually a concatenation of air/air.h, biff/biff.h, nrrd/nrrdDefines.h, nrrd/nrrdEnums.h, nrrd/nrrdMacros.h, and nrrd/nrrd.h (these are defined in the NEED_PUB_HDRS variable of NrrdIO/pre-GNUmakefile)
This is probably not a one-day project.
From Nrrd to ITK
Gradually or all at once, depending on our bravery, we copy sourceforge's NrrdIO to
Insight/Utilities/NrrdIO
and see what breaks,... and fix it
Progress
Table
The table below lists all the files in NrrdIO which are generated from a Teem checkout via NrrdIO/pre-GNUmakefile; these are marked with "*". Changes in these files in ITK's NrrdIO since GLK's last commits in 2005 should be back-propagated to the corresponding files in Teem, so that when NrrdIO is next regenerated from Teem, none of the improvements to ITK's NrrdIO are lost. Handling updates to these files is the hard/interesting part of this project.
The files not marked with a "*" are not generated from Teem via NrrdIO/pre-GNUmakefile; they exist only within NrrdIO. GLK doesn't see why there would have been any changes to these in files in ITK's NrrdIO, because it wouldn't effect how ITK uses Nrrd, but if there are changes they should also be reviewed and possibly back-propagated to Teem's NrrdIO.
File | Check ITK for Bug Fix | Move from NrrdIO to ITK |
---|---|---|
000-README.txt | ||
* air/754.c | ||
* nrrd/accessors.c | ||
* air/array.c | ||
* nrrd/arraysNrrd.c | ||
* nrrd/axis.c | ||
* biff/biffbiff.c | ||
* biff/biffmsg.c | ||
CMakeLists.txt | ||
* nrrd/comment.c | ||
* nrrd/defaultsNrrd.c | ||
* air/dio.c | ||
* nrrd/encodingAscii.c | ||
encodingBzip2.c | ||
* nrrd/encoding.c | ||
* nrrd/encodingGzip.c | ||
* nrrd/encodingHex.c | ||
* nrrd/encodingRaw.c | ||
* air/endianAir.c | ||
* nrrd/endianNrrd.c | ||
* air/enum.c | ||
* nrrd/enumsNrrd.c | ||
* nrrd/format.c | ||
formatEPS.c | ||
* nrrd/formatNRRD.c | ||
formatPNG.c | ||
formatPNM.c | ||
formatText.c | ||
formatVTK.c | ||
* nrrd/gzio.c | ||
* nrrd/keyvalue.c | ||
mangle.pl | ||
* nrrd/methodsNrrd.c | ||
* air/miscAir.c | ||
* air/mop.c | ||
* air,biff,nrrd/NrrdIO.h | ||
NrrdIO_Srcs.txt | ||
NrrIOLIst.txt | ||
* air/parseAir.c | ||
* nrrd/parseNrrd.c | ||
preamble.c | ||
pre-GNUmakefile | ||
* air/privateAir.h | ||
* nrrd/privateNrrd.h | ||
qnanhibit.c | ||
* nrrd/read.c | ||
* nrrd/reorder.c | ||
sample-GNUmakefile | ||
sampleIO.c | ||
* air/sane.c | ||
* nrrd/simple.c | ||
* air/string.c | ||
* nrrd/subset.c | ||
* teem32bit.h | ||
* teemDio.h | ||
* teemEndian.h | ||
* teemPng.h | ||
* teemQnanhibit.h | ||
unteem.pl | ||
* nrrd/write.c |