On Sun, Aug 24, 2014 at 01:42:11PM +0300, Shahar Havivi wrote:
On 24.08.14 11:34, Richard W.M. Jones wrote:
On Sun, Aug 24, 2014 at 01:20:46PM +0300, Shahar Havivi wrote:
After applying the patch I have a logical error at the check: if hash <> sha1 then
its looks like the sha1 is not a string but a unit let sha1 = Str.matched_group 2 line in (sha1 : string);
Do you have an idea why? (attached the new patch)
The patch you sent me compiles fine here. What's the error that you see? The compilation is fine, but the condition in line 88 (input_ova.ml) is true: if hash <> sha1 then
then I added the commandl in line 80: (sha1 : string);
Right, sorry, that's because my advice before about finding types was wrong. If you write: (sha1 : string); as a statement, then the type is checked, but because we are using `-warn-error S', the compiler then gives an error because the expression as a whole does not have type unit. You can either write: let sha1 : string = Str.matched_group 2 line in or: ignore (sha1 : string); In any case the type is a string. What's interesting is that hash <> sha1. It's of course possible that the hash of the file really is wrong, ie the OVA is corrupt. But a more likely possibility is the split_string command is wrong. Try adding: printf "hash = \"%s\"\n" hash; printf "sha1 = \"%s\"\n" sha1; Rich.
and I get this error: Warning 10: this expression should have type unit.
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW