Purpose: Discuss what it takes for a softare author to create a Tcl extension that can be used by others.
- See the Tcl Core Team team's example extension ftp://ftp.scriptics.com/pub/tcl/examples/tea/
- Read the TEA Tcl Extension Architecture document [L1 ]
- Determine whether the extension can and will be cross platform
- Is this relevant to your extension?
- Are you interested in supporting cross platform?
- What needs to be done?
- Decide whether you want a script library extension versus compiled (or mixed) library extension.
- If script only, what are the core issues to consider?
- Portable code - see the Tcl Developer's Xchange [L2 ] style guide
- What installation aids do you provide? Options include:
- Nothing - let the user figure it out
- Text describing what to do
- Tcl script to assist in configuration / installation
- configure / makefile to assist in configuration
- What documentation do you supply? Options include:
- None - let the users read the source *
- Plain text - everyone has an editor these days
- HTML - everyone has a browser these days
- *roff man pages - it's what everyone considers
- XML - it's the coming thing
- Other formats (TeX, texinfo, PostScript, PDF, WinHelp, etc.)
- What format is used for MacOS?
- What additional issues can be considered?
- If compiled language only, what are the core issues to consider?
- Which compiler?
- ANSI C only?
- Portable C?
- ANSI C++ ?
- Portable C++ ?
- Other (FORTRAN, Ada, ...)?
- Be certain to use Tcl functions when available, to gain as much cross platform help as possible
- Be certain to use Tcl's compat library when your platform(s) functions are broken
- Provide your own compat library functions when you need to replace the functions on a particular plaforms
- Propose new Tcl cross platform library functions when you need something that isn't already in Tcl. See TIP for this process.
- Tools for writing extensions: SWIG, mktclapp [L3 ]
- the so-called RTFS system
LV: What is RTFS?
MS: RTF source, I guess.
LV: Appears to be some sort of DOS compatibility file system.
Building Tcl DLL's for Windows