Name: Anonymous 2014-06-06 11:56
So I've finally solved the GC problem by abandoning the continuations, which allowed me to do compaction like RAII - on every stack pop. The only problem remains is efficiently implementing the double-headed stack, which would go like "0,2,4 ... 5,3,1" - i.e. compacting requires just one copy, instead of two.
I've optimized _let compilation to stack, which allowed following code to execute at 0.9 the the speed of C/C++
so I have chances at using Symta as replacement for C/C++.
Moral: continuations are bad and make everything unpredictable and slow. So, please, don't use Haskell and other languages depending on continuations.
I've optimized _let compilation to stack, which allowed following code to execute at 0.9 the the speed of C/C++
_let ((N 1024*1024*1024) (S 0))
(_label again)
(_set S (_add S N))
(_set N (_sub N 1))
(if _gt N 0 then _goto again else S)
so I have chances at using Symta as replacement for C/C++.
Moral: continuations are bad and make everything unpredictable and slow. So, please, don't use Haskell and other languages depending on continuations.