sshine/evm-opcodes

Fixpoint algorithm does not use 'fix'

sshine opened this issue · 1 comments

When translating [LabelledOpcode] to [Opcode], such that a JUMP "foo" becomes [PUSH x, JUMP ()], and so on (see readme for more information and examples), this fixpoint algorithm is used.

Here, fixpoint calls step and either terminates or calls fixpoint again. So the levels of recursion have already been split into fixpoint and step, and the meat of the operation has been moved to align. Since I sort reached my mental capacity writing this algorithm, it still looks a bit cluttered.

One thing that would simplify its implementation, I think, is the use of fix.

Any other measure to reduce the complexity of this algorithm is equally welcome.

This issue is merely a friendly attempt to limit the search.

Fixed in 81b54df.