Skip to content

Commit e127c18

Browse files
committed
[[ LCB ]] Improved foreign types.
The 'builtin' foreign types such as bool are no longer builtin. They are now defined in the module com.livecode.foreign (in libstdscript) as 'foreign types'. The main ones are part of libfoundation, but more specific ones should be defined in module-foreign.cpp - a NativeCString type has been added as an example. The compiler will no longer complain about using a 'foreign' type in high-level context - it will work, but will be quite inefficient as foreign types which have a 'bridge' specify always convert to/from the bridge type when moving to/from slots unless they are an argument to a foreign function.
1 parent 5a912ec commit e127c18

30 files changed

+288
-106
lines changed

engine/src/canvas.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ This module specifies the syntax definitions and bindings for canvas drawing ope
2020

2121
module com.livecode.canvas
2222

23+
use com.livecode.foreign
24+
2325
public type CanvasFloat is float
2426

2527
// Point

engine/src/engine.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ References: ResolveScriptObject(statement), MyScriptObject(expression)
3535

3636
module com.livecode.engine
3737

38+
use com.livecode.foreign
39+
3840
public foreign type ScriptObject binds to "kMCEngineScriptObjectTypeInfo"
3941

4042
public foreign handler MCEngineExecResolveScriptObject(in pObjectId) as ScriptObject binds to "<builtin>"

engine/src/modules.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ extern "C"
2323
{
2424

2525
struct builtin_module_descriptor {};
26+
extern builtin_module_descriptor __com_livecode_foreign_module_info;
2627
extern builtin_module_descriptor __com_livecode_arithmetic_module_info;
2728
extern builtin_module_descriptor __com_livecode_array_module_info;
2829
extern builtin_module_descriptor __com_livecode_binary_module_info;
@@ -51,6 +52,7 @@ extern "C"
5152

5253
builtin_module_descriptor* g_builtin_modules[] =
5354
{
55+
&__com_livecode_foreign_module_info,
5456
&__com_livecode_arithmetic_module_info,
5557
&__com_livecode_array_module_info,
5658
&__com_livecode_binary_module_info,
@@ -127,21 +129,26 @@ extern "C"
127129

128130
}
129131

132+
extern bool MCForeignModuleInitialize(void);
130133
extern bool MCCanvasModuleInitialize(void);
131134
extern bool MCEngineModuleInitialize(void);
132135
bool MCModulesInitialize(void)
133136
{
137+
if (!MCForeignModuleInitialize())
138+
return false;
134139
if (!MCCanvasModuleInitialize())
135140
return false;
136141
if (!MCEngineModuleInitialize())
137142
return false;
138143
return true;
139144
}
140145

146+
extern void MCForeignModuleFinalize(void);
141147
extern void MCCanvasModuleFinalize(void);
142148
extern void MCEngineModuleFinalize(void);
143149
void MCModulesFinalize(void)
144150
{
145151
MCEngineModuleFinalize();
146152
MCCanvasModuleFinalize();
153+
MCForeignModuleFinalize();
147154
}

engine/src/widget.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ Summary: Sent when the widget is double-clicked.
341341

342342
module com.livecode.widget
343343

344+
use com.livecode.foreign
345+
344346
use com.livecode.canvas
345347
use com.livecode.engine
346348

libscript/foreign.mlc

Whitespace-only changes.

libscript/libscript.xcodeproj/project.pbxproj

Lines changed: 11 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,14 @@
99
/* Begin PBXBuildFile section */
1010
4D21B5AA19DDAA0C00B64BEF /* script-private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D21B5A919DDAA0C00B64BEF /* script-private.h */; };
1111
4D21B5FF19E3DFCB00B64BEF /* script-module.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D21B5FE19E3DFCB00B64BEF /* script-module.cpp */; };
12-
4D21B60119E3DFED00B64BEF /* script-package.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D21B60019E3DFED00B64BEF /* script-package.cpp */; };
1312
4D21B60319E3DFF800B64BEF /* script-instance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D21B60219E3DFF800B64BEF /* script-instance.cpp */; };
1413
4D322F2219DD95A4008476D3 /* script-object.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D322F2119DD95A4008476D3 /* script-object.cpp */; };
1514
4D44E3641A139F460073FFA2 /* libscript.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D322F1619DD945E008476D3 /* libscript.a */; };
1615
4D44E3651A139F480073FFA2 /* libfoundation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D44E35F1A139D8F0073FFA2 /* libfoundation.a */; };
1716
4D44E3671A139F590073FFA2 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D44E3661A139F590073FFA2 /* CoreFoundation.framework */; };
18-
4D79B6801A273BA000DD750C /* module-arithmetic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6591A273BA000DD750C /* module-arithmetic.cpp */; };
19-
4D79B6811A273BA000DD750C /* module-binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65A1A273BA000DD750C /* module-binary.cpp */; };
20-
4D79B6821A273BA000DD750C /* module-bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65B1A273BA000DD750C /* module-bitwise.cpp */; };
21-
4D79B6831A273BA000DD750C /* module-byte.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65C1A273BA000DD750C /* module-byte.cpp */; };
22-
4D79B6841A273BA000DD750C /* module-char.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65D1A273BA000DD750C /* module-char.cpp */; };
23-
4D79B6851A273BA000DD750C /* module-encoding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65E1A273BA000DD750C /* module-encoding.cpp */; };
24-
4D79B6871A273BA000DD750C /* module-list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6601A273BA000DD750C /* module-list.cpp */; };
25-
4D79B6881A273BA000DD750C /* module-logic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6611A273BA000DD750C /* module-logic.cpp */; };
26-
4D79B68A1A273BA000DD750C /* module-math_foundation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6631A273BA000DD750C /* module-math_foundation.cpp */; };
27-
4D79B68B1A273BA000DD750C /* module-math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6641A273BA000DD750C /* module-math.cpp */; };
28-
4D79B68C1A273BA000DD750C /* module-sort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6651A273BA000DD750C /* module-sort.cpp */; };
29-
4D79B68D1A273BA000DD750C /* module-string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6661A273BA000DD750C /* module-string.cpp */; };
30-
4D79B68E1A273BA000DD750C /* module-type_convert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6671A273BA000DD750C /* module-type_convert.cpp */; };
31-
4D79B68F1A273BA000DD750C /* module-type.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6681A273BA000DD750C /* module-type.cpp */; };
17+
4D4EAFDD1A7A671D0067E90B /* foreign.mlc in Sources */ = {isa = PBXBuildFile; fileRef = 4DCBCD6D1A7A5D4000D30864 /* foreign.mlc */; };
18+
4D4EAFDE1A7A672C0067E90B /* script-package.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D21B60019E3DFED00B64BEF /* script-package.cpp */; };
19+
4D4EAFE01A7A67B30067E90B /* module-foreign.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D4EAFDF1A7A67B30067E90B /* module-foreign.cpp */; };
3220
4D79B6911A273BBB00DD750C /* module-arithmetic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6591A273BA000DD750C /* module-arithmetic.cpp */; };
3321
4D79B6921A273BBB00DD750C /* module-binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65A1A273BA000DD750C /* module-binary.cpp */; };
3422
4D79B6931A273BBB00DD750C /* module-bitwise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B65B1A273BA000DD750C /* module-bitwise.cpp */; };
@@ -59,15 +47,12 @@
5947
4DDA20451A136FF4001B0CA2 /* script-builder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DDA20441A136FF4001B0CA2 /* script-builder.cpp */; };
6048
5DDE27B91A37909500D5ABD2 /* math-foundation.mlc in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6781A273BA000DD750C /* math-foundation.mlc */; };
6149
766113441A2F298E0042DE7F /* list.mlc in Sources */ = {isa = PBXBuildFile; fileRef = 4D79B6751A273BA000DD750C /* list.mlc */; };
62-
766113891A31FB640042DE7F /* module-array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 766113881A31FB640042DE7F /* module-array.cpp */; };
6350
7661138A1A31FB690042DE7F /* module-array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 766113881A31FB640042DE7F /* module-array.cpp */; };
6451
7661138D1A31FE1B0042DE7F /* array.mlc in Sources */ = {isa = PBXBuildFile; fileRef = 7661138C1A31FDFD0042DE7F /* array.mlc */; };
65-
76FEC2311A5D3F0900188FD4 /* module-file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 76FEC2301A5D3F0900188FD4 /* module-file.cpp */; };
6652
76FEC2341A5D3F1600188FD4 /* module-file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 76FEC2301A5D3F0900188FD4 /* module-file.cpp */; };
6753
76FEC2361A5D43E000188FD4 /* file.mlc in Sources */ = {isa = PBXBuildFile; fileRef = 76FEC22F1A5D3F0900188FD4 /* file.mlc */; };
6854
C73CD3531A6D01690021F87A /* module-date.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C73CD34F1A6D01690021F87A /* module-date.cpp */; };
6955
C73CD3551A6D01690021F87A /* module-system.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C73CD3501A6D01690021F87A /* module-system.cpp */; };
70-
C741ECC81A6932E60096D171 /* module-stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C741ECC61A6932E60096D171 /* module-stream.cpp */; };
7156
C741ECC91A6932E60096D171 /* module-stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C741ECC61A6932E60096D171 /* module-stream.cpp */; };
7257
C741ECD11A6933CF0096D171 /* stream.mlc in Sources */ = {isa = PBXBuildFile; fileRef = C741ECC71A6932E60096D171 /* stream.mlc */; };
7358
C7A74E1A1A6D08290031099F /* date.mlc in Sources */ = {isa = PBXBuildFile; fileRef = C73CD34E1A6D01690021F87A /* date.mlc */; };
@@ -172,6 +157,7 @@
172157
4D44E3591A139D510073FFA2 /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = ../rules/Release.xcconfig; sourceTree = "<group>"; };
173158
4D44E35A1A139D8F0073FFA2 /* libfoundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libfoundation.xcodeproj; path = ../libfoundation/libfoundation.xcodeproj; sourceTree = "<group>"; };
174159
4D44E3661A139F590073FFA2 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
160+
4D4EAFDF1A7A67B30067E90B /* module-foreign.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "module-foreign.cpp"; path = "src/module-foreign.cpp"; sourceTree = "<group>"; };
175161
4D79B6541A273B6900DD750C /* libstdscript.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libstdscript.a; sourceTree = BUILT_PRODUCTS_DIR; };
176162
4D79B6591A273BA000DD750C /* module-arithmetic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "module-arithmetic.cpp"; path = "src/module-arithmetic.cpp"; sourceTree = "<group>"; };
177163
4D79B65A1A273BA000DD750C /* module-binary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "module-binary.cpp"; path = "src/module-binary.cpp"; sourceTree = "<group>"; };
@@ -205,9 +191,9 @@
205191
4D79B67D1A273BA000DD750C /* type-convert.mlc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "type-convert.mlc"; path = "src/type-convert.mlc"; sourceTree = "<group>"; };
206192
4D79B67E1A273BA000DD750C /* type.mlc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = type.mlc; path = src/type.mlc; sourceTree = "<group>"; };
207193
4D79B6B11A273C4E00DD750C /* lc-compile.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "lc-compile.xcodeproj"; path = "../toolchain/lc-compile/lc-compile.xcodeproj"; sourceTree = "<group>"; };
194+
4DCBCD6D1A7A5D4000D30864 /* foreign.mlc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = foreign.mlc; path = src/foreign.mlc; sourceTree = "<group>"; };
208195
4DDA20441A136FF4001B0CA2 /* script-builder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "script-builder.cpp"; path = "src/script-builder.cpp"; sourceTree = "<group>"; };
209196
4DDA20661A139BA1001B0CA2 /* libscript-test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "libscript-test"; sourceTree = BUILT_PRODUCTS_DIR; };
210-
7210DCA31A37102F00C23D23 /* module-helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "module-helper.cpp"; path = "src/module-helper.cpp"; sourceTree = "<group>"; };
211197
766113881A31FB640042DE7F /* module-array.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "module-array.cpp"; path = "src/module-array.cpp"; sourceTree = "<group>"; };
212198
7661138C1A31FDFD0042DE7F /* array.mlc */ = {isa = PBXFileReference; lastKnownFileType = text; name = array.mlc; path = src/array.mlc; sourceTree = "<group>"; };
213199
76FEC22F1A5D3F0900188FD4 /* file.mlc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = file.mlc; path = src/file.mlc; sourceTree = "<group>"; };
@@ -330,7 +316,6 @@
330316
4D79B65D1A273BA000DD750C /* module-char.cpp */,
331317
C73CD34F1A6D01690021F87A /* module-date.cpp */,
332318
4D79B65E1A273BA000DD750C /* module-encoding.cpp */,
333-
7210DCA31A37102F00C23D23 /* module-helper.cpp */,
334319
4D79B6601A273BA000DD750C /* module-list.cpp */,
335320
4D79B6611A273BA000DD750C /* module-logic.cpp */,
336321
4D79B6631A273BA000DD750C /* module-math_foundation.cpp */,
@@ -341,8 +326,9 @@
341326
C73CD3501A6D01690021F87A /* module-system.cpp */,
342327
4D79B6671A273BA000DD750C /* module-type_convert.cpp */,
343328
4D79B6681A273BA000DD750C /* module-type.cpp */,
344-
76FEC22F1A5D3F0900188FD4 /* file.mlc */,
345329
76FEC2301A5D3F0900188FD4 /* module-file.cpp */,
330+
4D4EAFDF1A7A67B30067E90B /* module-foreign.cpp */,
331+
76FEC22F1A5D3F0900188FD4 /* file.mlc */,
346332
4D79B66A1A273BA000DD750C /* arithmetic.mlc */,
347333
7661138C1A31FDFD0042DE7F /* array.mlc */,
348334
4D79B66B1A273BA000DD750C /* binary.mlc */,
@@ -364,6 +350,7 @@
364350
C73CD3511A6D01690021F87A /* system.mlc */,
365351
4D79B67D1A273BA000DD750C /* type-convert.mlc */,
366352
4D79B67E1A273BA000DD750C /* type.mlc */,
353+
4DCBCD6D1A7A5D4000D30864 /* foreign.mlc */,
367354
);
368355
name = "Library Source";
369356
sourceTree = "<group>";
@@ -529,37 +516,19 @@
529516
isa = PBXSourcesBuildPhase;
530517
buildActionMask = 2147483647;
531518
files = (
532-
4D79B68B1A273BA000DD750C /* module-math.cpp in Sources */,
533-
4D79B68C1A273BA000DD750C /* module-sort.cpp in Sources */,
519+
4D4EAFDE1A7A672C0067E90B /* script-package.cpp in Sources */,
534520
4D322F2219DD95A4008476D3 /* script-object.cpp in Sources */,
535-
76FEC2311A5D3F0900188FD4 /* module-file.cpp in Sources */,
536-
4D79B6801A273BA000DD750C /* module-arithmetic.cpp in Sources */,
537-
4D79B6881A273BA000DD750C /* module-logic.cpp in Sources */,
538-
4D79B68E1A273BA000DD750C /* module-type_convert.cpp in Sources */,
539-
C741ECC81A6932E60096D171 /* module-stream.cpp in Sources */,
540-
4D79B6871A273BA000DD750C /* module-list.cpp in Sources */,
541521
4D21B5FF19E3DFCB00B64BEF /* script-module.cpp in Sources */,
542522
4D21B60319E3DFF800B64BEF /* script-instance.cpp in Sources */,
543523
4DDA20451A136FF4001B0CA2 /* script-builder.cpp in Sources */,
544-
4D79B6821A273BA000DD750C /* module-bitwise.cpp in Sources */,
545-
4D79B6831A273BA000DD750C /* module-byte.cpp in Sources */,
546-
4D79B6851A273BA000DD750C /* module-encoding.cpp in Sources */,
547-
4D21B60119E3DFED00B64BEF /* script-package.cpp in Sources */,
548-
C7A74E161A6D07CC0031099F /* module-system.cpp in Sources */,
549-
C7A74E171A6D07DF0031099F /* module-date.cpp in Sources */,
550-
4D79B68F1A273BA000DD750C /* module-type.cpp in Sources */,
551-
766113891A31FB640042DE7F /* module-array.cpp in Sources */,
552-
4D79B6811A273BA000DD750C /* module-binary.cpp in Sources */,
553-
4D79B6841A273BA000DD750C /* module-char.cpp in Sources */,
554-
4D79B68A1A273BA000DD750C /* module-math_foundation.cpp in Sources */,
555-
4D79B68D1A273BA000DD750C /* module-string.cpp in Sources */,
556524
);
557525
runOnlyForDeploymentPostprocessing = 0;
558526
};
559527
4D79B6501A273B6900DD750C /* Sources */ = {
560528
isa = PBXSourcesBuildPhase;
561529
buildActionMask = 2147483647;
562530
files = (
531+
4D4EAFDD1A7A671D0067E90B /* foreign.mlc in Sources */,
563532
C741ECD11A6933CF0096D171 /* stream.mlc in Sources */,
564533
76FEC2361A5D43E000188FD4 /* file.mlc in Sources */,
565534
5DDE27B91A37909500D5ABD2 /* math-foundation.mlc in Sources */,
@@ -576,6 +545,7 @@
576545
4D79B6DB1A27405600DD750C /* logic.mlc in Sources */,
577546
4D79B6DE1A27405600DD750C /* math.mlc in Sources */,
578547
4D79B6DF1A27405600DD750C /* segmentchunk.mlc in Sources */,
548+
4D4EAFE01A7A67B30067E90B /* module-foreign.cpp in Sources */,
579549
4D79B6E01A27405600DD750C /* sort.mlc in Sources */,
580550
4D79B6E11A27405600DD750C /* string.mlc in Sources */,
581551
C7A74E1B1A6D083D0031099F /* system.mlc in Sources */,

libscript/src/arithmetic.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ This library consists of the basic arithmetic operations of standard library of
2020

2121
module com.livecode.arithmetic
2222

23+
use com.livecode.foreign
24+
2325
--
2426

2527
public foreign handler MCArithmeticExecAddIntegerToInteger(in Value as int, inout Target as int) as undefined binds to "<builtin>"

libscript/src/array.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ This library consists of the operations on arrays included in the standard libra
2020

2121
module com.livecode.array
2222

23+
use com.livecode.foreign
24+
2325
public foreign handler MCArrayEvalKeysOf(in Target as array, out Value as list) as undefined binds to "<builtin>"
2426
public foreign handler MCArrayEvalElementsOf(in Target as array, out Value as list) as undefined binds to "<builtin>"
2527

libscript/src/binary.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ This library consists of the operations on binary strings provided by the standa
2020

2121
module com.livecode.binary
2222

23+
use com.livecode.foreign
24+
2325
public foreign handler MCBinaryExecPutBytesBefore(in Source as data, inout Target as data) as undefined binds to "<builtin>"
2426
public foreign handler MCBinaryExecPutBytesAfter(in Source as data, inout Target as data) as undefined binds to "<builtin>"
2527

libscript/src/bitwise.mlc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ This module specifies the bitwise operations on integers included in the standar
2020

2121
module com.livecode.bitwise
2222

23+
use com.livecode.foreign
24+
2325
public foreign handler MCBitwiseEvalBitwiseAnd(in Left as int, in Right as int, out Value as int) as undefined binds to "<builtin>"
2426
public foreign handler MCBitwiseEvalBitwiseOr(in Left as int, in Right as int, out Value as int) as undefined binds to "<builtin>"
2527
public foreign handler MCBitwiseEvalBitwiseNot(in Operand as int, out Value as int) as undefined binds to "<builtin>"

0 commit comments

Comments
 (0)