PrincetonUniversity / ILAng

A Modeling and Verification Platform for SoCs using ILAs
https://bo-yuan-huang.gitbook.io/ilang/
MIT License
75 stars 18 forks source link

[PLEASE CLOSE] Added variable objects (structs and vectors of variables) to ILAng #209

Closed Anonymous-Stranger closed 3 years ago

Anonymous-Stranger commented 3 years ago

Also included is an alpha of some transformation functions for partitioning, zipping/unzipping, projecting, and joining certain kinds of objects. The code is correct, but I didn't include these functions in the facade because I wasn't sure about the return type of partitioning.

Also something to think about: should I go through and rename vector to array everywhere? As I've started working with CHCs, it seems to me like the model may eventually need vectors where the capacity is an SMT variable, and that may be more deserving of the name "vector". Dunno if it's worth the effort to do all that renaming on a hunch.

Third thing: the tests I added seem to add several (2-5) seconds of runtime to the total. Is that something to reduce?

lgtm-com[bot] commented 3 years ago

This pull request introduces 2 alerts when merging 8e94d9c4307653b6b6278f807bdf5c1eaa3c263f into 9e48bddc207850310c40393f891f07914eedfa84 - view on LGTM.com

new alerts:

Anonymous-Stranger commented 3 years ago

Code is passing all tests on my WSL2 and Ubuntu 20.04 LTS systems. On the Ubuntu system, I needed to call sudo make install to get the ExampleCMakeBuild to pass (the test was failing on the byhuang/ILAng master branch as well, until I called the install function).

Anonymous-Stranger commented 3 years ago

After running valgrind on the tests, I don't think there are any memory leaks or use-after-free errors (I read that those can sometimes cause bus errors?).

The Ubuntu builds may be timing out on the TestApiObjects.Unrolling test, which checks that two virtually identical implementations of matrix-element vector multiplication are in fact the same. Granted, this isn't the easiest test, but it's restricted to a 4x4 matrix times a 4-element vector, and it takes milliseconds on my machine. The only reason I suspect that it's this one is that the others seem even less suspicious.

UPDATE: it's probably TestApiObjects.Unrolling -- the TravisCI build hung during that test. Will add a time-limit in order to check everything else.

Anonymous-Stranger commented 3 years ago

Ready for review.