from bu4.common_interface import with_common_interface from bu4.evaluation.constructs.proxy import antiproxy, eproxy from bu4.evaluation.sync import sync from bu4.evaluation.synced import synced from bu4.parsing.toolchain.readfile import readfile from timesample import TimeSample with TimeSample(' compilation'): sys0 = synced(readfile('src/sys0')) with TimeSample(' first, AP'): print( antiproxy(sys0)(0)(1)( lambda a: lambda b: a + b )( lambda n: lambda x: lambda y: x if n == 0 else y )( lambda n: lambda x: lambda y: x if n & 1 else y )( lambda n: n >> 1 ) ) with TimeSample(' second, AP'): print( antiproxy(sys0)(0)(1)( lambda a: lambda b: a + b )( lambda n: lambda x: lambda y: x if n == 0 else y )( lambda n: lambda x: lambda y: x if n & 1 else y )( lambda n: n >> 1 ) ) with TimeSample(' third, EP'): sys0 = with_common_interface(sys0) print(sys0) with TimeSample(' sys2'): with TimeSample(' compilation'): sys2c = synced(readfile('src/sys2')) with TimeSample(' runtime'): sys2 = sys2c sys2 = with_common_interface(sys2) print(sys2) with TimeSample(' runtime'): sys2 = sys2c sys2 = with_common_interface(sys2) print(sys2) with TimeSample(' full'): sys3 = with_common_interface(synced(readfile('src/sys3'))) sys3 = sync(sys3.call(eproxy(5))) print(sys3) with TimeSample(' full'): sys1 = with_common_interface(synced(readfile('src/sys1'))) sys1 = sync(sys1.call(eproxy(77))) sys1 = sync(sys1.call(eproxy(194))) print(sys1)