-- -*- M2-comint -*- hash: 2039154019419039020

i1 : malloc = foreignFunction("malloc", voidstar, ulong)

o1 = malloc

o1 : ForeignFunction

i2 : free = foreignFunction("free", void, voidstar)

o2 = free

o2 : ForeignFunction

i3 : finalizer = x -> (print("freeing memory at " | net x); free x)

o3 = finalizer

o3 : FunctionClosure

i4 : for i to 9 do (x := malloc 8; registerFinalizer(x, finalizer))

i5 : collectGarbage()
freeing memory at 0x7728f007fe50
freeing memory at 0x7728f007fe30
freeing memory at 0x7728f007fdd0
freeing memory at 0x7728f007f6f0
freeing memory at 0x7728f007fe10
freeing memory at 0x7728f007fdf0
freeing memory at 0x7728f007fe70
freeing memory at 0x7728f007fdb0
freeing memory at 0x7728f007f710

i6 : 
