WSTP Interface 3

このライブラリはUnicode文字コード形式UTF-8,UTF-16,UTF-32を完全にサポートするようになった.リンクへ,あるいはリンクからUnicode文字をPutまたはGetするためには次の新しいAPI関数を使う.
Wolfram Symbolic Transfer Protocol (WSTP)ライブラリヘッダファイルwstp.hには,Mac OS 9以前を参照するMACINTOSH_WSTP定義あるいはOS2_WSTPにより定義されたような古いプラットフォームサポートセクションは含まれなくなった.MACINTOSH_WSTPはMac OS 9以前を参照していた.DARWIN_WSTPにはMac OS Xのすべてのプラットフォームの定義が含まれる.
一般的なC型の特殊代替名のすべての使用がAPIから削除された.WSTPヘッダファイルwstp.hには,Interface 2およびそれ以前のプログラムで使用するためにこれらの型のAPI関数のバージョンが含まれている.
以前のWSTP型
C型
uchar_ct
unsigned char
ucharp_ct
unsigned char *
ucharpp_ct
unsigned char **
ucharppp_ct
unsigned char ***
ushort_ct
unsigned short
ushortp_ct
unsigned short *
ushortpp_ct
unsigned short **
ushortppp_ct
unsigned short ***
uint_ct
unsigned int
uintp_ct
unsigned int *
uintpp_ct
unsigned int **
int_ct
int
voidp_ct
void *
voidpp_ct
void **
charp_ct
char *
charpp_ct
char **
charppp_ct
char ***
long_ct
long
longp_ct
long *
longpp_ct
long **
long_st
long
longp_st
long *
longpp_st
long **
ulong_ct
unsigned long
ulongp_ct
unsigned long *
kushortp_ct
const unsigned short *
kushortpp_ct
const unsigned short **
kuintp_ct
const unsigned int *
kuintpp_ct
const unsigned int **
kucharp_ct
const unsigned char *
kucharpp_ct
const unsigned char **
kcharp_ct
const char *
kcharpp_ct
const char **
kvoidp_ct
const void *
WSSetAllocParameter()を使用するライブラリに渡されるメモリアロケータ・デアロケータ関数が,スレッドセーフでなければならなくなった.
以前,引数としてWSParametersPointer型を取っていたAPI関数およびWSParametersPointer型を返していた関数がchar * 型を取る/返すようになった.
mlapi_result型を引数として取っていた,またはmlapi_result型を返していたAPI関数が型intを取る/返すようになった.
mlapi_error型を引数として取っていた,またはmlapi_error型を返していたAPI関数が型intを取る/返すようになった.
mlapi_token型を引数として取っていた,またはmlapi_token型を返していたAPI関数が型intを取る/返すようになった.
mlapi_packet型を引数として取っていた,またはmlapi_packet型を返していたAPI関数が型intを取る/返すようになった.
MLPointer型を引数として取っていた,またはWSPointer型を返していたAPI関数がvoid *を取る/返すようになった.
以前は誤差変数に対して型long *を取っていたWSOpen*関数が型int *を取るようになった.
ヘッダファイルwstp.hがUnicode文字コード形式に関連したいくつかの新しいエラー定義を含むようになった.
エラーコード
解釈
WSEPDATABAD
指定された文字コードにおいて,WSTPが不正な文字データに遭遇した
WSEPSCONVERT
指定された文字コードからWSTPコードに変換することができない
WSEGSCONVERT
WSTPコードから要求された文字コードに変換することができない
WSPutMessage()およびWSGetMessage()では,それぞれ型dev_messagedev_message *の代りにintint *が使われるようになった.
WSSeekMark()およびWSSeekToMark()では,式インデックスに対して型longではなく型intが使われるようになった.
次の表の関数はいくつかの引数に対して型longを取っていた.今では型intを取るようになった.
WSGetRawData()
WSGetRawArgCount()
WSRawBytesToGet()
WSExpressionsToGet()
WSTakeLast()
WSPutComposite()
WSGetReal()WSGetDouble()への#defineエイリアスではなく実際のAPI関数になった.WSGetReal()は今もWSGetDouble()と同じ機能を持つ.
WSActivate()WSConnect()への#defineエイリアスではなく実際のAPI関数になった.WSActivate()は今もWSConnect()と同じ機能を持つ.
左の列の関数はもう使われなくなった.代替機能として,新しいプログラムには右の列に記載されている関数を使わなければならない.
WSCheckFunctionWithArg()
WSGetInteger64()(64ビット整数),またはWSGetInteger32() (32ビット整数)
WSGetLongDouble()
WSGetShortIntegerArrayData()
WSGetInteger16ArrayData()
WSGetIntegerArrayData()
WSGetInteger32ArrayData()
WSGetLongIntegerArrayData()
WSGetInteger64ArrayData()(64ビット整数),またはWSGetInteger32ArrayData()(32ビット整数)
WSGetFloatArrayData()
WSGetReal32ArrayData()
WSGetDoubleArrayData()
WSGetReal64ArrayData()
WSGetLongDoubleArrayData()
WSGetReal128ArrayData()
WSGetShortIntegerArray()
WSGetLongIntegerArray()
WSGetInteger64Array()(64ビット整数),またはWSGetInteger32Array()(32ビット整数)
WSGetFloatArray()
WSGetDoubleArray()
WSGetLongDoubleArray()
WSDisownShortIntegerArray()
WSDisownIntegerArray ()
WSDisownLongIntegerArray()
WSReleaseInteger64Array()(64ビット整数),またはWSReleaseInteger32Array()(32ビット整数)
WSDisownFloatArray()
WSDisownDoubleArray()
WSDisownLongDoubleArray()
WSDisownIntegerList ()
WSDisownRealList ()
WSPutInteger64()(64ビット整数),またはWSPutInteger32()(32ビット整数)
WSPutLongDouble()
WSPutShortIntegerArrayData()
WSPutInteger16ArrayData()
WSPutIntegerArrayData()
WSPutInteger32ArrayData()
WSPutLongIntegerArrayData()
WSPutInteger64ArrayData()(64ビット整数),またはWSPutInteger32ArrayData()(32ビット整数)
WSPutFloatArrayData()
WSPutReal32ArrayData()
WSPutDoubleArrayData()
WSPutReal64ArrayData()
WSPutLongDoubleArrayData()
WSPutReal128ArrayData()
WSPutShortIntegerArray()
WSPutIntegerArray()
WSPutLongIntegerArray()
WSPutInteger64Array()(64ビット整数),またはWSPutInteger32Array()(32ビット整数)
WSPutFloatArray()
WSPutDoubleArray()
WSPutLongDoubleArray()
WSGetUnicodeSymbol()
WSPutUnicodeSymbol()
WSPut16BitCharacters()
WSPutUCS2Characters()
WSDisownUnicodeString ()
WSDisownUnicodeSymbol()
Interface 3では,リンクモードListenおよびConnectのリンクのデフォルトリンクプロトコルが変更されている.デフォルトで,WSTPライブラリはすべてのプラットフォームでリンクモードListenおよびConnectリンクに対する"SharedMemory"リンクを生成する.