Choosing Which XOP Toolkit to Use

WaveMetrics is currently shipping two versions of the XOP Toolkit - version 7 and version 8.

Use XOP Toolkit 7 if your XOP must run with Igor Pro 6 or Igor Pro 7, or if you are updating an older XOP that was never updated using XOP Toolkit 7.01 or later, or if you have not yet created a 64-bit version of your XOP.

Use XOP Toolkit 8 if you are writing a new XOP to target Igor Pro 8 or later, or if you are updating an XOP that was already updated using XOP Toolkit 7.01 or later to target Igor Pro 8 or later.

The next section explains the reason for these rules. Download links are provided at the bottom of the page.

Main Issues

There are three main issues:

1. 64-bit XOPs

If you have not ported your existing XOP to 64 bits, use XOP Toolkit 7 to do that. Chapter 11 of the XOP Toolkit 7 manual includes detailed instructions for porting to 64 bits. To reduce clutter, the detailed instructions were removed from the XOP Toolkit 8 manual.

2. Memory Management Routines

To support blocks of memory larger than 2 GB, WaveMetrics changed Igor's internal memory management routines for Igor Pro 8. No change is required for 32-bit Macintosh XOPs or for 32-bit or 64-bit Windows XOPs. However, to run with Igor Pro 8 or later, 64-bit Macintosh XOPs must be modified as explained under "WMMemory XOPSupport Routines" in Chapter 12 of the XOP Toolkit 7 manual.

Although it is not required to update 32-bit Macintosh XOPs and 32-bit or 64-bit Windows XOPs, we recommend that you do so to keep your code up-to-date.

3. Long Object Names and Paths

Prior to Igor Pro 8, object names, such as the names of waves, variables, and data folders, were limited to 31 bytes. In Igor Pro 8.00, this limit was raised to 255 bytes, and other limits were also raised. For compatibility with older XOPs, Igor Pro 8 and later can run with XOPs that do not support long names and paths, but return errors if passing a long name or path to the XOP is required.

If your XOP uses any of the following constants then it uses object names or paths:

XOP Toolkit 7 supports short names and paths only. It can create XOPs that run with Igor Pro 6.20 or later, but they will return errors if used with long names or paths in Igor Pro 8.00 or later.

XOP Toolkit 8 supports long names and paths only. Long names and paths require Igor Pro 8.00 or later. Consequently, you should use XOP Toolkit 8 only if you are willing to require Igor Pro 8.00 or later. See "Long Names and Paths in XOPs" in Chapter 12 of the XOP Toolkit 8 manual for details.

Summary of Recommendations

If you are updating an XOP that was never updated using XOP Toolkit 7.01 or later, or if you have not yet created a 64-bit version of your XOP, first update your XOP using XOP Toolkit 7. See Appendix A in the XOP Toolkit 7 manual for details.

Once you have updated your XOP with XOP Toolkit 7, if you want to support long object names and paths and are willing to require Igor Pro 8.00 or later, update using XOP Toolkit 8. See Appendix A in the XOP Toolkit 8 manual for details.

Here is a summary of the rules for determining which XOP Toolkit to use:

XOP Toolkit Downloads

You need a user name and a password from WaveMetrics sales to download these XOP Toolkits.

Download XOP Toolkit 7 for Macintosh

Download XOP Toolkit 7 for Windows

Download XOP Toolkit 8 for Macintosh

Download XOP Toolkit 8 for Windows