Skip to content

Commit e80abe3

Browse files
committed
introduce optimistic bounds checking for loads
1 parent 7d41633 commit e80abe3

File tree

89 files changed

+645
-801
lines changed

Some content is hidden

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

89 files changed

+645
-801
lines changed

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/F32LoadInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class F32LoadInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/F32StoreInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -59,7 +59,7 @@ class F32StoreInstructionBenchmark {
5959
limits = limits(1u),
6060
shared = unsharedStatus(),
6161
),
62-
data = LinearMemoryFactoryImpl(1, null),
62+
data = LinearMemoryFactory(1),
6363
)
6464

6565
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/F64LoadInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class F64LoadInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/F64StoreInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -59,7 +59,7 @@ class F64StoreInstructionBenchmark {
5959
limits = limits(1u),
6060
shared = unsharedStatus(),
6161
),
62-
data = LinearMemoryFactoryImpl(1, null),
62+
data = LinearMemoryFactory(1),
6363
)
6464

6565
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32Load16SInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32Load16SInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32Load16UInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32Load16UInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32Load8SInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32Load8SInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32Load8UInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32Load8UInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32LoadInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32LoadInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32Store16InstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32Store16InstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32Store8InstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32Store8InstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I32StoreInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I32StoreInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I64LoadInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -58,7 +58,7 @@ class I64LoadInstructionBenchmark {
5858
limits = limits(1u),
5959
shared = unsharedStatus(),
6060
),
61-
data = LinearMemoryFactoryImpl(1, null),
61+
data = LinearMemoryFactory(1),
6262
)
6363

6464
private val frame = frame(

benchmark/src/commonMain/kotlin/io/github/charlietap/chasm/benchmark/instruction/memory/I64StoreInstructionBenchmark.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.github.charlietap.chasm.benchmark.instruction.memory
33
import io.github.charlietap.chasm.benchmark.BenchmarkConfig
44
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
55
import io.github.charlietap.chasm.executor.invoker.instruction.ExecutionInstructionExecutor
6-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
6+
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
77
import io.github.charlietap.chasm.fixture.frame
88
import io.github.charlietap.chasm.fixture.frameState
99
import io.github.charlietap.chasm.fixture.instance.memoryAddress
@@ -59,7 +59,7 @@ class I64StoreInstructionBenchmark {
5959
limits = limits(1u),
6060
shared = unsharedStatus(),
6161
),
62-
data = LinearMemoryFactoryImpl(1, null),
62+
data = LinearMemoryFactory(1),
6363
)
6464

6565
private val frame = frame(

chasm/src/commonMain/kotlin/io/github/charlietap/chasm/embedding/memory/ReadByte.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import io.github.charlietap.chasm.embedding.shapes.ChasmResult.Success
1111
import io.github.charlietap.chasm.embedding.shapes.Memory
1212
import io.github.charlietap.chasm.embedding.shapes.Store
1313
import io.github.charlietap.chasm.executor.memory.read.MemoryInstanceByteReader
14-
import io.github.charlietap.chasm.executor.memory.read.MemoryInstanceByteReaderImpl
1514
import io.github.charlietap.chasm.executor.runtime.error.ModuleTrapError
1615
import io.github.charlietap.chasm.executor.runtime.ext.memory
1716

@@ -24,7 +23,7 @@ fun readByte(
2423
store = store,
2524
memory = memory,
2625
pointer = pointer,
27-
byteReader = ::MemoryInstanceByteReaderImpl,
26+
byteReader = ::MemoryInstanceByteReader,
2827
)
2928
.mapError(ModuleTrapError::toString)
3029
.mapError(ChasmError::ExecutionError)

chasm/src/commonMain/kotlin/io/github/charlietap/chasm/embedding/memory/WriteByte.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import io.github.charlietap.chasm.embedding.shapes.ChasmResult.Success
1111
import io.github.charlietap.chasm.embedding.shapes.Memory
1212
import io.github.charlietap.chasm.embedding.shapes.Store
1313
import io.github.charlietap.chasm.executor.memory.write.MemoryInstanceByteWriter
14-
import io.github.charlietap.chasm.executor.memory.write.MemoryInstanceByteWriterImpl
1514
import io.github.charlietap.chasm.executor.runtime.error.ModuleTrapError
1615
import io.github.charlietap.chasm.executor.runtime.ext.memory
1716

@@ -26,7 +25,7 @@ fun writeByte(
2625
memory = memory,
2726
pointer = pointer,
2827
byte = byte,
29-
byteWriter = ::MemoryInstanceByteWriterImpl,
28+
byteWriter = ::MemoryInstanceByteWriter,
3029
)
3130
.mapError(ModuleTrapError::toString)
3231
.mapError(ChasmError::ExecutionError)

chasm/src/commonMain/kotlin/io/github/charlietap/chasm/embedding/memory/WriteBytes.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import io.github.charlietap.chasm.embedding.shapes.ChasmResult.Success
1111
import io.github.charlietap.chasm.embedding.shapes.Memory
1212
import io.github.charlietap.chasm.embedding.shapes.Store
1313
import io.github.charlietap.chasm.executor.memory.write.MemoryInstanceBytesWriter
14-
import io.github.charlietap.chasm.executor.memory.write.MemoryInstanceBytesWriterImpl
1514
import io.github.charlietap.chasm.executor.runtime.error.ModuleTrapError
1615
import io.github.charlietap.chasm.executor.runtime.ext.memory
1716

@@ -26,7 +25,7 @@ fun writeBytes(
2625
memory = memory,
2726
pointer = pointer,
2827
bytes = bytes,
29-
bytesWriter = ::MemoryInstanceBytesWriterImpl,
28+
bytesWriter = ::MemoryInstanceBytesWriter,
3029
)
3130
.mapError(ModuleTrapError::toString)
3231
.mapError(ChasmError::ExecutionError)

executor/instantiator/src/commonMain/kotlin/io/github/charlietap/chasm/executor/instantiator/allocation/memory/MemoryAllocator.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package io.github.charlietap.chasm.executor.instantiator.allocation.memory
22

33
import io.github.charlietap.chasm.ast.type.MemoryType
44
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
5-
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactoryImpl
65
import io.github.charlietap.chasm.executor.runtime.instance.MemoryInstance
76
import io.github.charlietap.chasm.executor.runtime.store.Address
87
import io.github.charlietap.chasm.executor.runtime.store.Store
@@ -15,15 +14,15 @@ fun MemoryAllocator(
1514
): Address.Memory = MemoryAllocator(
1615
store = store,
1716
type = type,
18-
memoryFactory = ::LinearMemoryFactoryImpl,
17+
memoryFactory = ::LinearMemoryFactory,
1918
)
2019

2120
internal inline fun MemoryAllocator(
2221
store: Store,
2322
type: MemoryType,
2423
crossinline memoryFactory: LinearMemoryFactory,
2524
): Address.Memory {
26-
val memory = memoryFactory(type.limits.min.toInt(), type.limits.max?.toInt())
25+
val memory = memoryFactory(type.limits.min.toInt())
2726
val instance = MemoryInstance(type, memory)
2827

2928
store.memories.add(instance)

executor/instantiator/src/commonTest/kotlin/io/github/charlietap/chasm/executor/instantiator/runtime/allocation/memory/MemoryAllocatorTest.kt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package io.github.charlietap.chasm.executor.instantiator.runtime.allocation.memo
33
import io.github.charlietap.chasm.executor.instantiator.allocation.memory.MemoryAllocator
44
import io.github.charlietap.chasm.executor.memory.factory.LinearMemoryFactory
55
import io.github.charlietap.chasm.executor.runtime.instance.MemoryInstance
6-
import io.github.charlietap.chasm.executor.runtime.memory.LinearMemory
76
import io.github.charlietap.chasm.executor.runtime.store.Address
7+
import io.github.charlietap.chasm.fixture.memory.linearMemory
88
import io.github.charlietap.chasm.fixture.store
99
import io.github.charlietap.chasm.fixture.type.limits
1010
import io.github.charlietap.chasm.fixture.type.memoryType
@@ -25,15 +25,9 @@ class MemoryAllocatorTest {
2525
val limits = limits(min.toUInt())
2626
val type = memoryType(limits = limits)
2727

28-
val memory = object : LinearMemory {
29-
override val min: LinearMemory.Pages
30-
get() = LinearMemory.Pages(min)
31-
override val max: LinearMemory.Pages?
32-
get() = null
33-
}
34-
val memoryFactory: LinearMemoryFactory = { factoryMin, factoryMax ->
35-
assertEquals(min, factoryMin)
36-
assertEquals(null, factoryMax)
28+
val memory = linearMemory()
29+
val memoryFactory: LinearMemoryFactory = { pages ->
30+
assertEquals(min, pages)
3731
memory
3832
}
3933

executor/invoker/src/commonMain/kotlin/io/github/charlietap/chasm/executor/invoker/instruction/memory/MemoryCopyExecutor.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.github.michaelbull.result.binding
66
import io.github.charlietap.chasm.ast.instruction.MemoryInstruction
77
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
88
import io.github.charlietap.chasm.executor.memory.copy.MemoryInstanceCopier
9-
import io.github.charlietap.chasm.executor.memory.copy.MemoryInstanceCopierImpl
109
import io.github.charlietap.chasm.executor.runtime.error.InvocationError
1110
import io.github.charlietap.chasm.executor.runtime.ext.memory
1211
import io.github.charlietap.chasm.executor.runtime.ext.memoryAddress
@@ -20,7 +19,7 @@ internal fun MemoryCopyExecutor(
2019
MemoryCopyExecutor(
2120
context = context,
2221
instruction = instruction,
23-
memoryInstanceCopier = ::MemoryInstanceCopierImpl,
22+
memoryInstanceCopier = ::MemoryInstanceCopier,
2423
)
2524

2625
internal inline fun MemoryCopyExecutor(

executor/invoker/src/commonMain/kotlin/io/github/charlietap/chasm/executor/invoker/instruction/memory/MemoryFillExecutor.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.github.michaelbull.result.binding
77
import io.github.charlietap.chasm.ast.instruction.MemoryInstruction
88
import io.github.charlietap.chasm.executor.invoker.context.ExecutionContext
99
import io.github.charlietap.chasm.executor.memory.fill.MemoryInstanceFiller
10-
import io.github.charlietap.chasm.executor.memory.fill.MemoryInstanceFillerImpl
1110
import io.github.charlietap.chasm.executor.runtime.error.InvocationError
1211
import io.github.charlietap.chasm.executor.runtime.ext.memory
1312
import io.github.charlietap.chasm.executor.runtime.ext.memoryAddress
@@ -21,7 +20,7 @@ internal fun MemoryFillExecutor(
2120
MemoryFillExecutor(
2221
context = context,
2322
instruction = instruction,
24-
memoryInstanceFiller = ::MemoryInstanceFillerImpl,
23+
memoryInstanceFiller = ::MemoryInstanceFiller,
2524
)
2625

2726
internal inline fun MemoryFillExecutor(

0 commit comments

Comments
 (0)