All Manuals > LispWorks Foreign Language Interface User Guide and Reference Manual

NextPrevTopContents

Index

A

accessors

dereference 124

foreign-aref 131

foreign-slot-value 144

foreign-typed-aref 148

aggregate FLI types 12 , 14 - 16

aggregate types 12

align-of function 73

alloca function 74

allocate-dynamic-foreign-object function 74

allocate-foreign-block function 76

allocate-foreign-object function 77

allocating memory dynamically 7 , 78

Android 40

B

Block object 67

:boolean FLI type 203

:byte FLI type 204

C

C 67

calling from Lisp 2 , 67 , 110

calling from Lisp with a block 67

calling into Lisp 36 , 100

C++

calling from Lisp 2 , 67 , 110

calling from Lisp with a block 67

calling into Lisp 36 , 100

C code

declarations 243

calling convention

specifying 39

:c-array FLI type 204

cast-integer function 80

:char FLI type 206

CLANG 67

conditions

foreign-type-error 148

connected-module-pathname function 80

:connection-style

argument to register-module 171

:const FLI type 207

convert-from-foreign-string function 81

convert-integer-to-dynamic-foreign-object function 83

convert-to-dynamic-foreign-string function 85

convert-to-foreign-string function 83

copy-pointer function 87

D

decf-pointer function 88

define-c-enum macro 89

define-c-struct macro 91

define-c-typedef macro 95

define-c-union macro 96

define-foreign-block-callable-type macro 97

define-foreign-block-invoker macro 99

define-foreign-callable macro 35 , 39 , 100

define-foreign-converter macro 105

define-foreign-forward-reference-type macro 108

define-foreign-funcallable macro 109

define-foreign-function macro 35 , 110

define-foreign-pointer macro 26 , 117

define-foreign-type macro 11 , 118

define-foreign-variable macro 119

define-opaque-pointer macro 123

defining FLI functions 6

defining FLI types 4

defining forms

ambiguity 251

automated generation 243

defsystem macro 66

dereference accessor 124

disconnect-module function 127

DLLs

exporting functions from 64 - 66

documentation strings 12

:double FLI type 207

dynamic memory allocation 7

E

:ef-mb-string FLI type 208

:ef-wc-string FLI type 209

Embedded dynamic modules 66

:embedded-module member option 66

:enum FLI type 210

:enumeration FLI type 211

enum-symbols function 128

enum-symbol-value function 128

enum-symbol-value-pairs function 128

enum-values function 128

enum-value-symbol function 128

environment variable

DYLD_LIBRARY_PATH 174

LD_LIBRARY_PATH 174

PATH 173

F

fill-foreign-object function 130

:fixnum FLI type 211

FLI functions

defining 6

FLI templates 170 , 186

FLI type constructors 12

FLI types

aggregate 12 , 14 - 16

:boolean 203

:byte 204

:c-array 204

:char 206

:const 207

defining 4

defining new types 63

:double 207

:ef-mb-string 208

:ef-wc-string 209

:enum 210

:enumeration 211

:fixnum 211

:float 211

:foreign-array 212

foreign-block-pointer 67 , 213

:function 214

immediate 12 - 13

:int 215

:int16 215

:int32 215

:int64 215

:int8 215

:intmax 215

:intptr 215

:lisp-array 216

:lisp-double-float 218

:lisp-float 219

:lisp-simple-1d-array 219

:lisp-single-float 220

:long 220

:long-long 221

lpcstr 59

lpctstr 60

lpcwstr 60

lptstr 60

:one-of 222

:pointer 223

:ptr 223

:ptrdiff-t 224

:reference 224

:reference-pass 226

:reference-return 226

released-foreign-block-pointer 227

:short 227

:signed 228

:size-t 229

:ssize-t 229

str 59

:struct 230

:time-t 231

tstr 60

:uint16 232

:uint32 232

:uint64 232

:uint8 232

:uintmax 232

:uintptr 232

:union 233

:unsigned 234

vector-char16 236

vector-char2 236

vector-char3 236

vector-char32 236

vector-char4 236

vector-char8 236

vector-double2 237

vector-double3 237

vector-double4 237

vector-double8 237

vector-float16 237

vector-float2 237

vector-float3 237

vector-float4 237

vector-float8 237

vector-int16 236

vector-int2 236

vector-int3 236

vector-int4 236

vector-int8 236

vector-long1 237

vector-long2 237

vector-long3 237

vector-long4 237

vector-long8 237

vector-short16 236

vector-short2 236

vector-short3 236

vector-short32 236

vector-short4 236

vector-short8 236

vector-uchar16 236

vector-uchar2 236

vector-uchar3 236

vector-uchar32 236

vector-uchar4 236

vector-uchar8 236

vector-uint16 237

vector-uint2 237

vector-uint3 237

vector-uint4 237

vector-uint8 237

vector-ulong1 237

vector-ulong2 237

vector-ulong3 237

vector-ulong4 237

vector-ulong8 237

vector-ushort16 236

vector-ushort2 236

vector-ushort3 236

vector-ushort32 236

vector-ushort4 236

vector-ushort8 236

:void 240

:volatile 240

:wchar-t 241

:wrapper 241

wstr 60

:float FLI type 211

Foreign blocks 66

foreign callable

defining 35

passing and returning strings 38

Foreign Parser 243

foreign-aref accessor 131

:foreign-array FLI type 212

foreign-array-dimensions function 133

foreign-array-element-type function 133

foreign-array-pointer function 134

foreign-block-copy function 135

foreign-block-pointer FLI type 67 , 213

foreign-block-release function 136

foreign-function-pointer function 137

foreign-parser package symbols

process-foreign-file 248

foreign-slot-names function 139

foreign-slot-offset function 140

foreign-slot-pointer function 141

foreign-slot-type function 143

foreign-slot-value accessor 144

foreign-typed-aref accessor 148

foreign-type-equal-p function 147

foreign-type-error condition 148

free function 150

free-foreign-block function 150

free-foreign-object function 151

:function FLI type 214

functions

align-of 73

alloca 74

allocate-dynamic-foreign-object 74

allocate-foreign-block 76

allocate-foreign-object 77

cast-integer 80

connected-module-pathname 80

convert-from-foreign-string 81

convert-integer-to-dynamic-foreign-object 83

convert-to-dynamic-foreign-string 85

convert-to-foreign-string 83

copy-pointer 87

decf-pointer 88

disconnect-module 127

enum-symbols 128

enum-symbol-value 128

enum-symbol-value-pairs 128

enum-values 128

enum-value-symbol 128

fill-foreign-object 130

foreign-array-dimensions 133

foreign-array-element-type 133

foreign-array-pointer 134

foreign-block-copy 135

foreign-block-release 136

foreign-function-pointer 137

foreign-slot-names 139

foreign-slot-offset 140

foreign-slot-pointer 141

foreign-slot-type 143

foreign-type-equal-p 147

free 150

free-foreign-block 150

free-foreign-object 151

get-embedded-module 152

get-embedded-module-data 153

incf-pointer 155

install-embedded-module 156

make-integer-from-bytes 158

make-pointer 159

malloc 161

module-unresolved-symbols 161

null-pointer-p 162

pointer-address 163

pointer-element-size 164

pointer-element-type 165

pointer-element-type-p 166

pointer-eq 167

pointerp 169

pointer-pointer-type 168

print-collected-template-info 170

print-foreign-modules 170

process-foreign-file 248

register-module 171

replace-foreign-array 177

replace-foreign-object 181

set-locale 182

set-locale-encodings 183

setup-embedded-module 184

size-of 185

start-collecting-template-info 186

G

GCD 67

gdi+ 70

gdiplus 70

get-embedded-module function 152

get-embedded-module-data function 153

Grand Central Dispatch 67

graphics functions 70

I

immediate FLI types 12 - 13

incf-pointer function 155

install-embedded-module function 156

:int FLI type 215

:int16 FLI type 215

:int32 FLI type 215

int32 type 149

:int64 FLI type 215

int64 type 149

:int8 FLI type 215

:intmax FLI type 215

:intptr FLI type 215

iOS 40

L

languages supported 1

:lifetime

argument to register-module 171

Linux 40

Lisp

calling from C 36 , 100

calling from C++ 36 , 100

calling into C 2 , 67 , 110

calling into C++ 2 , 67 , 110

calling into C with a block 67

calling into C++ with a block 67

:lisp-array FLI type 216

:lisp-double-float FLI type 218

:lisp-float FLI type 219

:lisp-simple-1d-array FLI type 219

:lisp-single-float FLI type 220

*locale-external-formats* variable 157

:long FLI type 220

:long-long FLI type 221

lpcstr FLI type 59

lpctstr FLI type 60

lpcwstr FLI type 60

lptstr FLI type 60

M

macros

define-c-enum 89

define-c-struct 91

define-c-typedef 95

define-c-union 96

define-foreign-block-callable-type 97

define-foreign-block-invoker 99

define-foreign-callable 35 , 39 , 100

define-foreign-converter 105

define-foreign-forward-reference-type 108

define-foreign-funcallable 109

define-foreign-function 35 , 110

define-foreign-pointer 26 , 117

define-foreign-type 11 , 118

define-foreign-variable 119

define-opaque-pointer 123

defsystem 66

with-coerced-pointer 188

with-dynamic-foreign-objects 189

with-dynamic-lisp-array-pointer 193

with-foreign-block 194

with-foreign-slots 196

with-foreign-string 197

with-integer-bytes 199

with-local-foreign-block 200

make-integer-from-bytes function 158

make-pointer function 159

malloc 27

malloc function 161

memory allocation 7 , 27

module-unresolved-symbols function 161

N

New in LispWorks 7.0

64-bit integer FLI types supported in 32-bit LispWorks 103 , 126 , 146

:allow-sign-mismatch argument to replace-foreign-array 177

foreign-function-pointer function 137

hard-float and soft-float calling conventions for ARM platforms 40

released-foreign-block-pointer FLI type descriptor 227

Store a foreign module in a Lisp image with defsystem member option :embedded-module 66

New in LispWorks 7.1

ARM 64-bit platform 42

fastcall calling convention for 32-bit x86 platforms 42

iOS calling convention for ARM 32-bit platforms 40

specifying variadic foreign functions 115

*use-sse2-for-ext-vector-type* variable 186

:variadic-num-of-fixed keyword 115

vector types 16

null pointers 28

*null-pointer* variable 162

null-pointer-p function 162

O

:one-of FLI type 222

P

:pointer FLI type 223

pointer-address function 163

pointer-element-size function 164

pointer-element-type function 165

pointer-element-type-p function 166

pointer-eq function 167

pointerp function 169

pointer-pointer-type function 168

pointers 25 - 34

coercing 29

copying 27

creating 25

dereferencing 28 - 31

dynamically allocating 31

null pointers 28

test functions for 27 - 28

*preprocessor* variable 244 , 247

*preprocessor-format-string* variable 247

*preprocessor-include-path* variable 247 , 248

*preprocessor-options* variable 248

print-collected-template-info function 170

print-foreign-modules function 170

process-foreign-file function 248

:ptr FLI type 223

:ptrdiff-t FLI type 224

R

:reference FLI type 224

:reference-pass FLI type 226

:reference-return FLI type 226

register-module function 171

released-foreign-block-pointer FLI type 227

replace-foreign-array function 177

replace-foreign-object function 181

S

Self-contained examples

foreign blocks 71

miscellaneous examples 72

set-locale function 182

set-locale-encodings function 183

setup-embedded-module function 184

:short FLI type 227

:signed FLI type 228

size-of function 185

:size-t FLI type 229

:ssize-t FLI type 229

start-collecting-template-info function 186

str FLI type 59

strings

modifying in C 50

passing to C 45 , 47

returning from C 49

:struct FLI type 230

T

templates, FLI 170 , 186

:time-t FLI type 231

tstr FLI type 60

type constructors 12

types

int32 149

int64 149

U

:uint16 FLI type 232

:uint32 FLI type 232

:uint64 FLI type 232

:uint8 FLI type 232

:uintmax FLI type 232

:uintptr FLI type 232

:union FLI type 233

:unsigned FLI type 234

*use-sse2-for-ext-vector-type* variable 186

V

variables

*locale-external-formats* 157

*null-pointer* 162

*preprocessor* 244 , 247

*preprocessor-format-string* 247

*preprocessor-include-path* 247 , 248

*preprocessor-options* 248

*use-sse2-for-ext-vector-type* 186

vector-char16 FLI type 236

vector-char2 FLI type 236

vector-char3 FLI type 236

vector-char32 FLI type 236

vector-char4 FLI type 236

vector-char8 FLI type 236

vector-double2 FLI type 237

vector-double3 FLI type 237

vector-double4 FLI type 237

vector-double8 FLI type 237

vector-float16 FLI type 237

vector-float2 FLI type 237

vector-float3 FLI type 237

vector-float4 FLI type 237

vector-float8 FLI type 237

vector-int16 FLI type 236

vector-int2 FLI type 236

vector-int3 FLI type 236

vector-int4 FLI type 236

vector-int8 FLI type 236

vector-long1 FLI type 237

vector-long2 FLI type 237

vector-long3 FLI type 237

vector-long4 FLI type 237

vector-long8 FLI type 237

vector-short16 FLI type 236

vector-short2 FLI type 236

vector-short3 FLI type 236

vector-short32 FLI type 236

vector-short4 FLI type 236

vector-short8 FLI type 236

vector-uchar16 FLI type 236

vector-uchar2 FLI type 236

vector-uchar3 FLI type 236

vector-uchar32 FLI type 236

vector-uchar4 FLI type 236

vector-uchar8 FLI type 236

vector-uint16 FLI type 237

vector-uint2 FLI type 237

vector-uint3 FLI type 237

vector-uint4 FLI type 237

vector-uint8 FLI type 237

vector-ulong1 FLI type 237

vector-ulong2 FLI type 237

vector-ulong3 FLI type 237

vector-ulong4 FLI type 237

vector-ulong8 FLI type 237

vector-ushort16 FLI type 236

vector-ushort2 FLI type 236

vector-ushort3 FLI type 236

vector-ushort32 FLI type 236

vector-ushort4 FLI type 236

vector-ushort8 FLI type 236

:void FLI type 240

:volatile FLI type 240

W

:wchar-t FLI type 241

with-coerced-pointer macro 188

with-dynamic-foreign-objects macro 189

with-dynamic-lisp-array-pointer macro 193

with-foreign-block macro 194

with-foreign-slots macro 196

with-foreign-string macro 197

with-integer-bytes macro 199

with-local-foreign-block macro 200

:wrapper FLI type 241

wstr FLI type 60


LispWorks Foreign Language Interface User Guide and Reference Manual - 29 Sep 2017

NextPrevTopContents