ethereum / hevm

symbolic EVM evaluator
https://hevm.dev
GNU Affero General Public License v3.0
223 stars 45 forks source link

Enable testing on Windows #501

Closed elopez closed 2 weeks ago

elopez commented 1 month ago

Description

This (mostly) fixes hevm (or should I say libff ๐Ÿ˜… ) on Windows and enables CI testing.

Checklist

msooseth commented 1 month ago

Wow, this is some serious work, thanks! Is this ready or is there a specific reason why it's marked for work in progress? Is there something I can help with?

elopez commented 1 month ago

@msooseth I assumed you may not want to carry a patch on libff in the repo so I left it marked as WIP, but if you're ok with it I guess we can consider this ready for review ๐Ÿ‘

msooseth commented 1 month ago

I mean, upstreaming it to libff would probably be best :) But we can have this in the repo as long as it works I guess? Due to nix we don't automatically update libff unless really necessary.

elopez commented 3 weeks ago

I resolved the conflicts and refreshed the branch after the 9.6 merge ๐Ÿ˜„ I also added some more workflow code to build bitwuzla for Windows, so now those tests also run on Windows CI ๐Ÿงช The built binaries are cached so as to not slow down the CI too much.

Test-wise it'd be nice to see why the dapp/foundry Git stuff fails on Windows, then Windows would be at test parity with the other platforms. In the meantime I added a reason string to the ignore function.

I also had to add a new flag to the cabal file, as the newer secp256k1 now requires a new #define to be set so as to link correctly when building hevm against the static library on Windows.

msooseth commented 2 weeks ago

Thanks! Looks nice. If it ever breaks, you may need to help, as none of us are Windows experts. But I hope it won't break too often :) Thank you again,

Mate