Skip to content

Commit 7294c0b

Browse files
committed
CogVM source as per VMMaker.oscog-eem.2504/FileAttributesPlugin.oscog-akg.49
Slang: Fix a bug in type inferrence that resulted in the inferred return type of findMapLocationForMcpc:inMethod: to flip between usqInt (correct) and sqInt (incorrect). addTypesFor:to:in: needed to answer if it was inferring a return type from an untyped variable, as well as an untyped method. Plugins: FileAttributesPlugin v2.0.8 Fix some of the doits in Slang Test Workspace.text
1 parent f954a91 commit 7294c0b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+943
-957
lines changed

image/Slang Test Workspace.text

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
"Here are some doits to get Slang to generate a single method to the transcript"[Transcript show: [| sel vmm s cg | sel := #scavenge:. vmm := (VMMaker forPlatform: 'Cross') interpreterClass: StackInterpreter; options: #(ObjectMemory Spur64BitCoMemoryManager). cg := [vmm buildCodeGeneratorForInterpreter] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. "to break at inlining decisions or type inferrende uncomment the following. If src & dest are different selectors, breaks on inlining. If src & dest are the same selector, breaks on type inference in sel." "cg breakSrcInlineSelector: sel; breakDestInlineSelector: sel; breakOnInline: false". cg vmClass preGenerationHook: cg. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { sel }. cg prepareMethods. ((sel beginsWith: 'bytecode') or: [sel endsWith: 'Bytecode']) ifTrue: [cg doBasicInlining: true] ifFalse: [cg doInlining: true]. s := ReadWriteStream on: String new. (cg methodNamed: sel) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| sel vmm s cg | sel := #primitiveVoidVMStateForMethod. vmm := (VMMaker forPlatform: 'Cross') interpreterClass: CoInterpreter"MT"; options: {#ObjectMemory. Cogit chooseCogitClass name}. cg := [vmm buildCodeGeneratorForInterpreter] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg vmClass preGenerationHook: cg. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { sel }. cg prepareMethods. ((sel beginsWith: 'bytecode') or: [sel endsWith: 'Bytecode']) ifTrue: [cg doBasicInlining: true] ifFalse: [cg doInlining: true]. s := ReadWriteStream on: String new. (cg methodNamed: sel) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| sel s vmm cg | sel := #compileEntry. vmm := VMMaker forPlatform: 'Cross'. cg := [vmm interpreterClass: CoInterpreter; options: {#ObjectMemory. Cogit chooseCogitClass name}; buildCodeGeneratorForCogit] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg vmClass preGenerationHook: cg. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { #compactCogCompiledCode. sel }. cg prepareMethods. cg doInlining: cg vmClass doInlining. s := ReadWriteStream on: String new. (cg methodNamed: sel) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| tm s vmm cg | vmm := VMMaker forPlatform: 'Cross'. cg := [vmm interpreterClass: StackInterpreter; buildCodeGeneratorForInterpreter] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg vmClass preGenerationHook: cg. tm := (StackInterpreter compile: 'foo self cppIf: ''ARBITRARY'' ifTrue: [self cCode: ''arbi''] ifFalse: [self cCode: ''trary'']. self cppIf: (self cCode: ''ARBITRARY'') ifTrue: [self cCode: ''arbi''] ifFalse: [self cCode: ''trary'']' classified: nil notifying: nil trailer: CompiledMethodTrailer empty ifFail: []) node asTranslationMethodOfClass: cg translationMethodClass. cg addMethod: tm. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { #foo }. cg prepareMethods. cg doInlining: true. s := ReadWriteStream on: String new. (cg methodNamed: #foo) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| plugin sel s vmm cg | plugin := ThreadedARMFFIPlugin. sel := #primitiveCallout. vmm := VMMaker forPlatform: 'Cross'. cg := [plugin buildCodeGenerator] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg breakSrcInlineSelector: #cdigitMontgomery:len:times:len:modulo:len:mInvModB:into:; breakDestInlineSelector: sel; breakOnInline: "false"true. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { sel }. cg prepareMethods. cg doInlining: true. s := ReadWriteStream on: String new. (cg anyMethodNamed: sel) removeUnusedTempsAndNilIfRequiredIn: cg; halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| plugin s cg | plugin := FileCopyPlugin"UnixOSProcessPlugin". cg := plugin buildCodeGenerator. cg inferTypesForImplicitlyTypedVariablesAndMethods. plugin pruneUnusedInterpreterPluginMethodsIn: cg. s := ReadWriteStream on: String new. cg emitCCodeOn: s doInlining: true doAssertions: false. s contents] value].[| cg |cg := BitBltSimulation buildCodeGeneratorUpTo: BitBltSimulation.cg inferTypesForImplicitlyTypedVariablesAndMethods].
1+
"Here are some doits to get Slang to generate a single method to the transcript"[Transcript show: [| sel vmm s cg | sel := #scavenge:. vmm := (VMMaker forPlatform: 'Cross') interpreterClass: StackInterpreter; options: #(ObjectMemory Spur64BitCoMemoryManager). cg := [vmm buildCodeGeneratorForInterpreter] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. "to break at inlining decisions or type inferrence uncomment the following. If src & dest are different selectors, breaks on inlining. If src & dest are the same selector, breaks on type inference in sel." "cg breakSrcInlineSelector: sel; breakDestInlineSelector: sel; breakOnInline: false". cg vmClass preGenerationHook: cg. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { sel }. cg prepareMethods. ((sel beginsWith: 'bytecode') or: [sel endsWith: 'Bytecode']) ifTrue: [cg doBasicInlining: true] ifFalse: [cg doInlining: true]. s := ReadWriteStream on: String new. (cg methodNamed: sel) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| sel vmm s cg | sel := #primitiveVoidVMStateForMethod. vmm := (VMMaker forPlatform: 'Cross') interpreterClass: CoInterpreter"MT"; options: {#Cogit. Cogit chooseCogitClass name}. cg := [vmm buildCodeGeneratorForInterpreter] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg vmClass preGenerationHook: cg. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { sel }. cg prepareMethods. ((sel beginsWith: 'bytecode') or: [sel endsWith: 'Bytecode']) ifTrue: [cg doBasicInlining: true] ifFalse: [cg doInlining: true]. s := ReadWriteStream on: String new. (cg methodNamed: sel) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| sel s vmm cg | sel := #compileEntry. vmm := VMMaker forPlatform: 'Cross'. cg := [vmm interpreterClass: CoInterpreter; options: {#Cogit. Cogit chooseCogitClass name}; buildCodeGeneratorForCogit] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg vmClass preGenerationHook: cg. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { #compactCogCompiledCode. sel }. cg prepareMethods. cg doInlining: cg vmClass doInlining. s := ReadWriteStream on: String new. (cg methodNamed: sel) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| tm s vmm cg | vmm := VMMaker forPlatform: 'Cross'. cg := [vmm interpreterClass: StackInterpreter; buildCodeGeneratorForInterpreter] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg vmClass preGenerationHook: cg. tm := (StackInterpreter compile: 'foo self cppIf: ''ARBITRARY'' ifTrue: [self cCode: ''arbi''] ifFalse: [self cCode: ''trary'']. self cppIf: (self cCode: ''ARBITRARY'') ifTrue: [self cCode: ''arbi''] ifFalse: [self cCode: ''trary'']' classified: nil notifying: nil trailer: CompiledMethodTrailer empty ifFail: []) node asTranslationMethodOfClass: cg translationMethodClass. cg addMethod: tm. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { #foo }. cg prepareMethods. cg doInlining: true. s := ReadWriteStream on: String new. (cg methodNamed: #foo) halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| plugin sel s vmm cg | plugin := ThreadedARMFFIPlugin. sel := #primitiveCallout. vmm := VMMaker forPlatform: 'Cross'. cg := [plugin buildCodeGenerator] on: Notification do: [:ex| ex tag == #getVMMaker ifTrue: [ex resume: vmm] ifFalse: [ex pass]]. cg breakSrcInlineSelector: #cdigitMontgomery:len:times:len:modulo:len:mInvModB:into:; breakDestInlineSelector: sel; breakOnInline: "false"true. cg inferTypesForImplicitlyTypedVariablesAndMethods. cg retainMethods: { sel }. cg prepareMethods. cg doInlining: true. s := ReadWriteStream on: String new. (cg anyMethodNamed: sel) removeUnusedTempsAndNilIfRequiredIn: cg; halt; emitCCodeOn: s generator: cg. s contents] value].[Transcript show: [| plugin s cg | plugin := FileCopyPlugin"UnixOSProcessPlugin". cg := plugin buildCodeGenerator. cg inferTypesForImplicitlyTypedVariablesAndMethods. plugin pruneUnusedInterpreterPluginMethodsIn: cg. s := ReadWriteStream on: String new. cg emitCCodeOn: s doInlining: true doAssertions: false. s contents] value].[| cg |cg := BitBltSimulation buildCodeGeneratorUpTo: BitBltSimulation.cg inferTypesForImplicitlyTypedVariablesAndMethods].

nsspur64src/vm/cogit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGenerator VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e
2+
CCodeGenerator VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
33
*/
44

55

nsspur64src/vm/cogitX64SysV.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* Automatically generated by
2-
CCodeGenerator VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e
2+
CCodeGenerator VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
33
from
4-
StackToRegisterMappingCogit VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e
4+
StackToRegisterMappingCogit VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
55
*/
6-
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e " __DATE__ ;
6+
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 " __DATE__ ;
77
char *__cogitBuildInfo = __buildInfo;
88

99

@@ -583,7 +583,7 @@ static sqInt NoDbgRegParms fillInBlockHeadersAt(sqInt startAddress);
583583
static CogMethod * NoDbgRegParms fillInMethodHeadersizeselector(CogMethod *method, sqInt size, sqInt selector);
584584
static sqInt NoDbgRegParms findBackwardBranchIsBackwardBranchMcpcBcpcMatchingBcpc(BytecodeDescriptor *descriptor, sqInt isBackwardBranchAndAnnotation, char *mcpc, sqInt bcpc, void *targetBcpc);
585585
static usqInt NoDbgRegParms findBlockMethodWithEntrystartBcpc(sqInt blockEntryMcpc, sqInt startBcpc);
586-
static sqInt NoDbgRegParms findMapLocationForMcpcinMethod(usqInt targetMcpc, CogMethod *cogMethod);
586+
static usqInt NoDbgRegParms findMapLocationForMcpcinMethod(usqInt targetMcpc, CogMethod *cogMethod);
587587
extern CogBlockMethod * findMethodForStartBcpcinHomeMethod(sqInt startbcpc, CogMethod *cogMethod);
588588
static sqInt NoDbgRegParms findIsBackwardBranchMcpcBcpcMatchingMcpc(BytecodeDescriptor *descriptor, sqInt isBackwardBranchAndAnnotation, char *mcpc, sqInt bcpc, void *targetMcpc);
589589
static sqInt NoDbgRegParms firstMappedPCFor(CogMethod *cogMethod);
@@ -5812,7 +5812,7 @@ findBlockMethodWithEntrystartBcpc(sqInt blockEntryMcpc, sqInt startBcpc)
58125812
}
58135813

58145814
/* Cogit>>#findMapLocationForMcpc:inMethod: */
5815-
static sqInt NoDbgRegParms
5815+
static usqInt NoDbgRegParms
58165816
findMapLocationForMcpcinMethod(usqInt targetMcpc, CogMethod *cogMethod)
58175817
{
58185818
sqInt annotation;

nsspur64src/vm/cogitX64WIN64.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* Automatically generated by
2-
CCodeGenerator VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e
2+
CCodeGenerator VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
33
from
4-
StackToRegisterMappingCogit VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e
4+
StackToRegisterMappingCogit VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
55
*/
6-
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.2502 uuid: 698cab19-5a66-4b07-b38f-727d0c267c7e " __DATE__ ;
6+
static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 " __DATE__ ;
77
char *__cogitBuildInfo = __buildInfo;
88

99

@@ -656,7 +656,7 @@ static BytecodeDescriptor * loadBytesAndGetDescriptor(void);
656656
static void NoDbgRegParms loadSubsequentBytesForDescriptorat(BytecodeDescriptor *descriptor, sqInt pc);
657657
static AbstractInstruction * NoDbgRegParms gMoveAwR(sqInt address, sqInt reg);
658658
static AbstractInstruction * NoDbgRegParms gMoveCwR(sqInt wordConstant, sqInt reg);
659-
static sqInt NoDbgRegParms mapEndFor(CogMethod *cogMethod);
659+
static usqInt NoDbgRegParms mapEndFor(CogMethod *cogMethod);
660660
static sqInt NoDbgRegParms mapForperformUntilarg(CogMethod *cogMethod, sqInt (*functionSymbol)(sqInt annotation, char *mcpc, sqInt arg), sqInt arg);
661661
static sqInt NoDbgRegParms mapObjectReferencesInClosedPIC(CogMethod *cPIC);
662662
static void mapObjectReferencesInGeneratedRuntime(void);
@@ -2790,7 +2790,7 @@ static sqInt NoDbgRegParms
27902790
blockDispatchTargetsForperformarg(CogMethod *cogMethod, usqInt (*binaryFunction)(sqInt mcpc, sqInt arg), sqInt arg)
27912791
{
27922792
sqInt blockEntry;
2793-
sqInt end;
2793+
usqInt end;
27942794
sqInt pc;
27952795
sqInt result;
27962796
usqInt targetpc;
@@ -7642,7 +7642,7 @@ gMoveCwR(sqInt wordConstant, sqInt reg)
76427642
/* Answer the address of the null byte at the end of the method map. */
76437643

76447644
/* Cogit>>#mapEndFor: */
7645-
static sqInt NoDbgRegParms
7645+
static usqInt NoDbgRegParms
76467646
mapEndFor(CogMethod *cogMethod)
76477647
{
76487648
usqInt end;

nsspur64src/vm/cointerp.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-nice.2500 uuid: c991a570-d1c2-4445-b94d-83b6da74f435
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
33
from
4-
CoInterpreter VMMaker.oscog-nice.2500 uuid: c991a570-d1c2-4445-b94d-83b6da74f435
4+
CoInterpreter VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
55
*/
6-
static char __buildInfo[] = "CoInterpreter VMMaker.oscog-nice.2500 uuid: c991a570-d1c2-4445-b94d-83b6da74f435 " __DATE__ ;
6+
static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11 " __DATE__ ;
77
char *__interpBuildInfo = __buildInfo;
88

99

@@ -1539,7 +1539,7 @@ static sqInt lookupOrdinarySend(void);
15391539
static sqInt NoDbgRegParms lookupProtectedstartingAtrule(sqInt selector, sqInt mixinApplication, sqInt rule);
15401540
extern sqInt lookupSelectorinClass(sqInt selector, sqInt class);
15411541
static void NoDbgRegParms makeContextSnapshotSafe(sqInt ctxt);
1542-
extern sqInt makePointwithxValueyValue(sqInt xValue, sqInt yValue);
1542+
extern usqInt makePointwithxValueyValue(sqInt xValue, sqInt yValue);
15431543
static void mapInterpreterOops(void);
15441544
static sqInt NoDbgRegParms markAndTraceStackPages(sqInt fullGCFlag);
15451545
static void markAndTraceUntracedReachableStackPages(void);
@@ -2610,7 +2610,7 @@ static signed char primitiveAccessorDepthTable[MaxPrimitiveIndex + 2 /* 577 */]
26102610
};
26112611
sqInt checkedPluginName;
26122612
char expensiveAsserts = 0;
2613-
const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-nice.2500";
2613+
const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreterPrimitives_VMMaker.oscog-eem.2504";
26142614
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 40 */;
26152615
volatile int sendTrace;
26162616

@@ -7096,7 +7096,7 @@ interpret(void)
70967096
sqInt context;
70977097
sqInt i;
70987098
sqInt initialIP;
7099-
sqInt newClosure;
7099+
usqInt newClosure;
71007100
usqInt newClosure1;
71017101
usqInt newObj;
71027102
sqInt numArgs;
@@ -14781,7 +14781,7 @@ interpret(void)
1478114781
sqInt context;
1478214782
sqInt i;
1478314783
sqInt initialIP;
14784-
sqInt newClosure;
14784+
usqInt newClosure;
1478514785
usqInt newClosure1;
1478614786
usqInt newObj;
1478714787
sqInt numArgs;
@@ -45496,7 +45496,7 @@ allInstancesOf(sqInt aClass)
4549645496
sqInt ptr1;
4549745497
sqInt ptr2;
4549845498
sqInt smallObj;
45499-
usqInt start;
45499+
sqInt start;
4550045500

4550145501
classIndex = (long32At(aClass + 4)) & (identityHashHalfWordMask());
4550245502
if (classIndex == 0) {
@@ -45930,8 +45930,8 @@ allObjects(void)
4593045930
sqInt prevObj1;
4593145931
sqInt prevPrevObj;
4593245932
sqInt prevPrevObj1;
45933-
usqInt ptr;
45934-
usqInt start;
45933+
sqInt ptr;
45934+
sqInt start;
4593545935

4593645936

4593745937
/* N.B. Does /not/ update totalFreeOldSpace */
@@ -62631,7 +62631,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr)
6263162631
assert((ReceiverIndex + ((sp >> 3))) < (lengthOf(obj)));
6263262632
contextSize = (sp >> 3);
6263362633
l7: /* end fetchStackPointerOf: */;
62634-
numPointerSlots = ((usqInt) (CtxtTempFrameStart + contextSize));
62634+
numPointerSlots = CtxtTempFrameStart + contextSize;
6263562635
goto l8;
6263662636
}
6263762637
/* begin numSlotsOf: */
@@ -62660,7 +62660,7 @@ updatePointersInsavedFirstFieldPointer(sqInt obj, sqInt firstFieldPtr)
6266062660
l5: /* end methodHeaderFromSavedFirstField: */;
6266162661
assert((((header) & 7) == 1));
6266262662
numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask;
62663-
numPointerSlots = ((usqInt) (numLiterals + LiteralStart));
62663+
numPointerSlots = numLiterals + LiteralStart;
6266462664
l8: /* end numPointerSlotsWhileCompactingOf:withFormat:savedFirstFieldPointer: */;
6266562665
if ((fmt <= 5 /* lastPointerFormat */)
6266662666
&& (numPointerSlots > 0)) {
@@ -69994,7 +69994,7 @@ makeContextSnapshotSafe(sqInt ctxt)
6999469994
We know both will be integers so no value nor root checking is needed */
6999569995

6999669996
/* StackInterpreter>>#makePointwithxValue:yValue: */
69997-
sqInt
69997+
usqInt
6999869998
makePointwithxValueyValue(sqInt xValue, sqInt yValue)
6999969999
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
7000070000
sqInt classObj;

nsspur64src/vm/cointerp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-nice.2500 uuid: c991a570-d1c2-4445-b94d-83b6da74f435
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.2504 uuid: a00b0fad-c04c-47a6-8a11-5dbff110ac11
33
*/
44

55

0 commit comments

Comments
 (0)