|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
towards a 64 bit vm / imageI put together some patches that redo the pidgin type system to use traits instead of rules, use sizeof instead of hard coded bit/byte/word sizes, and write slate images based on a given bitsize instead of assuming 32 bits. I'm doing this because i want to run slate on my amd64 system. Unfortunately it's broken now and nothing works, but hopefully I'll fix that in the next few years if I'm lucky. It includes some other stuff I think. New patches: [use-applyTo-for-bootstrap lists@...**20070424232352 There was a case where we called applyWith: but that might not be in the bootstrap image yet so I changed it to applyTo: ] { hunk ./src/lib/derivable.slate 172 - [(#surroundings findOn: {x}) ifNil: [True] ifNotNilDo: [| :m | (m applyWith: proto) = x]] + [(#surroundings findOn: {x}) ifNil: [True] ifNotNilDo: [| :m | (m applyTo: {proto}) = x]] } [Changed type declarations in some Pidgin code from LongInt to UnsignedLongInt for clarity (and reduced warnings). Brian T. Rice <water@...>**20060313213832] { hunk ./src/mobius/vm/base/layout.slate 50 - (i bitXor: i << 1)!LongInt cast >= 0 + (i bitXor: i << 1)!UnsignedLongInt cast >= 0 hunk ./src/mobius/vm/base/layout.slate 79 - oop!LongInt cast >> 1 -]!LongInt inline export. + oop!UnsignedLongInt cast >> 1 +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/map.slate 41 -[| n!LongInt tableSize requested | +[| n!UnsignedLongInt tableSize requested | hunk ./src/mobius/vm/base/map.slate 96 -[| n!LongInt method!(MethodDefinition pointer) newRoles!(RoleTable pointer) oldSize newSize | +[| n!UnsignedLongInt method!(MethodDefinition pointer) newRoles!(RoleTable pointer) oldSize newSize | hunk ./src/mobius/vm/base/map.slate 101 - (oldSize // 3)!LongInt cast - roles emptySpace + n). + (oldSize // 3)!UnsignedLongInt cast - roles emptySpace + n). hunk ./src/mobius/vm/base/map.slate 196 -[| n!LongInt tableSize requested | +[| n!UnsignedLongInt tableSize requested | hunk ./src/mobius/vm/base/map.slate 211 -[| n!LongInt name!ObjectPointer newSlots!(SlotTable pointer) oldSize newSize | +[| n!UnsignedLongInt name!ObjectPointer newSlots!(SlotTable pointer) oldSize newSize | hunk ./src/mobius/vm/base/map.slate 216 - (oldSize // 3)!LongInt cast - slots emptySpace + n). + (oldSize // 3)!UnsignedLongInt cast - slots emptySpace + n). hunk ./src/mobius/vm/base/map.slate 233 -[| amount!LongInt | +[| amount!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 121 -]!LongInt inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/vm.slate 484 -[| offset!LongInt | +[| offset!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 490 -[| offset!LongInt condition!ObjectPointer | +[| offset!UnsignedLongInt condition!ObjectPointer | hunk ./src/mobius/vm/base/vm.slate 504 -[| offset!LongInt condition!ObjectPointer | +[| offset!UnsignedLongInt condition!ObjectPointer | } [Fixed the FFI VM module to work with the asObject type change in pidgin. Brian T. Rice <water@...>**20060314221253] { hunk ./src/mobius/vm/platform/extprim.c 299 - return unsignedLongInt_asObject (result); + return longInt_asObject (result); } [Use signedLongInt_asObject instead of longInt_asObject Tony Garnock-Jones <tonyg@...>**20060325121803] { hunk ./src/mobius/vm/platform/extprim.c 299 - return longInt_asObject (result); + return signedLongInt_asObject (result); } [pidgin detailed type specifiers lists@...**20070618041451 I went through the pidgin source and tried to name the types in a more slate-ish way so that it would be easier to modify certain types' word-size when porting to 64bit. ] { hunk ./src/mobius/vm/base/layout.slate 6 -addSynonymNamed: #Word of: UnsignedLongInt &export: True. + hunk ./src/mobius/vm/base/layout.slate 8 -addSynonymNamed: #Bool of: UnsignedLongInt &export: True. + +"any pointer that's treated like an integer" +addSynonymNamed: #IntegerPointer of: UnsignedLongInt &export: True. + +"Any integer that's not a bignum" +addSynonymNamed: #SmallInteger of: LongInt &export: True. +addSynonymNamed: #UnsignedSmallInteger of: IntegerPointer &export: True. + +addSynonymNamed: #Bool of: UnsignedSmallInteger &export: True. +addSynonymNamed: #ObjectPointer of: IntegerPointer &export: True. + hunk ./src/mobius/vm/base/layout.slate 47 -addSynonymNamed: #ObjectPointer of: Word &export: True. hunk ./src/mobius/vm/base/layout.slate 59 - (i bitXor: i << 1)!UnsignedLongInt cast >= 0 + (i bitXor: i << 1)!SmallInteger cast >= 0 hunk ./src/mobius/vm/base/layout.slate 74 -[(p!UnsignedLongInt cast bitOr: ObjectTag)!ObjectPointer cast]!ObjectPointer inline export. +[(p!IntegerPointer cast bitOr: ObjectTag)!ObjectPointer cast]!ObjectPointer inline export. hunk ./src/mobius/vm/base/layout.slate 77 -[(p!UnsignedLongInt cast bitOr: ObjectTag)!ObjectPointer cast]!ObjectPointer inline export. +[(p!IntegerPointer cast bitOr: ObjectTag)!ObjectPointer cast]!ObjectPointer inline export. hunk ./src/mobius/vm/base/layout.slate 79 -i@UnsignedLongInt asObject +i@IntegerPointer asObject hunk ./src/mobius/vm/base/layout.slate 88 - oop!UnsignedLongInt cast >> 1 -]!UnsignedLongInt inline export. + oop!IntegerPointer cast >> 1 +]!SmallInteger inline export. hunk ./src/mobius/vm/base/map.slate 6 -MethodDefinition addElementNamed: #dispatchPositions &type: UnsignedLongInt. -MethodDefinition addElementNamed: #foundPositions &type: UnsignedLongInt. -MethodDefinition addElementNamed: #dispatchRank &type: UnsignedLongInt. +MethodDefinition addElementNamed: #dispatchPositions &type: UnsignedSmallInteger. +MethodDefinition addElementNamed: #foundPositions &type: UnsignedSmallInteger. +MethodDefinition addElementNamed: #dispatchRank &type: UnsignedSmallInteger. hunk ./src/mobius/vm/base/map.slate 26 -]!UnsignedLongInt inline. +]!UnsignedSmallInteger inline. hunk ./src/mobius/vm/base/map.slate 37 -]!UnsignedLongInt. +]!UnsignedSmallInteger. hunk ./src/mobius/vm/base/map.slate 41 -[| n!UnsignedLongInt tableSize requested | +[| n!UnsignedSmallInteger tableSize requested | hunk ./src/mobius/vm/base/map.slate 50 -]!UnsignedLongInt. +]!UnsignedSmallInteger. hunk ./src/mobius/vm/base/map.slate 96 -[| n!UnsignedLongInt method!(MethodDefinition pointer) newRoles!(RoleTable pointer) oldSize newSize | +[| n!UnsignedSmallInteger method!(MethodDefinition pointer) newRoles!(RoleTable pointer) oldSize newSize | hunk ./src/mobius/vm/base/map.slate 101 - (oldSize // 3)!UnsignedLongInt cast - roles emptySpace + n). + (oldSize // 3)!UnsignedSmallInteger cast - roles emptySpace + n). hunk ./src/mobius/vm/base/map.slate 132 -addConstantNamed: #SlotOffsetMask &value: 16rFF_FF_FF_FE &export: True. +"addConstantNamed: #SlotOffsetMask &value: 16rFF_FF_FF_FE &export: True." +addConstantNamed: #SlotOffsetMask &value: -2 &export: True. hunk ./src/mobius/vm/base/map.slate 142 -]!UnsignedLongInt inline. +]!UnsignedSmallInteger inline. hunk ./src/mobius/vm/base/map.slate 153 -]!UnsignedLongInt. +]!UnsignedSmallInteger. hunk ./src/mobius/vm/base/map.slate 197 -[| n!UnsignedLongInt tableSize requested | +[| n!UnsignedSmallInteger tableSize requested | hunk ./src/mobius/vm/base/map.slate 206 -]!UnsignedLongInt. +]!UnsignedSmallInteger. hunk ./src/mobius/vm/base/map.slate 212 -[| n!UnsignedLongInt name!ObjectPointer newSlots!(SlotTable pointer) oldSize newSize | +[| n!UnsignedSmallInteger name!ObjectPointer newSlots!(SlotTable pointer) oldSize newSize | hunk ./src/mobius/vm/base/map.slate 217 - (oldSize // 3)!UnsignedLongInt cast - slots emptySpace + n). + (oldSize // 3)!UnsignedSmallInteger cast - slots emptySpace + n). hunk ./src/mobius/vm/base/map.slate 234 -[| amount!UnsignedLongInt | +[| amount!UnsignedSmallInteger | hunk ./src/mobius/vm/base/map.slate 258 -Map addElementNamed: #visitedPositions &type: UnsignedLongInt. +Map addElementNamed: #visitedPositions &type: UnsignedSmallInteger. hunk ./src/mobius/vm/base/memory.slate 1 -ObjectHeap addElementNamed: #memory &type: UnsignedLongInt pointer. -ObjectHeap addElementNamed: #memoryEnd &type: UnsignedLongInt. +ObjectHeap addElementNamed: #memory &type: IntegerPointer pointer. "pointer? fix? what?" +ObjectHeap addElementNamed: #memoryEnd &type: IntegerPointer. hunk ./src/mobius/vm/base/memory.slate 5 -ObjectHeap addElementNamed: #totalObjectCount &type: UnsignedLongInt. +ObjectHeap addElementNamed: #totalObjectCount &type: UnsignedSmallInteger. hunk ./src/mobius/vm/base/memory.slate 63 -[| oop!ObjectPointer ptr!(Object pointer) shiftAmountInBytes!LongInt fieldOop!ObjectPointer | +[| oop!ObjectPointer ptr!(Object pointer) shiftAmountInBytes!SmallInteger fieldOop!ObjectPointer | hunk ./src/mobius/vm/base/memory.slate 92 -]!UnsignedLongInt export. +]!UnsignedSmallInteger export. hunk ./src/mobius/vm/base/memory.slate 131 - h memory!UnsignedLongInt cast -]!UnsignedLongInt export. + h memory!IntegerPointer cast +]!IntegerPointer export. hunk ./src/mobius/vm/base/memory.slate 288 -]!UnsignedLongInt. +]!UnsignedSmallInteger. hunk ./src/mobius/vm/base/memory.slate 293 - h memoryEnd!UnsignedLongInt cast - h memory!UnsignedLongInt cast -]!UnsignedLongInt inline export. + h memoryEnd!IntegerPointer cast - h memory!IntegerPointer cast +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 4 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 9 - ifTrue: [obj header objectSize * #[Word byteSize]] - ifFalse: [obj header objectSize * #[Word byteSize] + obj payloadSize + #[2 * Word byteSize - 1] - bitAnd: #[(Word byteSize - 1) bitNot]] -]!UnsignedLongInt inline export. + ifTrue: [obj header objectSize * #[IntegerPointer byteSize]] + ifFalse: [obj header objectSize * #[IntegerPointer byteSize] + obj payloadSize + #[2 * IntegerPointer byteSize - 1] + bitAnd: #[(IntegerPointer byteSize - 1) bitNot]] +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 20 - ifFalse: [obj header objectSize + ((obj payloadSize + #[Word byteSize - 1]) // #[Word byteSize])] -]!UnsignedLongInt inline export. + ifFalse: [obj header objectSize + ((obj payloadSize + #[IntegerPointer byteSize - 1]) // #[IntegerPointer byteSize])] +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 26 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 31 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 38 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 42 - obj header objectSize * #[Word byteSize] - #[ObjectPointer byteSize] -]!UnsignedLongInt inline export. + obj header objectSize * #[IntegerPointer byteSize] - #[ObjectPointer byteSize] +]!IntegerPointer inline export. hunk ./src/mobius/vm/base/object.slate 52 -]!UnsignedLongInt inline export. +]!IntegerPointer inline export. hunk ./src/mobius/vm/base/object.slate 56 - obj header objectSize * #[Word byteSize] -]!UnsignedLongInt inline export. + obj header objectSize * #[IntegerPointer byteSize] +]!IntegerPointer inline export. hunk ./src/mobius/vm/base/object.slate 68 - ifFalse: [(obj payloadSize + #[Word byteSize - 1]) // #[Word byteSize]] -]!UnsignedLongInt inline export. + ifFalse: [(obj payloadSize + #[IntegerPointer byteSize - 1]) // #[IntegerPointer byteSize]] +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 73 - obj wordSize * #[Word byteSize] -]!UnsignedLongInt inline export. + obj wordSize * #[IntegerPointer byteSize] +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 81 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 119 -[| targetBuffer!(Byte pointer) bufferSize!UnsignedLongInt payloadSize | +[| targetBuffer!(Byte pointer) bufferSize!UnsignedSmallInteger payloadSize | hunk ./src/mobius/vm/base/object.slate 124 -]!LongInt inline export. +]!SmallInteger inline export. hunk ./src/mobius/vm/base/object.slate 149 - proto!(Word pointer) cast + #[ObjectHeader wordSize] + proto!(IntegerPointer pointer) cast + #[ObjectHeader wordSize] hunk ./src/mobius/vm/base/object.slate 151 - into: newObj!(Word pointer) cast + #[ObjectHeader wordSize]. + into: newObj!(IntegerPointer pointer) cast + #[ObjectHeader wordSize]. hunk ./src/mobius/vm/base/object.slate 166 - newObj: (oh allocateChunkSized: proto header objectSize withPayload: oops * #[Word byteSize]). + newObj: (oh allocateChunkSized: proto header objectSize withPayload: oops * #[IntegerPointer byteSize]). hunk ./src/mobius/vm/base/object.slate 169 - proto!(Word pointer) cast + #[ObjectHeader wordSize] + proto!(IntegerPointer pointer) cast + #[ObjectHeader wordSize] hunk ./src/mobius/vm/base/object.slate 171 - into: newObj!(Word pointer) cast + #[ObjectHeader wordSize]. - newObj!(Word pointer) cast + proto header objectSize + into: newObj!(IntegerPointer pointer) cast + #[ObjectHeader wordSize]. + newObj!(IntegerPointer pointer) cast + proto header objectSize hunk ./src/mobius/vm/base/object.slate 185 - proto!(Word pointer) cast + #[ObjectHeader wordSize] + proto!(IntegerPointer pointer) cast + #[ObjectHeader wordSize] hunk ./src/mobius/vm/base/object.slate 187 - into: newObj!(Word pointer) cast + #[ObjectHeader wordSize]. - newObj!(Word pointer) cast + proto header objectSize - fillWords: (bytes + #[Word byteSize - 1]) // #[Word byteSize] + into: newObj!(IntegerPointer pointer) cast + #[ObjectHeader wordSize]. + newObj!(IntegerPointer pointer) cast + proto header objectSize + fillWords: (bytes + #[IntegerPointer byteSize - 1]) // #[IntegerPointer byteSize] hunk ./src/mobius/vm/base/vm.slate 65 -Interpreter addElementNamed: #framePointer &type: UnsignedLongInt. -Interpreter addElementNamed: #codePointer &type: UnsignedLongInt. -Interpreter addElementNamed: #codeSize &type: UnsignedLongInt. -Interpreter addElementNamed: #stackPointer &type: UnsignedLongInt. -Interpreter addElementNamed: #stackSize &type: UnsignedLongInt. +Interpreter addElementNamed: #framePointer &type: IntegerPointer. +Interpreter addElementNamed: #codePointer &type: IntegerPointer. +Interpreter addElementNamed: #codeSize &type: UnsignedSmallInteger. +Interpreter addElementNamed: #stackPointer &type: IntegerPointer. +Interpreter addElementNamed: #stackSize &type: UnsignedSmallInteger. hunk ./src/mobius/vm/base/vm.slate 121 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/vm.slate 136 -]!UnsignedLongInt inline export. +]!UnsignedSmallInteger inline export. hunk ./src/mobius/vm/base/vm.slate 209 - '#ifdef DEBUG_MSG\n printSymbol(stderr, selector); fputc(\'\\n\', stderr);\n#endif\n' directly. + '#ifdef DEBUG_MSG\n fprintf(stderr, "%d ", i->framePointer);\n printSymbol(stderr, selector); fputc(\'\\n\', stderr);\n#endif\n' directly. + + +"fix clean this up eventually" + + ' + + unsigned long int ii=0; + static char buffer[100]; + + + for (ii = 0; ii < n; ii++) { + unsigned long int offset, slotNum; + unsigned long int _limit_; + if (ObjectPointer_isSmallInt(args[ii])) { + fprintf(stderr, "arg %d: %d\n", ii, ObjectPointer_asSmallInt(args[ii])); + continue; + } + struct Object* mytraitsWindow = ObjectPointer_pointer(ObjectPointer_pointer(args[ii])->map->delegates->elements[0]); + + _limit_ = (PSObject_arraySize(ObjectPointer_pointer(args[ii])) - 1) + 1; + unsigned long int numDelegates = PSObject_arraySize(mytraitsWindow->map->delegates); + + //fprintf(stderr, "delegate count: %d\n", numDelegates); + + for (offset = PSObject_firstSlotOffset(mytraitsWindow), slotNum=0; + slotNum < PSObject_slotCount(mytraitsWindow); + offset = offset + 4, slotNum++) { + + + + struct Object* traitsWindowSlotName = ObjectPointer_pointer(mytraitsWindow->map->slotTable->slots[slotNum].name); + + strncpy(buffer, PSObject_arrayElements(traitsWindowSlotName), PSObject_payloadSize(traitsWindowSlotName)); + buffer[PSObject_payloadSize(traitsWindowSlotName)] = 0; + //fprintf(stderr, "slot arg[%d] slot[%d]: %s\n", ii, slotNum, buffer); + + + + if (strncmp(PSObject_arrayElements(traitsWindowSlotName), + "printName", + PSObject_payloadSize(traitsWindowSlotName)) == 0 + || 1) { /*i dunno..*/ + + struct Object* oop = ObjectPointer_pointer(PSObject_slotValueAtOffset_(mytraitsWindow, offset)); + strncpy(buffer, PSObject_arrayElements(oop), PSObject_payloadSize(oop)); + buffer[PSObject_payloadSize(oop)] = 0; + fprintf(stderr, "arg %d: %s\n", ii, buffer); + if (strncmp(buffer, "Symbol", 7) == 0) { + fprintf(stderr, "name: "); + printSymbol(stderr, args[ii]); + fprintf(stderr, "\n"); + } + break; + } + } + } +' directly. + hunk ./src/mobius/vm/base/vm.slate 542 -[| offset!UnsignedLongInt | +[| offset!IntegerPointer | hunk ./src/mobius/vm/base/vm.slate 548 -[| offset!UnsignedLongInt condition!ObjectPointer | +[| offset!IntegerPointer condition!ObjectPointer | hunk ./src/mobius/vm/base/vm.slate 562 -[| offset!UnsignedLongInt condition!ObjectPointer | +[| offset!IntegerPointer condition!ObjectPointer | hunk ./src/mobius/vm/ext/console.slate 8 -[| bytes!(Byte pointer) size!UnsignedLongInt | +[| bytes!(Byte pointer) size!UnsignedSmallInteger | hunk ./src/mobius/vm/ext/console.slate 11 - interpreter stackPush: 'fread(bytes, 1, size, stdin)' directly!LongInt asObject. + interpreter stackPush: 'fread(bytes, 1, size, stdin)' directly!SmallInteger asObject. hunk ./src/mobius/vm/ext/console.slate 16 -[| bytes!(Byte pointer) size!UnsignedLongInt | +[| bytes!(Byte pointer) size!UnsignedSmallInteger | hunk ./src/mobius/vm/ext/console.slate 20 - ifTrue: [interpreter stackPush: 'fwrite(bytes, 1, size, stdout)' directly!LongInt asObject] - ifFalse: [interpreter stackPush: 'fwrite(bytes, 1, size, stderr)' directly!LongInt asObject] + ifTrue: [interpreter stackPush: 'fwrite(bytes, 1, size, stdout)' directly!SmallInteger asObject] + ifFalse: [interpreter stackPush: 'fwrite(bytes, 1, size, stderr)' directly!SmallInteger asObject] hunk ./src/mobius/vm/ext/directory.slate 4 -[| handle!LongInt | - handle: 'openDirectory((struct ByteArray *) dname)' directly!LongInt. +[| handle!SmallInteger | + handle: 'openDirectory((struct ByteArray *) dname)' directly!SmallInteger. hunk ./src/mobius/vm/ext/directory.slate 10 -[| result!LongInt | - result: 'closeDirectory(dirHandle >> 1)' directly!LongInt. +[| result!SmallInteger | + result: 'closeDirectory(dirHandle >> 1)' directly!SmallInteger. hunk ./src/mobius/vm/ext/directory.slate 16 -[| entryNameLen!LongInt | +[| entryNameLen!SmallInteger | hunk ./src/mobius/vm/ext/directory.slate 18 - directly!LongInt. + directly!SmallInteger. hunk ./src/mobius/vm/ext/directory.slate 23 -[| len!LongInt | - len: 'getCurrentDirectory((struct ByteArray *) buffer)' directly!LongInt. +[| len!SmallInteger | + len: 'getCurrentDirectory((struct ByteArray *) buffer)' directly!SmallInteger. hunk ./src/mobius/vm/ext/directory.slate 29 -[| result!LongInt | - result: 'setCurrentDirectory((struct ByteArray *) wd)' directly!LongInt. +[| result!SmallInteger | + result: 'setCurrentDirectory((struct ByteArray *) wd)' directly!SmallInteger. hunk ./src/mobius/vm/ext/extprim.slate 28 - interpreter stackPush: 'readExternalLibraryError((struct ByteArray *) messageBuffer)' directly!UnsignedLongInt asObject. + interpreter stackPush: 'readExternalLibraryError((struct ByteArray *) messageBuffer)' directly!UnsignedSmallInteger asObject. hunk ./src/mobius/vm/ext/file.slate 4 -[| handle!LongInt | - handle: 'openFile ((struct ByteArray *) fname, SF_READ | SF_WRITE)' directly!LongInt. +[| handle!SmallInteger | + handle: 'openFile ((struct ByteArray *) fname, SF_READ | SF_WRITE)' directly!SmallInteger. hunk ./src/mobius/vm/ext/file.slate 12 -[| handle!LongInt | - handle: 'openFile ((struct ByteArray *) fname, SF_READ)' directly!LongInt. +[| handle!SmallInteger | + handle: 'openFile ((struct ByteArray *) fname, SF_READ)' directly!SmallInteger. hunk ./src/mobius/vm/ext/file.slate 20 -[| handle!LongInt | - handle: 'openFile ((struct ByteArray *) fname, SF_READ | SF_WRITE | SF_CREATE)' directly!LongInt. +[| handle!SmallInteger | + handle: 'openFile ((struct ByteArray *) fname, SF_READ | SF_WRITE | SF_CREATE)' directly!SmallInteger. hunk ./src/mobius/vm/ext/file.slate 30 -[| handle!LongInt | - handle: 'openFile ((struct ByteArray *) fname, SF_READ | SF_WRITE | SF_CREATE | SF_CLEAR)' directly!LongInt. +[| handle!SmallInteger | + handle: 'openFile ((struct ByteArray *) fname, SF_READ | SF_WRITE | SF_CREATE | SF_CLEAR)' directly!SmallInteger. hunk ./src/mobius/vm/ext/file.slate 45 - interpreter stackPush: 'readFile (handle >> 1, n >> 1, (char *)(((struct ByteArray *) bytes)->elements + (start >> 1)))' directly!LongInt asObject + interpreter stackPush: 'readFile (handle >> 1, n >> 1, (char *)(((struct ByteArray *) bytes)->elements + (start >> 1)))' directly!SmallInteger asObject hunk ./src/mobius/vm/ext/file.slate 50 - interpreter stackPush: 'writeFile (handle >> 1, n >> 1, (char *)(((struct ByteArray *) bytes)->elements + (start >> 1)))' directly!LongInt asObject + interpreter stackPush: 'writeFile (handle >> 1, n >> 1, (char *)(((struct ByteArray *) bytes)->elements + (start >> 1)))' directly!SmallInteger asObject hunk ./src/mobius/vm/ext/file.slate 55 - interpreter stackPush: 'seekFile (handle >> 1, n >> 1)' directly!LongInt asObject + interpreter stackPush: 'seekFile (handle >> 1, n >> 1)' directly!SmallInteger asObject hunk ./src/mobius/vm/ext/file.slate 60 - interpreter stackPush: 'tellFile (handle >> 1)' directly!LongInt asObject + interpreter stackPush: 'tellFile (handle >> 1)' directly!SmallInteger asObject hunk ./src/mobius/vm/ext/file.slate 65 - 'endOfFile (handle >> 1)' directly!LongInt = 0 + 'endOfFile (handle >> 1)' directly!SmallInteger = 0 hunk ./src/mobius/vm/ext/file.slate 71 - interpreter stackPush: 'sizeOfFile (handle >> 1)' directly!LongInt asObject + interpreter stackPush: 'sizeOfFile (handle >> 1)' directly!SmallInteger asObject hunk ./src/mobius/vm/ext/file.slate 81 - 'saveImageNamed ((struct ByteArray *) name)' directly!LongInt < 0 + 'saveImageNamed ((struct ByteArray *) name)' directly!SmallInteger < 0 hunk ./src/mobius/vm/ext/float.slate 8 - (x pointer arrayElements!(UnsignedLongInt pointer) cast load bitAnd: 16r7F_FF_FF) asObject + (x pointer arrayElements!(IntegerPointer pointer) cast load bitAnd: 16r7F_FF_FF) asObject hunk ./src/mobius/vm/ext/float.slate 14 - (x pointer arrayElements!(UnsignedLongInt pointer) cast load >> 23 bitAnd: 16rFF) asObject + (x pointer arrayElements!(IntegerPointer pointer) cast load >> 23 bitAnd: 16rFF) asObject hunk ./src/mobius/vm/ext/float.slate 20 - f arrayElements!(UnsignedLongInt pointer) cast + f arrayElements!(IntegerPointer pointer) cast hunk ./src/mobius/vm/ext/malloc.slate 4 -[| handle!LongInt | +[| handle!SmallInteger | hunk ./src/mobius/vm/ext/malloc.slate 32 - ifTrue: [interpreter stackPush: 'readMemory (handle >> 1, start >> 1, n >> 1, (char *)(((struct ByteArray *) a)->elements + (start >> 1)))' directly!LongInt asObject] + ifTrue: [interpreter stackPush: 'readMemory (handle >> 1, start >> 1, n >> 1, (char *)(((struct ByteArray *) a)->elements + (start >> 1)))' directly!SmallInteger asObject] hunk ./src/mobius/vm/ext/malloc.slate 42 - ifTrue: [interpreter stackPush: 'writeMemory (handle >> 1, start >> 1, n >> 1, (char *)(((struct ByteArray *) a)->elements + (start >> 1)))' directly!LongInt asObject] + ifTrue: [interpreter stackPush: 'writeMemory (handle >> 1, start >> 1, n >> 1, (char *)(((struct ByteArray *) a)->elements + (start >> 1)))' directly!SmallInteger asObject] hunk ./src/mobius/vm/ext/malloc.slate 49 - ifTrue: [interpreter stackPush: 'sizeOfMemory (handle >> 1)' directly!LongInt asObject] + ifTrue: [interpreter stackPush: 'sizeOfMemory (handle >> 1)' directly!SmallInteger asObject] hunk ./src/mobius/vm/ext/malloc.slate 56 - ifTrue: [interpreter stackPush: 'resizeMemory (handle >> 1, size >> 1)' directly!LongInt asObject] + ifTrue: [interpreter stackPush: 'resizeMemory (handle >> 1, size >> 1)' directly!SmallInteger asObject] hunk ./src/mobius/vm/ext/malloc.slate 63 - ifTrue: [interpreter stackPush: 'addressOfMemory (handle >> 1, offset >> 1, ((struct ByteArray *) addressBuffer)->elements)' directly!LongInt asObject] + ifTrue: [interpreter stackPush: 'addressOfMemory (handle >> 1, offset >> 1, ((struct ByteArray *) addressBuffer)->elements)' directly!SmallInteger asObject] hunk ./src/mobius/vm/ext/memory.slate 13 - interpreter stackPush: 'sizeof(NULL)' directly!LongInt asObject + interpreter stackPush: 'sizeof(NULL)' directly!SmallInteger asObject hunk ./src/mobius/vm/ext/prims.slate 274 - [interpreter stackPush: (arr pointer arrayElements!(Byte pointer) cast at: index)!UnsignedLongInt cast asObject] + [interpreter stackPush: (arr pointer arrayElements!(Byte pointer) cast at: index)!IntegerPointer cast asObject] hunk ./src/mobius/vm/ext/prims.slate 286 - [interpreter stackPush: (arr pointer arrayElements!(Byte pointer) cast at: index put: val asSmallInt)!UnsignedLongInt cast asObject] + [interpreter stackPush: (arr pointer arrayElements!(Byte pointer) cast at: index put: val asSmallInt)!IntegerPointer cast asObject] hunk ./src/mobius/vm/ext/smallint.slate 52 -[| z!LongInt bits!LongInt shift!LongInt | +[| z!SmallInteger bits!SmallInteger shift!SmallInteger | hunk ./src/mobius/vm/ext/smallint.slate 71 -[| z!LongInt | +[| z!SmallInteger | hunk ./src/mobius/vm/ext/smallint.slate 81 -[| z!LongInt | +[| z!SmallInteger | hunk ./src/mobius/vm/ext/smallint.slate 97 - [interpreter stackPush: z!LongInt cast asObject] + [interpreter stackPush: z!SmallInteger cast asObject] hunk ./src/mobius/vm/gc/mark-compact.slate 19 -BreakEntry addElementNamed: #oldAddress &type: UnsignedLongInt. -BreakEntry addElementNamed: #newAddress &type: UnsignedLongInt. +BreakEntry addElementNamed: #oldAddress &type: IntegerPointer. +BreakEntry addElementNamed: #newAddress &type: IntegerPointer. hunk ./src/mobius/vm/gc/mark-compact.slate 40 -ObjectHeap addElementNamed: #rootStackPosition &type: UnsignedLongInt. +ObjectHeap addElementNamed: #rootStackPosition &type: IntegerPointer. hunk ./src/mobius/vm/gc/mark-compact.slate 43 -ObjectHeap addElementNamed: #markStackPosition &type: UnsignedLongInt. +ObjectHeap addElementNamed: #markStackPosition &type: IntegerPointer. hunk ./src/mobius/vm/gc/mark-compact.slate 45 -ObjectHeap addElementNamed: #markColor &type: UnsignedLongInt. +ObjectHeap addElementNamed: #markColor &type: SmallInteger. hunk ./src/mobius/vm/gc/mark-compact.slate 48 -ObjectHeap addElementNamed: #pinnedCards &type: UnsignedLongInt pointer. +ObjectHeap addElementNamed: #pinnedCards &type: IntegerPointer pointer. hunk ./src/mobius/vm/gc/mark-compact.slate 52 -ObjectHeap addElementNamed: #stackBottom &type: UnsignedLongInt pointer. +ObjectHeap addElementNamed: #stackBottom &type: IntegerPointer pointer. hunk ./src/mobius/vm/gc/mark-compact.slate 56 -ObjectHeap addElementNamed: #breakTableSize &type: UnsignedLongInt. -ObjectHeap addElementNamed: #totalAllocated &type: UnsignedLongInt. +ObjectHeap addElementNamed: #breakTableSize &type: UnsignedSmallInteger. +ObjectHeap addElementNamed: #totalAllocated &type: UnsignedSmallInteger. hunk ./src/mobius/vm/gc/mark-compact.slate 59 -ObjectHeap addElementNamed: #lastAllocated &type: UnsignedLongInt. +ObjectHeap addElementNamed: #lastAllocated &type: IntegerPointer. hunk ./src/mobius/vm/gc/mark-compact.slate 62 -ObjectHeap addElementNamed: #nextLive &type: UnsignedLongInt. +ObjectHeap addElementNamed: #nextLive &type: IntegerPointer. hunk ./src/mobius/vm/gc/mark-compact.slate 272 -]!UnsignedLongInt inline. +]!IntegerPointer inline. hunk ./src/mobius/vm/gc/mark-compact.slate 296 - [obj header idHash ~= IdHashFree /\ (oh isPinned: obj!UnsignedLongInt cast) + [obj header idHash ~= IdHashFree /\ (oh isPinned: obj!IntegerPointer cast) hunk ./src/mobius/vm/gc/mark-compact.slate 299 - offset: (obj!(Byte pointer) cast + obj totalSize)!UnsignedLongInt cast. + offset: (obj!(Byte pointer) cast + obj totalSize)!IntegerPointer cast. hunk ./src/mobius/vm/gc/mark-compact.slate 320 - [obj header idHash ~= IdHashFree /\ (oh isPinned: obj!UnsignedLongInt cast) + [obj header idHash ~= IdHashFree /\ (oh isPinned: obj!IntegerPointer cast) hunk ./src/mobius/vm/gc/mark-compact.slate 324 - offset: (obj!(Byte pointer) cast + obj totalSize)!UnsignedLongInt cast. + offset: (obj!(Byte pointer) cast + obj totalSize)!IntegerPointer cast. hunk ./src/mobius/vm/gc/mark-compact.slate 354 - fillWords: (oh memorySize + (CardSize * #[UnsignedLongInt bitSize] - 1)) / (CardSize * #[UnsignedLongInt bitSize]) + fillWords: (oh memorySize + (CardSize * #[IntegerPointer bitSize] - 1)) / (CardSize * #[IntegerPointer bitSize]) hunk ./src/mobius/vm/gc/mark-compact.slate 359 -[| stackTop!UnsignedLongInt stack!(UnsignedLongInt pointer) memorySize | +[| stackTop!IntegerPointer stack!(IntegerPointer pointer) memorySize | hunk ./src/mobius/vm/gc/mark-compact.slate 365 - offset: stack load - oh memory!UnsignedLongInt cast. + offset: stack load - oh memory!IntegerPointer cast. hunk ./src/mobius/vm/gc/mark-compact.slate 370 - at: offset / #[UnsignedLongInt bitSize] + at: offset / #[IntegerPointer bitSize] hunk ./src/mobius/vm/gc/mark-compact.slate 372 - ((oh pinnedCards at: offset / #[UnsignedLongInt bitSize]) + ((oh pinnedCards at: offset / #[IntegerPointer bitSize]) hunk ./src/mobius/vm/gc/mark-compact.slate 374 - 1 << (offset \\ #[UnsignedLongInt bitSize]))]. + 1 << (offset \\ #[IntegerPointer bitSize]))]. hunk ./src/mobius/vm/gc/mark-compact.slate 382 - oop: (oop - oh memory!UnsignedLongInt cast) / CardSize. - ((oh pinnedCards at: oop / #[UnsignedLongInt bitSize]) - >> (oop \\ #[UnsignedLongInt bitSize])) + oop: (oop - oh memory!IntegerPointer cast) / CardSize. + ((oh pinnedCards at: oop / #[IntegerPointer bitSize]) + >> (oop \\ #[IntegerPointer bitSize])) hunk ./src/mobius/vm/gc/mark-compact.slate 457 - (oh hasMarked: obj) \/ (oh isPinned: obj!UnsignedLongInt cast) + (oh hasMarked: obj) \/ (oh isPinned: obj!IntegerPointer cast) hunk ./src/mobius/vm/gc/mark-compact.slate 461 - [(oh isPinned: obj!UnsignedLongInt cast) + [(oh isPinned: obj!IntegerPointer cast) } [64bit-c-changes lists@...**20070623232744 made some changes to extprim.c and image.h to support 64 bit ] { hunk ./src/mobius/vm/platform/extprim.c 5 +#include <bits/wordsize.h> + hunk ./src/mobius/vm/platform/extprim.c 49 -/* (If there's some #define for endianness, now is a good time to use it.) */ -/* TODO 32 bit dependency */ -static unsigned int extractBigInteger(ObjectPointer bigInt) { +static unsigned long int extractBigInteger(ObjectPointer bigInt) { hunk ./src/mobius/vm/platform/extprim.c 51 - return ((unsigned int) bytes[0]) | - (((unsigned int) bytes[1]) << 8) | - (((unsigned int) bytes[2]) << 16) | - (((unsigned int) bytes[3]) << 24); +#if __WORDSIZE == 64 + return ((unsigned long int) bytes[0]) | + (((unsigned long int) bytes[1]) << 8) | + (((unsigned long int) bytes[2]) << 16) | + (((unsigned long int) bytes[3]) << 24) | + (((unsigned long int) bytes[4]) << 32) | + (((unsigned long int) bytes[5]) << 40) | + (((unsigned long int) bytes[6]) << 48) | + (((unsigned long int) bytes[7]) << 56); + +#else + return ((unsigned long int) bytes[0]) | + (((unsigned long int) bytes[1]) << 8) | + (((unsigned long int) bytes[2]) << 16) | + (((unsigned long int) bytes[3]) << 24); + +#endif hunk ./src/mobius/vm/platform/extprim.c 70 -/* TODO 32 bit dependency */ -static ObjectPointer injectBigInteger(unsigned int value) { + +static ObjectPointer injectBigInteger(unsigned long int value) { +#if __WORDSIZE == 64 + unsigned char bytes[8]; + bytes[0] = (unsigned char) (value & 0xFF); + bytes[1] = (unsigned char) ((value >> 8) & 0xFF); + bytes[2] = (unsigned char) ((value >> 16) & 0xFF); + bytes[3] = (unsigned char) ((value >> 24) & 0xFF); + bytes[4] = (unsigned char) ((value >> 32) & 0xFF); + bytes[5] = (unsigned char) ((value >> 40) & 0xFF); + bytes[6] = (unsigned char) ((value >> 48) & 0xFF); + bytes[7] = (unsigned char) ((value >> 56) & 0xFF); +#else hunk ./src/mobius/vm/platform/extprim.c 88 +#endif + hunk ./src/mobius/vm/platform/includes/image.h 9 - unsigned int magicNumber; - unsigned int imageSize; - unsigned int nextHash; - unsigned int specialOops; + unsigned long int magicNumber; + unsigned long int imageSize; + unsigned long int nextHash; + unsigned long int specialOops; } [64 bit type changes for pidgin type inferencer and type inferencer changes lists@...**20070706231946 I went through and replaced all the type synonyms with actual types because the synonyms didn't seem to work. Then I made types use traits for inference instead of this extra rules delegate that was complicated. Next, I made vm sources use sizeof(type) instead of hardcoding the actual bitsize... which should eventually make it easier to convert to 64 bit. ] { hunk ./src/lib/derivable.slate 172 - [(#surroundings findOn: {x}) ifNil: [True] ifNotNilDo: [| :m | (m applyTo: {proto}) = x]] + [(#surroundings findOn: {x}) ifNil: [True] ifNotNilDo: [| :m | (m applyTo: {proto}) == x]] hunk ./src/lib/types.slate 9 -Types Type addSlot: #rules valued: Cloneable clone. -"A dispatching object on which inference rules for various method -signatures are defined." hunk ./src/lib/types.slate 10 -type@(Types Type traits) clone +"Older versions of slate used some rules delegate slot +and overrode derive. It seemed broken and overly complicated. +I think we can just use traits here instead -- Timmy" + + +" +I can't bootstrap so i need to redefine this for now + + type@(Types Type traits) clone hunk ./src/lib/types.slate 20 - resend `>> [rules: type rules clone. ] -]. +resend ]. hunk ./src/lib/types.slate 23 -"Arrange for and return a new subtype of the given types in left-to-right -order." -[| newType | - newType: resend. - "Use the canonical prototype to avoid dealing with the effects on rules." - newType rules: Cloneable clone. - newType rules rawAddDelegate: #parent1 valued: type rules. - types ifNotNil: - [types - doWithIndex: - [| :type :index | - newType rules - rawAddDelegate: (intern: 'parent' ; (index + 2) printString) - valued: type rules]]. - newType -]. +[ resend ]. +" hunk ./src/lib/types.slate 35 - (selector asInferenceRule findOn: (types collect: #rules `er)) +"inform: (selector printString ; ' on:')." +"types do: [|:type| inform: (' ' ; type printString) ]." + (selector asInferenceRule findOn: types) hunk ./src/lib/wordarray.slate 2 - &slots: {#bytes -> ByteArray new}. + &slots: {#bytes -> ByteArray new. #wordSize -> 4}. hunk ./src/lib/wordarray.slate 10 -w@(WordArray traits) new &capacity: size +w@(WordArray traits) new &capacity: size &wordSize: wordSize hunk ./src/lib/wordarray.slate 15 + wordSize `defaultsTo: 4. hunk ./src/lib/wordarray.slate 17 - ifTrue: [WordArray BigEndian newWordSize: size] - ifFalse: [w clone newWordSize: size] + ifTrue: [WordArray BigEndian newSized: size wordSize: wordSize] + ifFalse: [w clone newSized: size wordSize: wordSize] hunk ./src/lib/wordarray.slate 21 -w@(WordArray traits) newFrom: a -[w cloneSettingSlots: #(bytes) to: {a}]. +w@(WordArray traits) newFrom: a wordSize: wordSize +[w cloneSettingSlots: #(bytes wordSize) to: {a. wordSize}]. hunk ./src/lib/wordarray.slate 24 -w@(WordArray traits) newWordSize: size -[w cloneSettingSlots: #(bytes) to: {w bytes newSize: (size * 4) abs}]. +w@(WordArray traits) newSized: size wordSize: wordSize +[w cloneSettingSlots: #(bytes wordSize) to: {w bytes newSize: (size * wordSize) abs. wordSize}]. hunk ./src/lib/wordarray.slate 28 -[w bytes size / 4]. +[w bytes size / w wordSize]. hunk ./src/lib/wordarray.slate 32 -_@(WordArray traits) defaultElement [16r00000000]. +_@(WordArray traits) defaultElement [0]. hunk ./src/lib/wordarray.slate 34 -_@(WordArray traits) accepts: i@(Integer traits) "Should be fixed 32bits" -[i between: 16r00000000 and: 16rFFFFFFFF]. +w@(WordArray traits) accepts: i@(Integer traits) "Should be fixed 32bits" +[(0 below: (1 << (w wordSize * 8))) includes: i]. hunk ./src/mobius/c/cr.slate 129 - [| :_ | type] asMethod: name asInferenceRule on: {m rules}. + [| :_ | type] asMethod: name asInferenceRule on: {m module traits}. + "[| :_ | type] asMethod: name asInferenceRule on: {m rules}." hunk ./src/mobius/c/cr.slate 148 - [| :_ | type] asMethod: name asInferenceRule on: {m rules}. + [| :_ | type] asMethod: name asInferenceRule on: {m module traits}. + "[| :_ | type] asMethod: name asInferenceRule on: {m rules}." hunk ./src/mobius/c/generator.slate 243 + "lobby inform: ('Role objects: ' ; roleObjects printString)." + hunk ./src/mobius/c/generator.slate 250 - on: (roleObjects collect: [| :type | type == NoRole ifTrue: [NoRole] ifFalse: [type rules]]). + on: (roleObjects collect: [| :type | type == NoRole ifTrue: [NoRole] ifFalse: [type]]). hunk ./src/mobius/c/generator.slate 373 +g@(C SimpleGenerator traits) generateCFor: _@#cSize on: args +"The syntax for using C's sizeof special operator" +[ | arg | + arg: (g module types at: args first selector + ifPresent: [|:type| 'struct ' ; (type cName as: String)] + ifAbsent: [(Types C atSlotNamed: args first selector) cName as: String]). + + C Syntax SizeOf of: arg +]. + + hunk ./src/mobius/c/generator.slate 707 + hunk ./src/mobius/c/rules.slate 40 +x@(Types C Type traits) cSize +[ + Types C UnsignedLongInt +] `inferenceRule. + + + hunk ./src/mobius/c/rules.slate 64 -"Any unsigned 64-bit arithmetic with other unsigned types generates a 64-bit unsigned result." -u@(Types C UnsignedLongLongInt traits) union: _@(Types C Unsigned traits) -[ - u -]. - -_@(Types C Unsigned traits) union: u@(Types C UnsignedLongLongInt traits) -[ - u -]. - -"Any signed 64-bit arithmetic generates a 64-bit signed result." -s@(Types C LongLongInt traits) union: _@(Types C Integer traits) -[ - s -]. - -_@(Types C Integer traits) union: s@(Types C LongLongInt traits) -[ - s -]. hunk ./src/mobius/c/rules.slate 89 -p@(Types C Pointer rules) + _@(Types C Integer rules) +p@(Types C Pointer traits) + _@(Types C Integer traits) hunk ./src/mobius/c/rules.slate 94 -p@(Types C Pointer rules) - _@(Types C Integer rules) +p@(Types C Pointer traits) - _@(Types C Integer traits) hunk ./src/mobius/c/rules.slate 99 -_@(Types C Integer rules) + p@(Types C Pointer rules) +_@(Types C Integer traits) + p@(Types C Pointer traits) hunk ./src/mobius/c/rules.slate 104 -_@(Types C Pointer rules) - _@(Types C Pointer rules) +_@(Types C Pointer traits) - _@(Types C Pointer traits) hunk ./src/mobius/c/rules.slate 109 -x@(Types C Type rules) + y@(Types C Type rules) +x@(Types C Type traits) + y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 114 -x@(Types C Type rules) - y@(Types C Type rules) +x@(Types C Type traits) - y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 119 -x@(Types C Type rules) * y@(Types C Type rules) +x@(Types C Type traits) * y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 124 -x@(Types C Type rules) / y@(Types C Type rules) +x@(Types C Type traits) / y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 129 -x@(Types C Type rules) // y@(Types C Type rules) +x@(Types C Type traits) // y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 134 -x@(Types C Type rules) max: y@(Types C Type rules) +x@(Types C Type traits) max: y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 139 -x@(Types C Type rules) min: y@(Types C Type rules) +x@(Types C Type traits) min: y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 144 -x@(Types C Type rules) mod: y@(Types C Type rules) +x@(Types C Type traits) mod: y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 149 -x@(Types C Type rules) bitOr: y@(Types C Type rules) +x@(Types C Type traits) bitOr: y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 154 -x@(Types C Type rules) bitAnd: y@(Types C Type rules) +x@(Types C Type traits) bitAnd: y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 159 -x@(Types C Type rules) bitXor: y@(Types C Type rules) +x@(Types C Type traits) bitXor: y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 164 -t@(Types C Type rules) << _@(Types C Type rules) +t@(Types C Type traits) << _@(Types C Type traits) hunk ./src/mobius/c/rules.slate 169 -t@(Types C Type rules) >> _@(Types C Type rules) +t@(Types C Type traits) >> _@(Types C Type traits) hunk ./src/mobius/c/rules.slate 174 -x@(Types C Type rules) /\ y@(Types C Type rules) +x@(Types C Type traits) /\ y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 179 -x@(Types C Type rules) \/ y@(Types C Type rules) +x@(Types C Type traits) \/ y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 184 -x@(Types C Type rules) = y@(Types C Type rules) +x@(Types C Type traits) = y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 189 -x@(Types C Type rules) < y@(Types C Type rules) +x@(Types C Type traits) < y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 194 -x@(Types C Type rules) <= y@(Types C Type rules) +x@(Types C Type traits) <= y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 199 -x@(Types C Type rules) > y@(Types C Type rules) +x@(Types C Type traits) > y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 204 -x@(Types C Type rules) >= y@(Types C Type rules) +x@(Types C Type traits) >= y@(Types C Type traits) hunk ./src/mobius/c/rules.slate 209 -_@(Types C Type rules) not +_@(Types C Type traits) not hunk ./src/mobius/c/rules.slate 214 -t@(Types C Type rules) bitNot +t@(Types C Type traits) bitNot hunk ./src/mobius/c/rules.slate 219 -t@(Types C Type rules) negated +t@(Types C Type traits) negated hunk ./src/mobius/c/rules.slate 226 -t@(Types C Type rules) address +t@(Types C Type traits) address hunk ./src/mobius/c/rules.slate 231 -p@(Types C Pointer rules) load +p@(Types C Pointer traits) load hunk ./src/mobius/c/rules.slate 236 -p@(Types C Pointer rules) store: _ +p@(Types C Pointer traits) store: _ hunk ./src/mobius/c/rules.slate 241 -_@(Types C Integer rules) ifTrue: x ifFalse: y +_@(Types C Integer traits) ifTrue: x ifFalse: y hunk ./src/mobius/c/rules.slate 246 -_@(Types C Integer rules) ifTrue: x +_@(Types C Integer traits) ifTrue: x hunk ./src/mobius/c/rules.slate 251 -_@(Types C Integer rules) ifFalse: y +_@(Types C Integer traits) ifFalse: y hunk ./src/mobius/c/rules.slate 256 -_@(Types C Integer rules) ifNil: x ifNotNil: y +_@(Types C Integer traits) ifNil: x ifNotNil: y hunk ./src/mobius/c/rules.slate 261 -_@(Types C Integer rules) ifNil: x +_@(Types C Integer traits) ifNil: x hunk ./src/mobius/c/rules.slate 266 -_@(Types C Integer rules) ifNotNil: y +_@(Types C Integer traits) ifNotNil: y hunk ./src/mobius/c/rules.slate 271 -p@(Types C Array rules) at: _ put: _ +p@(Types C Array traits) at: _ put: _ hunk ./src/mobius/c/rules.slate 276 -p@(Types C Array rules) at: _ +p@(Types C Array traits) at: _ hunk ./src/mobius/c/rules.slate 281 -p@(Types C Pointer rules) at: _ put: _ +p@(Types C Pointer traits) at: _ put: _ hunk ./src/mobius/c/rules.slate 286 -p@(Types C Pointer rules) at: _ +p@(Types C Pointer traits) at: _ hunk ./src/mobius/c/rules.slate 291 -_@(Types C Type rules) longAt: _ put: _ +_@(Types C Type traits) longAt: _ put: _ hunk ./src/mobius/c/rules.slate 296 -_@(Types C Type rules) longAt: _ +_@(Types C Type traits) longAt: _ hunk ./src/mobius/c/rules.slate 301 -p@(Types C Pointer rules) at: _ put: _ +p@(Types C Pointer traits) at: _ put: _ hunk ./src/mobius/c/rules.slate 306 -_@(Types C Pointer rules) isNil +_@(Types C Pointer traits) isNil hunk ./src/mobius/c/rules.slate 311 -_@(Types C Pointer rules) isNotNil +_@(Types C Pointer traits) isNotNil hunk ./src/mobius/c/rules.slate 316 -_@(Types C Pointer rules) ifNil: x ifNotNil: y +_@(Types C Pointer traits) ifNil: x ifNotNil: y hunk ./src/mobius/c/rules.slate 321 -_@(Types C Pointer rules) ifNil: x +_@(Types C Pointer traits) ifNil: x hunk ./src/mobius/c/rules.slate 326 -_@(Types C Pointer rules) ifNotNil: y +_@(Types C Pointer traits) ifNotNil: y hunk ./src/mobius/c/rules.slate 331 -t@(Types C Type rules) cast +t@(Types C Type traits) cast hunk ./src/mobius/c/syntax.slate 338 +C Syntax SizeOf define: #op -> #'sizeof '. hunk ./src/mobius/c/syntax.slate 340 -size@(C Syntax SizeOf traits) of: exp -[size cloneSettingSlots: #(expression) to: {exp}]. +node@(C Syntax SizeOf traits) of: exp +[node cloneSettingSlots: #(argument) to: {exp}]. hunk ./src/mobius/c/syntax.slate 510 + "fix i don't know what this should be" +_@(Types C Type traits) precedence [16]. + + hunk ./src/mobius/c/types.slate 30 - (t bitSize + Types C Char bitSize - 1) // Types C Char bitSize + "(t bitSize + Types C Char bitSize - 1) // Types C Char bitSize" + 9999 hunk ./src/mobius/c/types.slate 36 - (t bitSize + Types C LongInt bitSize - 1) // Types C LongInt bitSize + "(t bitSize + Types C LongInt bitSize - 1) // Types C LongInt bitSize" + 999999 hunk ./src/mobius/c/types.slate 52 +p@(Types C Pointer traits) cName ['P' ; p targetType slateName]. +p@(Types C Pointer traits) slateName ['UndefinedSlatePointer']. + + hunk ./src/mobius/c/types.slate 78 -n@(Types C) define: slotName bitSize: size &parents: parents +n@(Types C) defineType: slotName &parents: parents hunk ./src/mobius/c/types.slate 85 - _@(type traits) bitSize [size]. + _@(type traits) slateName [slotName]. +"C Syntax SizeOf of: (g generateCFor: args first)" + _@(type traits) bitSize [type byteSize * 8]. hunk ./src/mobius/c/types.slate 92 -Types C define: #Integer &parents: {Types C Type}. -Types C define: #Signed &parents: {Types C Integer}. -Types C define: #Unsigned &parents: {Types C Integer}. -Types C define: #Char bitSize: 8 &parents: {Types C Signed}. -Types C define: #UnsignedChar bitSize: 8 &parents: {Types C Unsigned}. -Types C define: #ShortInt bitSize: 16 &parents: {Types C Signed}. -Types C define: #UnsignedShortInt bitSize: 16 &parents: {Types C Unsigned}. -Types C define: #LongInt bitSize: 32 &parents: {Types C Signed}. -Types C define: #UnsignedLongInt bitSize: 32 &parents: {Types C Unsigned}. -Types C define: #LongLongInt bitSize: 64 &parents: {Types C Signed}. -Types C define: #UnsignedLongLongInt bitSize: 64 &parents: {Types C Unsigned}. -Types C define: #Float bitSize: 32 &parents: {Types C Type}. -Types C define: #Double bitSize: 64 &parents: {Types C Float}. -Types C define: #Void bitSize: 0 &parents: {Types C Type}. +Types C defineType: #Integer &parents: {Types C Type}. +Types C defineType: #Signed &parents: {Types C Integer}. +Types C defineType: #Unsigned &parents: {Types C Integer}. +Types C defineType: #Char &parents: {Types C Signed}. +Types C defineType: #UnsignedChar &parents: {Types C Unsigned}. +Types C defineType: #ShortInt &parents: {Types C Signed}. +Types C defineType: #UnsignedShortInt &parents: {Types C Unsigned}. +Types C defineType: #LongInt &parents: {Types C Signed}. +Types C defineType: #UnsignedLongInt &parents: {Types C Unsigned}. +Types C defineType: #Float &parents: {Types C Type}. +Types C defineType: #Double &parents: {Types C Float}. +Types C defineType: #Void &parents: {Types C Type}. hunk ./src/mobius/c/types.slate 200 - pointer rules rawAddDelegate: #basisPointer valued: basis pointer rules. - pointer dispatcher rawAddDelegate: #basisPointer valued: basis pointer dispatcher. + "pointer rules rawAddDelegate: #basisPointer valued: basis pointer rules. + pointer dispatcher rawAddDelegate: #basisPointer valued: basis pointer dispatcher." hunk ./src/mobius/c/types.slate 205 - on: {newT rules}]. ] + on: {newT}]. ] hunk ./src/mobius/c/types.slate 330 - [| :_ | se type] asMethod: se cName asInferenceRule on: {t rules}. - [| :_ | se type] asMethod: se cName asInferenceRule on: {t pointer rules}. + [| :_ | se type] asMethod: se cName asInferenceRule on: {t}. + [| :_ | se type] asMethod: se cName asInferenceRule on: {t pointer}. hunk ./src/mobius/c/writer.slate 335 + hunk ./src/mobius/c/writer.slate 338 - w ; 'sizeof '. - w print: n argument asChildOf: n. + "inform: ('printing sizeof: ' ; n printString)." + w ; 'sizeof('. + w ; n argument. + w ; ')'. hunk ./src/mobius/c/writer.slate 344 + hunk ./src/mobius/syntax/inference.slate 31 +"inform: ('inferTypes: ' ; message printString ; ' type: ' ; message type printString)." hunk ./src/mobius/syntax/inference.slate 139 + "inform: ('store ' ; store value type printString ; ' to ' ; store variable type printString)." hunk ./src/mobius/vm/base/dispatch.slate 3 -addGlobalNamed: #currentDispatchID &value: 0 &type: UnsignedLongLongInt. +addGlobalNamed: #currentDispatchID &value: 0 &type: UnsignedLongInt. hunk ./src/mobius/vm/base/dispatch.slate 6 -addGlobalNamed: #delegationStack &type: (Array of: ObjectPointer size: DelegationStackSize value). +addGlobalNamed: #delegationStack &type: (Array of: UnsignedLongInt size: DelegationStackSize value). hunk ./src/mobius/vm/base/dispatch.slate 17 -MethodCacheEntry addElementNamed: #selector &type: ObjectPointer. +MethodCacheEntry addElementNamed: #selector &type: UnsignedLongInt. hunk ./src/mobius/vm/base/dispatch.slate 27 -selector@ObjectPointer flushMethodCache +selector@UnsignedLongInt flushMethodCache hunk ./src/mobius/vm/base/dispatch.slate 33 - [methodCache!(Word pointer) cast + [methodCache!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/dispatch.slate 44 -[| name!ObjectPointer arguments!(ObjectPointer pointer) hash cacheEntry!(MethodCacheEntry pointer) | +[| name!UnsignedLongInt arguments!(UnsignedLongInt pointer) hash cacheEntry!(MethodCacheEntry pointer) | hunk ./src/mobius/vm/base/dispatch.slate 55 -name@ObjectPointer checkMethodCacheOn: arguments arity: n +name@UnsignedLongInt checkMethodCacheOn: arguments arity: n hunk ./src/mobius/vm/base/dispatch.slate 59 -[| arguments!(ObjectPointer pointer) sym!(Symbol pointer) map!(Map pointer) cacheEntry!(MethodCacheEntry pointer) hash | +[| arguments!(UnsignedLongInt pointer) sym!(Symbol pointer) map!(Map pointer) cacheEntry!(MethodCacheEntry pointer) hash | hunk ./src/mobius/vm/base/dispatch.slate 102 -name@ObjectPointer dispatchTo: arguments arity: n above: resendMethod +name@UnsignedLongInt dispatchTo: arguments arity: n above: resendMethod hunk ./src/mobius/vm/base/dispatch.slate 105 -[| resendMethod!ObjectPointer arguments!(ObjectPointer pointer) depth delegationCount bestRank bestDef!(MethodDefinition pointer) dispatch!(MethodDefinition pointer) resendRank slotLocation!(Object pointer) restricted!LongInt | +[| resendMethod!UnsignedLongInt arguments!(UnsignedLongInt pointer) depth delegationCount bestRank bestDef!(MethodDefinition pointer) dispatch!(MethodDefinition pointer) resendRank slotLocation!(Object pointer) restricted!LongInt | hunk ./src/mobius/vm/base/dispatch.slate 118 - [| :index arg!ObjectPointer | + [| :index arg!UnsignedLongInt | hunk ./src/mobius/vm/base/dispatch.slate 229 - map delegates arraySize > 0 + map delegates!(Object pointer) cast arraySize > 0 hunk ./src/mobius/vm/base/dispatch.slate 233 - delegates arrayOffset - to: delegates totalSize - #[ObjectPointer byteSize] - by: #[ObjectPointer byteSize] - do: [| :offset delegate!ObjectPointer | - delegate: (delegates slotValueAtOffset: offset). + delegates!(Object pointer) cast arrayOffset + to: delegates!(Object pointer) cast totalSize - UnsignedLongInt cSize + by: UnsignedLongInt cSize + do: [| :offset delegate!UnsignedLongInt | + delegate: (delegates!(Object pointer) cast slotValueAtOffset: offset). hunk ./src/mobius/vm/base/layout.slate 7 -addSynonymNamed: #Byte of: UnsignedChar &export: True. - -"any pointer that's treated like an integer" -addSynonymNamed: #IntegerPointer of: UnsignedLongInt &export: True. - -"Any integer that's not a bignum" -addSynonymNamed: #SmallInteger of: LongInt &export: True. -addSynonymNamed: #UnsignedSmallInteger of: IntegerPointer &export: True. - -addSynonymNamed: #Bool of: UnsignedSmallInteger &export: True. -addSynonymNamed: #ObjectPointer of: IntegerPointer &export: True. +" +don't use these--synonyms act weird hunk ./src/mobius/vm/base/layout.slate 10 +addSynonymNamed: #Word of: UnsignedLongInt &export: True. +addSynonymNamed: #SignedWord of: LongInt &export: True. +addSynonymNamed: #Byte of: UnsignedChar &export: True. +addSynonymNamed: #Bool of: UnsignedLongInt &export: True. +addSynonymNamed: #ObjectPointer of: UnsignedLongInt &export: True. +" hunk ./src/mobius/vm/base/layout.slate 18 -addConstantNamed: #True &value: 1 &type: Bool &export: True. -addConstantNamed: #False &value: 0 &type: Bool &export: True. +addConstantNamed: #True &value: 1 &type: UnsignedLongInt &export: True. +addConstantNamed: #False &value: 0 &type: UnsignedLongInt &export: True. hunk ./src/mobius/vm/base/layout.slate 56 - (i bitXor: i << 1)!SmallInteger cast >= 0 -]!Bool inline export. + (i bitXor: i << 1)!UnsignedLongInt cast >= 0 +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/layout.slate 59 -oop@ObjectPointer isSmallInt [(oop bitAnd: TagMask) = SmallIntTag]!Bool inline export. -oop@ObjectPointer isObject [(oop bitAnd: TagMask) = ObjectTag]!Bool inline export. +oop@UnsignedLongInt isSmallInt [(oop bitAnd: TagMask) = SmallIntTag]!UnsignedLongInt inline export. +oop@UnsignedLongInt isObject [(oop bitAnd: TagMask) = ObjectTag]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/layout.slate 62 -oop@ObjectPointer pointer -"The memory address stored in the ObjectPointer; not shifted since objects are +oop@UnsignedLongInt pointer +"The memory address stored in the UnsignedLongInt; not shifted since objects are hunk ./src/mobius/vm/base/layout.slate 71 -[(p!IntegerPointer cast bitOr: ObjectTag)!ObjectPointer cast]!ObjectPointer inline export. +[(p!UnsignedLongInt cast bitOr: ObjectTag)!UnsignedLongInt cast]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/layout.slate 74 -[(p!IntegerPointer cast bitOr: ObjectTag)!ObjectPointer cast]!ObjectPointer inline export. +[(p!UnsignedLongInt cast bitOr: ObjectTag)!UnsignedLongInt cast]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/layout.slate 76 -i@IntegerPointer asObject -[(i << 1 bitOr: SmallIntTag)!ObjectPointer cast]!ObjectPointer inline export. +i@UnsignedLongInt asObject +[(i << 1 bitOr: SmallIntTag)!UnsignedLongInt cast]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/layout.slate 80 -[(i << 1 bitOr: SmallIntTag)!ObjectPointer cast]!ObjectPointer inline export. +[(i << 1 bitOr: SmallIntTag)!UnsignedLongInt cast]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/layout.slate 82 -oop@ObjectPointer asSmallInt +oop@UnsignedLongInt asSmallInt hunk ./src/mobius/vm/base/layout.slate 85 - oop!IntegerPointer cast >> 1 -]!SmallInteger inline export. + oop!UnsignedLongInt cast >> 1 +]!LongInt inline export. hunk ./src/mobius/vm/base/layout.slate 88 -arg@ObjectPointer checkMap +arg@UnsignedLongInt checkMap hunk ./src/mobius/vm/base/map.slate 3 -MethodDefinition addElementNamed: #method &type: ObjectPointer. -MethodDefinition addElementNamed: #slotAccessor &type: ObjectPointer. -MethodDefinition addElementNamed: #dispatchID &type: UnsignedLongLongInt. -MethodDefinition addElementNamed: #dispatchPositions &type: UnsignedSmallInteger. -MethodDefinition addElementNamed: #foundPositions &type: UnsignedSmallInteger. -MethodDefinition addElementNamed: #dispatchRank &type: UnsignedSmallInteger. +MethodDefinition addElementNamed: #method &type: UnsignedLongInt. +MethodDefinition addElementNamed: #slotAccessor &type: UnsignedLongInt. +MethodDefinition addElementNamed: #dispatchID &type: UnsignedLongInt. +MethodDefinition addElementNamed: #dispatchPositions &type: UnsignedLongInt. +MethodDefinition addElementNamed: #foundPositions &type: UnsignedLongInt. +MethodDefinition addElementNamed: #dispatchRank &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 11 -RoleEntry addElementNamed: #name &type: ObjectPointer. +RoleEntry addElementNamed: #name &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 13 -RoleEntry addElementNamed: #rolePositions &type: ObjectPointer. +RoleEntry addElementNamed: #rolePositions &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 17 -RoleEntry addElementNamed: #nextRole &type: ObjectPointer. +RoleEntry addElementNamed: #nextRole &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 25 - roles arraySize // #[RoleEntry wordSize] -]!UnsignedSmallInteger inline. + roles!(Object pointer) cast arraySize // #[RoleEntry wordSize] +]!UnsignedLongInt inline. hunk ./src/mobius/vm/base/map.slate 37 -]!UnsignedSmallInteger. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 41 -[| n!UnsignedSmallInteger tableSize requested | +[| n!UnsignedLongInt tableSize requested | hunk ./src/mobius/vm/base/map.slate 50 -]!UnsignedSmallInteger. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 56 -[| name!ObjectPointer tableSize hash role!(RoleEntry pointer) | +[| name!UnsignedLongInt tableSize hash role!(RoleEntry pointer) | hunk ./src/mobius/vm/base/map.slate 77 -[| name!ObjectPointer tableSize hash role!(RoleEntry pointer) | +[| name!UnsignedLongInt tableSize hash role!(RoleEntry pointer) | hunk ./src/mobius/vm/base/map.slate 96 -[| n!UnsignedSmallInteger method!(MethodDefinition pointer) newRoles!(RoleTable pointer) oldSize newSize | +[| n!UnsignedLongInt method!(MethodDefinition pointer) newRoles!(RoleTable pointer) oldSize newSize | hunk ./src/mobius/vm/base/map.slate 101 - (oldSize // 3)!UnsignedSmallInteger cast - roles emptySpace + n). + (oldSize // 3)!UnsignedLongInt cast - roles emptySpace + n). hunk ./src/mobius/vm/base/map.slate 104 - [| :index roleName!ObjectPointer | + [| :index roleName!UnsignedLongInt | hunk ./src/mobius/vm/base/map.slate 123 -SlotEntry addElementNamed: #name &type: ObjectPointer. +SlotEntry addElementNamed: #name &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 125 -SlotEntry addElementNamed: #offset &type: ObjectPointer. +SlotEntry addElementNamed: #offset &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 141 - slots arraySize // #[SlotEntry wordSize] -]!UnsignedSmallInteger inline. + slots!(Object pointer) cast arraySize // #[SlotEntry wordSize] +]!UnsignedLongInt inline. hunk ./src/mobius/vm/base/map.slate 153 -]!UnsignedSmallInteger. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 159 -[| name!ObjectPointer tableSize hash slot!(SlotEntry pointer) | +[| name!UnsignedLongInt tableSize hash slot!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 180 -[| name!ObjectPointer tableSize hash slot!(SlotEntry pointer) | +[| name!UnsignedLongInt tableSize hash slot!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 197 -[| n!UnsignedSmallInteger tableSize requested | +[| n!UnsignedLongInt tableSize requested | hunk ./src/mobius/vm/base/map.slate 206 -]!UnsignedSmallInteger. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 212 -[| n!UnsignedSmallInteger name!ObjectPointer newSlots!(SlotTable pointer) oldSize newSize | +[| n!UnsignedLongInt name!UnsignedLongInt newSlots!(SlotTable pointer) oldSize newSize | hunk ./src/mobius/vm/base/map.slate 217 - (oldSize // 3)!UnsignedSmallInteger cast - slots emptySpace + n). + (oldSize // 3)!UnsignedLongInt cast - slots emptySpace + n). hunk ./src/mobius/vm/base/map.slate 220 - [| :index slotName!ObjectPointer | + [| :index slotName!UnsignedLongInt | hunk ./src/mobius/vm/base/map.slate 234 -[| amount!UnsignedSmallInteger | +[| amount!UnsignedLongInt | hunk ./src/mobius/vm/base/map.slate 249 -Map addElementNamed: #flags &type: ObjectPointer. -Map addElementNamed: #representative &type: ObjectPointer. +Map addElementNamed: #flags &type: UnsignedLongInt. +Map addElementNamed: #representative &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 252 -Map addElementNamed: #slotCount &type: ObjectPointer. +Map addElementNamed: #slotCount &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 256 -Map addElementNamed: #dispatchID &type: UnsignedLongLongInt. +Map addElementNamed: #dispatchID &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 258 -Map addElementNamed: #visitedPositions &type: UnsignedSmallInteger. +Map addElementNamed: #visitedPositions &type: UnsignedLongInt. hunk ./src/mobius/vm/base/map.slate 288 -[(obj map flags bitAnd: MapFlagImmutable) ~= 0]!Bool inline. +[(obj map flags bitAnd: MapFlagImmutable) ~= 0]!UnsignedLongInt inline. hunk ./src/mobius/vm/base/map.slate 291 -[(obj map flags bitAnd: MapFlagRestrictDelegation) ~= 0]!Bool inline. +[(obj map flags bitAnd: MapFlagRestrictDelegation) ~= 0]!UnsignedLongInt inline. hunk ./src/mobius/vm/base/map.slate 294 -[| name!ObjectPointer value!ObjectPointer map!(Map pointer) newObj!(Object pointer) entry!(SlotEntry pointer) | +[| name!UnsignedLongInt value!UnsignedLongInt offset!UnsignedLongInt map!(Map pointer) newObj!(Object pointer) entry!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 301 - map slotTable relocateAll: SlotTypeData above: offset by: #[ObjectPointer byteSize]. + map slotTable relocateAll: SlotTypeData above: offset by: UnsignedLongInt cSize. hunk ./src/mobius/vm/base/map.slate 311 - ifTrue: [#[ObjectPointer byteSize]] - ifFalse: [obj payloadSize + #[ObjectPointer byteSize]])). + ifTrue: [UnsignedLongInt cSize] + ifFalse: [obj payloadSize + UnsignedLongInt cSize])). hunk ./src/mobius/vm/base/map.slate 325 - obj!(Byte pointer) cast + obj firstSlotOffset + obj!(UnsignedChar pointer) cast + obj firstSlotOffset hunk ./src/mobius/vm/base/map.slate 327 - into: newObj!(Byte pointer) cast + newObj firstSlotOffset. + into: newObj!(UnsignedChar pointer) cast + newObj firstSlotOffset. hunk ./src/mobius/vm/base/map.slate 329 - obj!(Byte pointer) cast + offset + obj!(UnsignedChar pointer) cast + offset hunk ./src/mobius/vm/base/map.slate 331 - into: newObj!(Byte pointer) cast + offset + #[ObjectPointer byteSize]. + into: newObj!(UnsignedChar pointer) cast + offset + UnsignedLongInt cSize. hunk ./src/mobius/vm/base/map.slate 340 -[| name!ObjectPointer value!ObjectPointer newObj!(Object pointer) | +[| name!UnsignedLongInt value!UnsignedLongInt newObj!(Object pointer) | hunk ./src/mobius/vm/base/map.slate 345 - at: obj firstSlotOffset + (obj map slotCount asSmallInt * #[ObjectPointer byteSize])). + at: obj firstSlotOffset + (obj map slotCount asSmallInt * UnsignedLongInt cSize)). hunk ./src/mobius/vm/base/map.slate 354 -[| name!ObjectPointer value!ObjectPointer map!(Map pointer) delsSize oldDels!(OopArray pointer) newDels!(OopArray pointer) pos entry!(SlotEntry pointer) | +[| name!UnsignedLongInt value!UnsignedLongInt map!(Map pointer) delsSize oldDels!(OopArray pointer) newDels!(OopArray pointer) pos entry!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 361 - map slotTable relocateAll: SlotTypeDelegate above: offset by: #[ObjectPointer byteSize]. + map slotTable relocateAll: SlotTypeDelegate above: offset by: UnsignedLongInt cSize. hunk ./src/mobius/vm/base/map.slate 366 - delsSize: oldDels arraySize. + delsSize: oldDels!(Object pointer) cast arraySize. hunk ./src/mobius/vm/base/map.slate 369 - pos: (offset - oldDels arrayOffset) / #[ObjectPointer byteSize]. - oldDels elements!(Word pointer) cast + pos: (offset - oldDels!(Object pointer) cast arrayOffset) / UnsignedLongInt cSize. + oldDels elements!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/map.slate 372 - into: newDels elements!(Word pointer) cast. - newDels slotValueAtOffset: offset put: value. - oldDels elements!(Word pointer) cast + pos + into: newDels elements!(UnsignedLongInt pointer) cast. + newDels!(Object pointer) cast slotValueAtOffset: offset put: value. + oldDels elements!(UnsignedLongInt pointer) cast + pos hunk ./src/mobius/vm/base/map.slate 376 - into: newDels elements!(Word pointer) cast + pos + 1. + into: newDels elements!(UnsignedLongInt pointer) cast + pos + 1. hunk ./src/mobius/vm/base/map.slate 383 -[| name!ObjectPointer value!ObjectPointer newObj!(Object pointer) | +[| name!UnsignedLongInt value!UnsignedLongInt newObj!(Object pointer) | hunk ./src/mobius/vm/base/map.slate 388 - at: obj map delegates totalSize). + at: (obj map delegates)!(Object pointer) cast totalSize). hunk ./src/mobius/vm/base/map.slate 395 -[| name!ObjectPointer value!ObjectPointer succ!ObjectPointer newObj!(Object pointer) offset entry!(SlotEntry pointer) | +[| name!UnsignedLongInt value!UnsignedLongInt succ!UnsignedLongInt newObj!(Object pointer) offset entry!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 413 -[| name!ObjectPointer value!ObjectPointer pred!ObjectPointer newObj!(Object pointer) offset entry!(SlotEntry pointer) | +[| name!UnsignedLongInt value!UnsignedLongInt pred!UnsignedLongInt newObj!(Object pointer) offset entry!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 424 - at: (offset bitAnd: SlotOffsetMask) + #[ObjectPointer byteSize]). + at: (offset bitAnd: SlotOffsetMask) + UnsignedLongInt cSize). hunk ./src/mobius/vm/base/map.slate 431 -[| name!ObjectPointer entry!(SlotEntry pointer) | +[| name!UnsignedLongInt entry!(SlotEntry pointer) | hunk ./src/mobius/vm/base/map.slate 441 -[| entry!(SlotEntry pointer) map!(Map pointer) newObj!(Object pointer) offset | +[| entry!(SlotEntry pointer) map!(Map pointer) newObj!(Object pointer) offset!LongInt | hunk ./src/mobius/vm/base/map.slate 447 - map slotTable relocateAll: SlotTypeData above: offset by: #[ObjectPointer byteSize negated]. + map slotTable relocateAll: SlotTypeData above: offset by: 0 - UnsignedLongInt cSize. hunk ./src/mobius/vm/base/map.slate 455 - [obj payloadSize = #[ObjectPointer byteSize] + [obj payloadSize = UnsignedLongInt cSize hunk ./src/mobius/vm/base/map.slate 462 - withPayload: obj payloadSize - #[ObjectPointer byteSize]). + withPayload: obj payloadSize - UnsignedLongInt cSize). hunk ./src/mobius/vm/base/map.slate 472 - obj!(Byte pointer) cast + obj firstSlotOffset + obj!(UnsignedChar pointer) cast + obj firstSlotOffset hunk ./src/mobius/vm/base/map.slate 474 - into: newObj!(Byte pointer) cast + newObj firstSlotOffset. - obj!(Byte pointer) cast + offset + #[ObjectPointer byteSize] - copyBytes: obj totalSize - offset - #[ObjectPointer byteSize] - into: newObj!(Byte pointer) cast + offset. + into: newObj!(UnsignedChar pointer) cast + newObj firstSlotOffset. + obj!(UnsignedChar pointer) cast + offset + UnsignedLongInt cSize!UnsignedLongInt + copyBytes: obj totalSize - offset - UnsignedLongInt cSize + into: newObj!(UnsignedChar pointer) cast + offset. hunk ./src/mobius/vm/base/map.slate 489 - map slotTable relocateAll: SlotTypeDelegate above: offset by: #[ObjectPointer byteSize negated]. + map slotTable relocateAll: SlotTypeDelegate above: offset by: (0 - UnsignedLongInt cSize). hunk ./src/mobius/vm/base/map.slate 491 - delsSize: oldDels arraySize. + delsSize: oldDels!(Object pointer) cast arraySize. hunk ./src/mobius/vm/base/map.slate 494 - pos: (offset - oldDels arrayOffset) / #[ObjectPointer byteSize]. - oldDels elements!(Word pointer) cast + pos: (offset - oldDels!(Object pointer) cast arrayOffset) / UnsignedLongInt cSize. + oldDels elements!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/map.slate 497 - into: newDels elements!(Word pointer) cast. - oldDels elements!(Word pointer) cast + pos + 1 + into: newDels elements!(UnsignedLongInt pointer) cast. + oldDels elements!(UnsignedLongInt pointer) cast + pos + 1 hunk ./src/mobius/vm/base/map.slate 500 - into: newDels elements!(Word pointer) cast + pos. + into: newDels elements!(UnsignedLongInt pointer) cast + pos. hunk ./src/mobius/vm/base/map.slate 507 -[| name!ObjectPointer method!(MethodDefinition pointer) map!(Map pointer) chain!(RoleEntry pointer) entry!(RoleEntry pointer) | +[| name!UnsignedLongInt method!(MethodDefinition pointer) map!(Map pointer) chain!(RoleEntry pointer) entry!(RoleEntry pointer) | hunk ./src/mobius/vm/base/map.slate 549 -]!Bool export. +]!UnsignedLongInt export. hunk ./src/mobius/vm/base/map.slate 554 -[| name!ObjectPointer method!(MethodDefinition pointer) map!(Map pointer) roles!(RoleTable pointer) n | +[| name!UnsignedLongInt method!(MethodDefinition pointer) map!(Map pointer) roles!(RoleTable pointer) n | hunk ./src/mobius/vm/base/map.slate 568 -]!Bool export. +]!UnsignedLongInt export. hunk ./src/mobius/vm/base/map.slate 574 -[| method!ObjectPointer map!(Map pointer) | +[| method!UnsignedLongInt map!(Map pointer) | hunk ./src/mobius/vm/base/map.slate 586 -method@ObjectPointer isMethod: selector on: args arity: n +method@UnsignedLongInt isMethod: selector on: args arity: n hunk ./src/mobius/vm/base/map.slate 590 -[| selector!ObjectPointer args!(ObjectPointer pointer) positions def!(MethodDefinition pointer) | +[| selector!UnsignedLongInt args!(UnsignedLongInt pointer) positions def!(MethodDefinition pointer) | hunk ./src/mobius/vm/base/map.slate 596 - [| :index role!ObjectPointer roleDef!(MethodDefinition pointer) | + [| :index role!UnsignedLongInt roleDef!(MethodDefinition pointer) | hunk ./src/mobius/vm/base/map.slate 611 -method@ObjectPointer asMethod: selector on: args arity: n +method@UnsignedLongInt asMethod: selector on: args arity: n hunk ./src/mobius/vm/base/map.slate 614 -[| selector!ObjectPointer args!(ObjectPointer pointer) sym!(Symbol pointer) positions oldDef!(MethodDefinition pointer) def!(MethodDefinition pointer) argBuffer!(Array of: ObjectPointer size: 16) | +[| selector!UnsignedLongInt args!(UnsignedLongInt pointer) sym!(Symbol pointer) positions oldDef!(MethodDefinition pointer) def!(MethodDefinition pointer) argBuffer!(Array of: UnsignedLongInt size: 16) | hunk ./src/mobius/vm/base/map.slate 621 - [| :index role!ObjectPointer | + [| :index role!UnsignedLongInt | hunk ./src/mobius/vm/base/map.slate 629 - args!(Word pointer) cast copyWords: n into: argBuffer!(Word pointer) cast. + args!(UnsignedLongInt pointer) cast copyWords: n into: argBuffer!(UnsignedLongInt pointer) cast. hunk ./src/mobius/vm/base/map.slate 645 - [| :index role!ObjectPointer | + [| :index role!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 1 -ObjectHeap addElementNamed: #memory &type: IntegerPointer pointer. "pointer? fix? what?" -ObjectHeap addElementNamed: #memoryEnd &type: IntegerPointer. +ObjectHeap addElementNamed: #memory &type: UnsignedLongInt pointer. "pointer? fix? what?" +ObjectHeap addElementNamed: #memoryEnd &type: UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 5 -ObjectHeap addElementNamed: #totalObjectCount &type: UnsignedSmallInteger. +ObjectHeap addElementNamed: #totalObjectCount &type: UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 14 -specialObjectsOop array at which ObjectPointers to the various objects +specialObjectsOop array at which UnsignedLongInts to the various objects hunk ./src/mobius/vm/base/memory.slate 41 -addGlobalNamed: #InterruptFlag &type: Bool. +addGlobalNamed: #InterruptFlag &type: UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 45 -ObjectHeap addElementNamed: #TrueObject &type: ObjectPointer. -ObjectHeap addElementNamed: #FalseObject &type: ObjectPointer. -ObjectHeap addElementNamed: #NilObject &type: ObjectPointer. -ObjectHeap addElementNamed: #ClosureWindow &type: ObjectPointer. -ObjectHeap addElementNamed: #CompiledMethodWindow &type: ObjectPointer. -ObjectHeap addElementNamed: #PrimitiveMethodWindow &type: ObjectPointer. -ObjectHeap addElementNamed: #specialObjectsOop &type: ObjectPointer. +ObjectHeap addElementNamed: #TrueObject &type: UnsignedLongInt. +ObjectHeap addElementNamed: #FalseObject &type: UnsignedLongInt. +ObjectHeap addElementNamed: #NilObject &type: UnsignedLongInt. +ObjectHeap addElementNamed: #ClosureWindow &type: UnsignedLongInt. +ObjectHeap addElementNamed: #CompiledMethodWindow &type: UnsignedLongInt. +ObjectHeap addElementNamed: #PrimitiveMethodWindow &type: UnsignedLongInt. +ObjectHeap addElementNamed: #specialObjectsOop &type: UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 60 -]!ObjectPointer export. +]!UnsignedLongInt export. hunk ./src/mobius/vm/base/memory.slate 63 -[| oop!ObjectPointer ptr!(Object pointer) shiftAmountInBytes!SmallInteger fieldOop!ObjectPointer | +[| oop!UnsignedLongInt ptr!(Object pointer) shiftAmountInBytes!LongInt fieldOop!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 66 - ptr map: (ptr map!(Byte pointer) cast + shiftAmountInBytes)!(Map pointer) cast. + ptr map: (ptr map!(UnsignedChar pointer) cast + shiftAmountInBytes)!(Map pointer) cast. hunk ./src/mobius/vm/base/memory.slate 69 - by: #[ObjectPointer byteSize] + by: UnsignedLongInt cSize hunk ./src/mobius/vm/base/memory.slate 81 -[| shiftAmountInBytes oop!ObjectPointer total | +[| shiftAmountInBytes oop!UnsignedLongInt total | hunk ./src/mobius/vm/base/memory.slate 92 -]!UnsignedSmallInteger export. +]!UnsignedLongInt export. hunk ./src/mobius/vm/base/memory.slate 131 - h memory!IntegerPointer cast -]!IntegerPointer export. + h memory!UnsignedLongInt cast +]!UnsignedLongInt export. hunk ./src/mobius/vm/base/memory.slate 138 -]!Bool export. +]!UnsignedLongInt export. hunk ./src/mobius/vm/base/memory.slate 151 -[| obj!ObjectPointer | +[| obj!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 159 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 164 -[| oop!ObjectPointer obj!ObjectPointer | +[| oop!UnsignedLongInt obj!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 174 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 179 -[| map!(Map pointer) thisObj!ObjectPointer | +[| map!(Map pointer) thisObj!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 188 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 193 -[| map!(Map pointer) oop!ObjectPointer thisObj!ObjectPointer | +[| map!(Map pointer) oop!UnsignedLongInt thisObj!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 202 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 207 -[| parentOop!ObjectPointer thisObj!ObjectPointer thisParent!ObjectPointer numDelegates | +[| parentOop!UnsignedLongInt thisObj!UnsignedLongInt thisParent!UnsignedLongInt numDelegates | hunk ./src/mobius/vm/base/memory.slate 212 - [numDelegates: thisObj pointer map delegates arraySize. + [numDelegates: (thisObj pointer map delegates)!(Object pointer) cast arraySize. hunk ./src/mobius/vm/base/memory.slate 219 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 224 -[| parentOop!ObjectPointer oop!ObjectPointer thisObj!ObjectPointer thisParent!ObjectPointer numDelegates | +[| parentOop!UnsignedLongInt oop!UnsignedLongInt thisObj!UnsignedLongInt thisParent!UnsignedLongInt numDelegates | hunk ./src/mobius/vm/base/memory.slate 230 - [numDelegates: thisObj pointer map delegates arraySize. + [numDelegates: (thisObj pointer map delegates)!(Object pointer) cast arraySize. hunk ./src/mobius/vm/base/memory.slate 238 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 243 -[| targetOop!ObjectPointer thisObj!ObjectPointer thisSlot!ObjectPointer slotCount | +[| targetOop!UnsignedLongInt thisObj!UnsignedLongInt thisSlot!UnsignedLongInt slotCount | hunk ./src/mobius/vm/base/memory.slate 255 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 260 -[| targetOop!ObjectPointer oop!ObjectPointer thisObj!ObjectPointer thisSlot!ObjectPointer slotCount | +[| targetOop!UnsignedLongInt oop!UnsignedLongInt thisObj!UnsignedLongInt thisSlot!UnsignedLongInt slotCount | hunk ./src/mobius/vm/base/memory.slate 274 -]!ObjectPointer. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 288 -]!UnsignedSmallInteger. +]!UnsignedLongInt. hunk ./src/mobius/vm/base/memory.slate 293 - h memoryEnd!IntegerPointer cast - h memory!IntegerPointer cast -]!UnsignedSmallInteger inline export. + h memoryEnd!UnsignedLongInt cast - h memory!UnsignedLongInt cast +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/memory.slate 317 -src@(Word pointer) copyWords: n into: dst -[| dst!(Word pointer) | +src@(UnsignedLongInt pointer) copyWords: n into: dst +[| dst!(UnsignedLongInt pointer) | hunk ./src/mobius/vm/base/memory.slate 337 -src@(Byte pointer) copyBytes: n into: dst -[| dst!(Byte pointer) | +src@(UnsignedChar pointer) copyBytes: n into: dst +[| dst!(UnsignedChar pointer) | hunk ./src/mobius/vm/base/memory.slate 357 -dst@(Word pointer) fillWords: n with: value -[| value!Word | +dst@(UnsignedLongInt pointer) fillWords: n with: value +[| value!UnsignedLongInt | hunk ./src/mobius/vm/base/memory.slate 366 -dst@(Byte pointer) fillBytes: n with: value -[| value!Byte | +dst@(UnsignedChar pointer) fillBytes: n with: value +[| value!UnsignedChar | hunk ./src/mobius/vm/base/object.slate 4 -]!UnsignedSmallInteger inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 9 - ifTrue: [obj header objectSize * #[IntegerPointer byteSize]] - ifFalse: [obj header objectSize * #[IntegerPointer byteSize] + obj payloadSize + #[2 * IntegerPointer byteSize - 1] - bitAnd: #[(IntegerPointer byteSize - 1) bitNot]] -]!UnsignedSmallInteger inline export. + ifTrue: [obj header objectSize * UnsignedLongInt cSize] + ifFalse: [obj header objectSize * UnsignedLongInt cSize + obj payloadSize + 2 * UnsignedLongInt cSize - 1 + bitAnd: (UnsignedLongInt cSize - 1) bitNot] +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 20 - ifFalse: [obj header objectSize + ((obj payloadSize + #[IntegerPointer byteSize - 1]) // #[IntegerPointer byteSize])] -]!UnsignedSmallInteger inline export. + ifFalse: [obj header objectSize + ((obj payloadSize + UnsignedLongInt cSize - 1) // UnsignedLongInt cSize)] +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 25 - #[Object byteSize] -]!UnsignedSmallInteger inline export. + Object cSize +]!UnsignedLongInt inline export. + hunk ./src/mobius/vm/base/object.slate 32 -]!UnsignedSmallInteger inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 39 -]!UnsignedSmallInteger inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 43 - obj header objectSize * #[IntegerPointer byteSize] - #[ObjectPointer byteSize] -]!IntegerPointer inline export. + obj header objectSize * UnsignedLongInt cSize - UnsignedLongInt cSize +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 53 -]!IntegerPointer inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 57 - obj header objectSize * #[IntegerPointer byteSize] -]!IntegerPointer inline export. + obj header objectSize * UnsignedLongInt cSize +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 62 - (obj!(Byte pointer) cast + obj arrayOffset)!(ObjectPointer pointer) cast -]!(ObjectPointer pointer) inline export. + obj!(UnsignedChar pointer) cast + obj arrayOffset +]!(UnsignedLongInt pointer) inline export. hunk ./src/mobius/vm/base/object.slate 69 - ifFalse: [(obj payloadSize + #[IntegerPointer byteSize - 1]) // #[IntegerPointer byteSize]] -]!UnsignedSmallInteger inline export. + ifFalse: [(obj payloadSize + UnsignedLongInt cSize - 1) // UnsignedLongInt cSize] +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 74 - obj wordSize * #[IntegerPointer byteSize] -]!UnsignedSmallInteger inline export. + obj wordSize * UnsignedLongInt cSize +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 82 -]!UnsignedSmallInteger inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 86 - (obj + 1)!(ObjectPointer pointer) cast -]!(ObjectPointer pointer) inline export. + (obj + 1)!(UnsignedLongInt pointer) cast +]!(UnsignedLongInt pointer) inline export. hunk ./src/mobius/vm/base/object.slate 92 -]!ObjectPointer inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 97 -]!ObjectPointer inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 101 - (obj!(Byte pointer) cast + offset)!(ObjectPointer pointer) cast load -]!ObjectPointer inline export. + (obj!(UnsignedChar pointer) cast + offset)!(UnsignedLongInt pointer) cast load +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 105 -[| value!ObjectPointer | - (obj!(Byte pointer) cast + offset)!(ObjectPointer pointer) cast store: value -]!ObjectPointer inline export. +[| value!UnsignedLongInt | + (obj!(UnsignedChar pointer) cast + offset)!(UnsignedLongInt pointer) cast store: value +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/object.slate 112 -OopArray addElementNamed: #elements &type: (Array of: ObjectPointer size: 0). +OopArray addElementNamed: #elements &type: (Array of: UnsignedLongInt size: 0). hunk ./src/mobius/vm/base/object.slate 116 -ByteArray addElementNamed: #elements &type: (Array of: Byte size: 0). +ByteArray addElementNamed: #elements &type: (Array of: UnsignedChar size: 0). hunk ./src/mobius/vm/base/object.slate 120 -[| targetBuffer!(Byte pointer) bufferSize!UnsignedSmallInteger payloadSize | - payloadSize: fromArray payloadSize. +[| targetBuffer!(UnsignedChar pointer) bufferSize!UnsignedLongInt payloadSize | + payloadSize: fromArray!(Object pointer) cast payloadSize. hunk ./src/mobius/vm/base/object.slate 123 - (fromArray elements)!(Byte pointer) cast copyBytes: bufferSize into: targetBuffer. + (fromArray elements)!(UnsignedChar pointer) cast copyBytes: bufferSize into: targetBuffer. hunk ./src/mobius/vm/base/object.slate 125 -]!SmallInteger inline export. +]!LongInt inline export. hunk ./src/mobius/vm/base/object.slate 130 -Symbol addElementNamed: #cacheMask &type: ObjectPointer. +Symbol addElementNamed: #cacheMask &type: UnsignedLongInt. hunk ./src/mobius/vm/base/object.slate 133 -Symbol addElementNamed: #elements &type: (Array of: Byte size: 0). +Symbol addElementNamed: #elements &type: (Array of: UnsignedChar size: 0). hunk ./src/mobius/vm/base/object.slate 150 - proto!(IntegerPointer pointer) cast + #[ObjectHeader wordSize] + proto!(UnsignedLongInt pointer) cast + #[ObjectHeader wordSize] hunk ./src/mobius/vm/base/object.slate 152 - into: newObj!(IntegerPointer pointer) cast + #[ObjectHeader wordSize]. + into: newObj!(UnsignedLongInt pointer) cast + #[ObjectHeader wordSize]. hunk ./src/mobius/vm/base/object.slate 167 - newObj: (oh allocateChunkSized: proto header objectSize withPayload: oops * #[IntegerPointer byteSize]). + newObj: (oh allocateChunkSized: proto header objectSize withPayload: oops * UnsignedLongInt cSize). hunk ./src/mobius/vm/base/object.slate 170 - proto!(IntegerPointer pointer) cast + #[ObjectHeader wordSize] + proto!(UnsignedLongInt pointer) cast + #[ObjectHeader wordSize] hunk ./src/mobius/vm/base/object.slate 172 - into: newObj!(IntegerPointer pointer) cast + #[ObjectHeader wordSize]. - newObj!(IntegerPointer pointer) cast + proto header objectSize + into: newObj!(UnsignedLongInt pointer) cast + #[ObjectHeader wordSize]. + newObj!(UnsignedLongInt pointer) cast + proto header objectSize hunk ./src/mobius/vm/base/object.slate 186 - proto!(IntegerPointer pointer) cast + #[ObjectHeader wordSize] + proto!(UnsignedLongInt pointer) cast + #[ObjectHeader wordSize] hunk ./src/mobius/vm/base/object.slate 188 - into: newObj!(IntegerPointer pointer) cast + #[ObjectHeader wordSize]. - newObj!(IntegerPointer pointer) cast + proto header objectSize - fillWords: (bytes + #[IntegerPointer byteSize - 1]) // #[IntegerPointer byteSize] + into: newObj!(UnsignedLongInt pointer) cast + #[ObjectHeader wordSize]. + newObj!(UnsignedLongInt pointer) cast + proto header objectSize + fillWords: (bytes + UnsignedLongInt cSize - 1) // UnsignedLongInt cSize hunk ./src/mobius/vm/base/object.slate 210 -[| result!(ByteArray pointer) buffer!(Byte pointer) | +[| result!(ByteArray pointer) buffer!(UnsignedChar pointer) | hunk ./src/mobius/vm/base/object.slate 212 - buffer copyBytes: bytes into: (result elements)!(Byte pointer). + buffer copyBytes: bytes into: (result elements)!(UnsignedChar pointer). hunk ./src/mobius/vm/base/vm.slate 32 -CompiledMethod addElementNamed: #selector &type: ObjectPointer. -CompiledMethod addElementNamed: #inputVariables &type: ObjectPointer. -CompiledMethod addElementNamed: #localVariables &type: ObjectPointer. -CompiledMethod addElementNamed: #restVariable &type: ObjectPointer. +CompiledMethod addElementNamed: #selector &type: UnsignedLongInt. +CompiledMethod addElementNamed: #inputVariables &type: UnsignedLongInt. +CompiledMethod addElementNamed: #localVariables &type: UnsignedLongInt. +CompiledMethod addElementNamed: #restVariable &type: UnsignedLongInt. hunk ./src/mobius/vm/base/vm.slate 37 -CompiledMethod addElementNamed: #heapAllocate &type: ObjectPointer. -CompiledMethod addElementNamed: #environment &type: ObjectPointer. +CompiledMethod addElementNamed: #heapAllocate &type: UnsignedLongInt. +CompiledMethod addElementNamed: #environment &type: UnsignedLongInt. hunk ./src/mobius/vm/base/vm.slate 42 -CompiledMethod addElementNamed: #sourceTree &type: ObjectPointer. -CompiledMethod addElementNamed: #debugMap &type: ObjectPointer. +CompiledMethod addElementNamed: #sourceTree &type: UnsignedLongInt. +CompiledMethod addElementNamed: #debugMap &type: UnsignedLongInt. hunk ./src/mobius/vm/base/vm.slate 46 -PrimitiveMethod addElementNamed: #index &type: ObjectPointer. -PrimitiveMethod addElementNamed: #selector &type: ObjectPointer. -PrimitiveMethod addElementNamed: #inputVariables &type: ObjectPointer. +PrimitiveMethod addElementNamed: #index &type: UnsignedLongInt. +PrimitiveMethod addElementNamed: #selector &type: UnsignedLongInt. +PrimitiveMethod addElementNamed: #inputVariables &type: UnsignedLongInt. hunk ./src/mobius/vm/base/vm.slate 51 -LexicalContext addElementNamed: #framePointer &type: ObjectPointer. +LexicalContext addElementNamed: #framePointer &type: UnsignedLongInt. hunk ./src/mobius/vm/base/vm.slate 53 -LexicalContext addElementNamed: #variables &type: (Array of: ObjectPointer size: 0). +LexicalContext addElementNamed: #variables &type: (Array of: UnsignedLongInt size: 0). hunk ./src/mobius/vm/base/vm.slate 64 -Interpreter addElementNamed: #ensureHandlers &type: ObjectPointer. -Interpreter addElementNamed: #framePointer &type: IntegerPointer. -Interpreter addElementNamed: #codePointer &type: IntegerPointer. -Interpreter addElementNamed: #codeSize &type: UnsignedSmallInteger. -Interpreter addElementNamed: #stackPointer &type: IntegerPointer. -Interpreter addElementNamed: #stackSize &type: UnsignedSmallInteger. +Interpreter addElementNamed: #ensureHandlers &type: UnsignedLongInt. +Interpreter addElementNamed: #framePointer &type: UnsignedLongInt. +Interpreter addElementNamed: #codePointer &type: UnsignedLongInt. +Interpreter addElementNamed: #codeSize &type: UnsignedLongInt. +Interpreter addElementNamed: #stackPointer &type: UnsignedLongInt. +Interpreter addElementNamed: #stackSize &type: UnsignedLongInt. hunk ./src/mobius/vm/base/vm.slate 72 - &type: (Array of: (FunctionPointer from: {Interpreter pointer. ObjectPointer pointer. UnsignedLongInt. OopArray pointer} to: Void)). + &type: (Array of: (FunctionPointer from: {Interpreter pointer. UnsignedLongInt pointer. UnsignedLongInt. OopArray pointer} to: Void)). hunk ./src/mobius/vm/base/vm.slate 79 - i stack elements!(Word pointer) cast + i stack elements!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 81 - into: newStack elements!(Word pointer) cast. + into: newStack elements!(UnsignedLongInt pointer) cast. hunk ./src/mobius/vm/base/vm.slate 87 -[| oop!ObjectPointer | +[| oop!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 112 -]!ObjectPointer inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/vm.slate 121 -]!UnsignedSmallInteger inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/vm.slate 136 -]!UnsignedSmallInteger inline export. +]!UnsignedLongInt inline export. hunk ./src/mobius/vm/base/vm.slate 141 -[| args!(ObjectPointer pointer) selector!ObjectPointer opts!(OopArray pointer) def!(MethodDefinition pointer) method!(Closure pointer) | +[| args!(UnsignedLongInt pointer) selector!UnsignedLongInt opts!(OopArray pointer) def!(MethodDefinition pointer) method!(Closure pointer) | hunk ./src/mobius/vm/base/vm.slate 151 -[| args!(Array of: ObjectPointer size: 1) x!ObjectPointer | +[| args!(Array of: UnsignedLongInt size: 1) x!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 157 -[| args!(Array of: ObjectPointer size: 2) x!ObjectPointer y!ObjectPointer | +[| args!(Array of: UnsignedLongInt size: 2) x!UnsignedLongInt y!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 164 -[| args!(Array of: ObjectPointer size: 3) x!ObjectPointer y!ObjectPointer z!ObjectPointer | +[| args!(Array of: UnsignedLongInt size: 3) x!UnsignedLongInt y!UnsignedLongInt z!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 174 -[| opts!(OopArray pointer) selector!ObjectPointer args!(ObjectPointer pointer) | +[| opts!(OopArray pointer) selector!UnsignedLongInt args!(UnsignedLongInt pointer) | hunk ./src/mobius/vm/base/vm.slate 194 - optsSize: opts arraySize. + optsSize: opts!(Object pointer) cast arraySize. hunk ./src/mobius/vm/base/vm.slate 203 -[| opts!(OopArray pointer) selector!ObjectPointer args!(ObjectPointer pointer) | +[| opts!(OopArray pointer) selector!UnsignedLongInt args!(UnsignedLongInt pointer) | hunk ./src/mobius/vm/base/vm.slate 208 -[| opts!(OopArray pointer) selector!ObjectPointer args!(ObjectPointer pointer) dispatchers!(ObjectPointer pointer) def!(MethodDefinition pointer) method!(Closure pointer) argsArray!(OopArray pointer) traitsWindow!ObjectPointer | +[| opts!(OopArray pointer) selector!UnsignedLongInt args!(UnsignedLongInt pointer) dispatchers!(UnsignedLongInt pointer) def!(MethodDefinition pointer) method!(Closure pointer) argsArray!(OopArray pointer) traitsWindow!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 223 - if (ObjectPointer_isSmallInt(args[ii])) { - fprintf(stderr, "arg %d: %d\n", ii, ObjectPointer_asSmallInt(args[ii])); + if (unsignedLongInt_isSmallInt(args[ii])) { + fprintf(stderr, "arg %d: %d\\n", ii, unsignedLongInt_asSmallInt(args[ii])); hunk ./src/mobius/vm/base/vm.slate 227 - struct Object* mytraitsWindow = ObjectPointer_pointer(ObjectPointer_pointer(args[ii])->map->delegates->elements[0]); + struct Object* mytraitsWindow = unsignedLongInt_pointer(unsignedLongInt_pointer(args[ii])->map->delegates->elements[0]); hunk ./src/mobius/vm/base/vm.slate 229 - _limit_ = (PSObject_arraySize(ObjectPointer_pointer(args[ii])) - 1) + 1; + _limit_ = (PSObject_arraySize(unsignedLongInt_pointer(args[ii])) - 1) + 1; hunk ./src/mobius/vm/base/vm.slate 232 - //fprintf(stderr, "delegate count: %d\n", numDelegates); + //fprintf(stderr, "delegate count: %d\\n", numDelegates); hunk ./src/mobius/vm/base/vm.slate 240 - struct Object* traitsWindowSlotName = ObjectPointer_pointer(mytraitsWindow->map->slotTable->slots[slotNum].name); + struct Object* traitsWindowSlotName = unsignedLongInt_pointer(mytraitsWindow->map->slotTable->slots[slotNum].name); hunk ./src/mobius/vm/base/vm.slate 244 - //fprintf(stderr, "slot arg[%d] slot[%d]: %s\n", ii, slotNum, buffer); + //fprintf(stderr, "slot arg[%d] slot[%d]: %s\\n", ii, slotNum, buffer); hunk ./src/mobius/vm/base/vm.slate 253 - struct Object* oop = ObjectPointer_pointer(PSObject_slotValueAtOffset_(mytraitsWindow, offset)); + struct Object* oop = unsignedLongInt_pointer(PSObject_slotValueAtOffset_(mytraitsWindow, offset)); hunk ./src/mobius/vm/base/vm.slate 256 - fprintf(stderr, "arg %d: %s\n", ii, buffer); + fprintf(stderr, "arg %d: %s\\n", ii, buffer); hunk ./src/mobius/vm/base/vm.slate 260 - fprintf(stderr, "\n"); + fprintf(stderr, "\\n"); hunk ./src/mobius/vm/base/vm.slate 272 - dispatchers!(Word pointer) cast + dispatchers!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 274 - into: argsArray elements!(Word pointer) cast. - ^ (i signal: NotFoundOnSymbol with: selector with: argsArray asObject)]. + into: argsArray elements!(UnsignedLongInt pointer) cast. + ^ (i signal: NotFoundOnSymbol with: selector with: argsArray!(Object pointer) cast asObject)]. hunk ./src/mobius/vm/base/vm.slate 277 - traitsWindow: (method map delegates elements at: 0). +"fixme this cast shouldn't be necessary" + traitsWindow: (method!(Object pointer) cast map delegates elements at: 0). hunk ./src/mobius/vm/base/vm.slate 287 - [| signalArgs!(Array of: ObjectPointer size: 2) optsArray!(OopArray pointer) | + [| signalArgs!(Array of: UnsignedLongInt size: 2) optsArray!(OopArray pointer) | hunk ./src/mobius/vm/base/vm.slate 289 - args!(Word pointer) cast + args!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 291 - into: argsArray elements!(Word pointer) cast. + into: argsArray elements!(UnsignedLongInt pointer) cast. hunk ./src/mobius/vm/base/vm.slate 293 - signalArgs at: 1 put: argsArray asObject. + signalArgs at: 1 put: argsArray!(Object pointer) cast asObject. hunk ./src/mobius/vm/base/vm.slate 300 - optsArray elements at: 1 put: opts asObject]. + optsArray elements at: 1 put: opts!(Object pointer) cast asObject]. hunk ./src/mobius/vm/base/vm.slate 305 -[| closure!(Closure pointer) args!(ObjectPointer pointer) opts!(OopArray pointer) method!(CompiledMethod pointer) framePointer lexicalContext!(LexicalContext pointer) vars!(ObjectPointer pointer) inputs | +[| closure!(Closure pointer) args!(UnsignedLongInt pointer) opts!(OopArray pointer) method!(CompiledMethod pointer) framePointer lexicalContext!(LexicalContext pointer) vars!(UnsignedLongInt pointer) inputs | hunk ./src/mobius/vm/base/vm.slate 312 - args!(Word pointer) cast + args!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 314 - into: argsArray elements!(Word pointer) cast. - ^ (i signal: WrongInputsToSymbol with: argsArray asObject with: method asObject)]. + into: argsArray elements!(UnsignedLongInt pointer) cast. + ^ (i signal: WrongInputsToSymbol with: argsArray!(Object pointer) cast asObject with: method!(Object pointer) cast asObject)]. hunk ./src/mobius/vm/base/vm.slate 332 - args!(Word pointer) cast + args!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 334 - into: vars!(Word pointer) cast. + into: vars!(UnsignedLongInt pointer) cast. hunk ./src/mobius/vm/base/vm.slate 337 - i stack elements at: framePointer - 3 put: closure asObject. - i stack elements at: framePointer - 2 put: lexicalContext asObject. + i stack elements at: framePointer - 3 put: closure!(Object pointer) cast asObject. + i stack elements at: framePointer - 2 put: lexicalContext!(Object pointer) cast asObject. hunk ./src/mobius/vm/base/vm.slate 346 - i codeSize: method code byteSize - #[ByteArray byteSize]. + i codeSize: (method code)!(Object pointer) cast byteSize - ByteArray cSize. hunk ./src/mobius/vm/base/vm.slate 349 - (vars + inputs)!(Word pointer) cast + (vars + inputs)!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 356 - (args + inputs)!(Word pointer) cast + (args + inputs)!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.slate 358 - into: restArgs elements!(Word pointer) cast. - vars at: inputs + method optionalKeywords arraySize put: restArgs asObject] + into: restArgs elements!(UnsignedLongInt pointer) cast. + vars at: inputs + (method optionalKeywords)!(Object pointer) cast arraySize put: restArgs!(Object pointer) cast asObject] hunk ./src/mobius/vm/base/vm.slate 363 - [vars at: inputs + method optionalKeywords arraySize put: (CurrentMemory specialAt: ArrayProto)]]. + [vars at: inputs + (method optionalKeywords)!(Object pointer) cast arraySize put: (CurrentMemory specialAt: ArrayProto)]]. hunk ./src/mobius/vm/base/vm.slate 369 -[| selector!ObjectPointer barrier!ObjectPointer args!(ObjectPointer pointer) n def!(MethodDefinition pointer) resender!(CompiledMethod pointer) method!(Closure pointer) lexicalContext!(LexicalContext pointer) framePointer argsArray!(OopArray pointer) traitsWindow!ObjectPointer | +[| selector!UnsignedLongInt barrier!UnsignedLongInt args!(UnsignedLongInt pointer) n def!(MethodDefinition pointer) resender!(CompiledMethod pointer) method!(Closure pointer) lexicalContext!(LexicalContext pointer) framePointer argsArray!(OopArray pointer) traitsWindow!UnsignedLongInt | hunk ./src/mobius/vm/base/vm.slate 392 - args!(Word pointer) cast + args!(UnsignedLongInt pointer) cast hunk ./src/mobius/vm/base/vm.sl |