implement the memory heap, addresses
add benchmark
change args slice to single dimension, but still mem problem on loop3
change registers from array to slice (no copying)
finalize the heap feature
Merge branch 'heap'