Hi again,
While reading the progress repot I also looked at the code of the
compiler to get a feeling for what it can and cannot do.
Please correct me if I'm wrong, but it seems to go through a number of
standard phases not related to cryptography. Then there are these
three phases:
Yes there is a bunch of standard phases.
* Checking of annotations for open() calls -- I think this is part of
the analysis in DefiniteAssignment.java.
The checking is done in AnnotationAnalysis.java, which is part of the
DefiniteAssignment phase.
The code in AnnotationAnalysis.java is currently commented out, it
needs to be upgraded to changes in the analysis framework used.
* Hoistability check which looks for I/O or assignments to public
variables in the branches of if-statements.
Yes
* Conditional expansion where if-statements are turned into
conditional assignments. Loops are also detected in the branches.
Yes
I found no support for
* Making things run in parallel (the word parallel does not occur at
all in the source code).
There is no concept of parallelism in SMCL programs. The fact that
the computation is distributed is abstracted away.
* Bounds checking when the protocol needs inputs to be smaller than
the field size (needed in comparisons and new Paillier two-player
runtime).
I haven't been aware of this being an issue. We need to handle this
somehow.
* Counting multiplications and other stuff for preprocessing.
NYI. The multiplication optimization I implemented last week haven't
been committet yet. It needs more integration with the rest of the
compiler.
--
Janus
___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk