Mthread.Mt_memorySource. We also return a boolean indicating whether an update has taken place, ie. if the result of the union is different (thus greater) from the first argument. Notice that this means that those functions are not symmetrical!
Remove all the values that are not global variables from the state
read_slice ~p ~sbytes st reads sbytes starting from p in state.
Return the value pointed by the given int pointer
write_int_pointer p v state write the int v at the location pointed p in state state.
val replace_value_at_int_pointer :
Types.pointer ->
before:int ->
after:int ->
Types.state ->
Types.statereplace_value_at_int_pointer p ~before ~after state replaces before by after in the abstract value bound at location p in state.
val write_slice :
p:Types.pointer ->
sbytes:int ->
slice:Types.slice ->
exact:bool ->
Types.state ->
Types.statewrite_at_pointer ~p ~sbytes ~slice st alters state by writing at the sbytes bytes starting at p the slice v.
Fails if value represents more than cardinal integers.