With a fresh installation and 2-party configuration of SCALE-MAMBA, I am getting the attached error when trying to compile the included Programs/GC_test. I believe this is failing when calling e.g. line 37, k[1].public_output(), which is trying to write to the default Channel 0. This should be allowed as far as I can tell from the documentation, plus this is code that was provided. The public_output() function seems to work fine in line 48 of Programs/IO_demo, which compiles and runs without a problem. What is going wrong here?
[ root@c3e106373600:~/SCALE-MAMBA ]# ./compile.sh Programs/GC_test
Running
./compile-mamba.py -A -n -r -u -s Programs/GC_test
Compiling program in Programs/GC_test
GC_test
p =
2148728833Prime size: 32
Default bit length: 24
Default statistical security parameter: 6
Under Over Flow flag: True
Compiling file Programs/GC_test/GC_test.mpc
Compiling basic block GC_test-0--0
Traceback (most recent call last):
File "./compile-mamba.py", line 78, in <module>
main()
File "./compile-mamba.py", line 75, in main
compilation()
File "./compile-mamba.py", line 60, in compilation
debug=options.debug)
File "/root/SCALE-MAMBA/Compiler/compilerLib.py", line 40, in run
execfile(prog.infile, VARS)
File "Programs/GC_test/GC_test.mpc", line 37, in <module>
k[1].public_output()
File "/root/SCALE-MAMBA/Compiler/types.py", line 62, in vectorized_operation
res = operation(self, *args, **kwargs)
File "/root/SCALE-MAMBA/Compiler/types.py", line 626, in public_output
output_int(self, channel);
File "/root/SCALE-MAMBA/Compiler/instructions_base.py", line 386, in maybe_vectorized_instruction
return instruction(*args, **kwargs)
File "/root/SCALE-MAMBA/Compiler/instructions_base.py", line 542, in __init__
self.check_args()
File "/root/SCALE-MAMBA/Compiler/instructions_base.py", line 584, in check_args
% (e.arg, self) + '\n' + e.msg)
Compiler.exceptions.CompilerError: Invalid argument "0" to instruction: output_int r4, 0
Invalid register argument