ITK/Release 4/Wrapping: Difference between revisions

From KitwarePublic
< ITK‎ | Release 4
Jump to navigationJump to search
Line 5: Line 5:
SIMPLIFY ITK by allowing easy access of the toolkit from other languages, especially scripting languages, hiding some difficulties (templates, compilation ...) along the way.
SIMPLIFY ITK by allowing easy access of the toolkit from other languages, especially scripting languages, hiding some difficulties (templates, compilation ...) along the way.


== Metrics ==
== Metrics and goals ==
* Avoid unnecessary dependencies (see Modular ITK)
* Avoid unnecessary dependencies (see Modular ITK)
* FASTER
* FASTER
Line 13: Line 13:
* Wrap 80%+ of the toolkit
* Wrap 80%+ of the toolkit
* Have ITK behaves in the different languages as close to the native code as possible
* Have ITK behaves in the different languages as close to the native code as possible
** ITK Image to/from target language array conversion
** Target language inheritance (SWIG directors)
** Automatic type selection in Python
* Binary distribution
* Automatic Inline documentation


== Languages ==
== Languages ==

Revision as of 15:08, 1 May 2011

Wrapping

High-Level Goals

SIMPLIFY ITK by allowing easy access of the toolkit from other languages, especially scripting languages, hiding some difficulties (templates, compilation ...) along the way.

Metrics and goals

  • Avoid unnecessary dependencies (see Modular ITK)
  • FASTER
    • faster compilation
    • limited compilation ( see modular itk v4 )
    • faster re-compile (touching a given .h should not trigger a full re-compilation)
  • Wrap 80%+ of the toolkit
  • Have ITK behaves in the different languages as close to the native code as possible
    • ITK Image to/from target language array conversion
    • Target language inheritance (SWIG directors)
    • Automatic type selection in Python
  • Binary distribution
  • Automatic Inline documentation

Languages

  • Java
  • Python
  • Lua ?
  • Tcl ?
  • see simpleITK

Comparative Examples

Required Tools and Technology

Installation is detailled here

tools

  • WrapITK.
  • Swig
  • GccXML

WrapITK Configuration and Build Process Internals

Parallel Build Status

Discussions and TConfs

Tcon 808310

Minutes 081310

Attendees

  • Luis Ibañez
  • Gabe Hart
  • Gaëtan Lehmann
  • Brad King

Topics

  • gccxml maintenance

Brad working on it. Getting harder with newer compiler. Will probably possible for the next couple of years.

CLang must be explored as a replacement.

  • migrating to WrapITK 0.3
  • recode igenerator.py in C++

reuse cable code. already read gccxml output.

  • languages support
    • keep python 2
    • keep java
    • add C#
    • add Python 3? maybe
    • remove Tcl? sure
  • redefine the WrapITK libraries (grouping of classes)

use the same module organization than in ITK

  • Default wrapped types and abbreviated naming scheme
  • Wrapping coverage
  • Binary distribution

distribute binary for now next move to ryppl

  • ITK Image to/from target language array conversion
  • Automatic Inline documentation
  • Target language inheritance (SWIG directors)
  • Automatic type selection in Python
  • Improve 64bits support in ITK — surely done elsewhere already

remove 64 bit pixel type

rework filter using unsigned long type

  • GDCM wrapping integration?

add interfaces in ITK classes and wrap those classes

Pending Tasks