Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.1.8 commits and release notes #319

Merged
merged 15 commits into from
May 21, 2023

Conversation

cary-ilm
Copy link
Member

Patch release that addresses miscellaneous minor compiler/build/doc issues and extends test coverage.

#318 Separate CI job for docs
#317 fix the macro switching half-precision floating-point format implementation.
#315 Updated Mac and Windows jobs for VFX platform 2023.
#314 Remove duplicate IMATH_HOSTDEVICE
#313 IMATH_EXPORT for Rand32::nextf()
#310 Extend test coverage
#309 Undo #307, restore array-based Matrix constructors
#308 Fix run_gcov.sh to use proper _build/_coverage dirs
#307 Conditionally include Matrix constructors duplicated by interop declarations
#306 Fix coverage analysis for .c files
#305 Extend test code coverage and add missing python bindings
#303 Remove unused variables
#302 In testMatrix(), call fabs() instead of fabsf() for double values
#300 Check return status of extractSHRT in computeRSMatrix

cary-ilm and others added 15 commits May 18, 2023 15:30
…eFoundation#300)

Technically it's not necessary since extractSHRT will throw since the
exc argument is implicitly true, but without testing the result, it
generates a compiler warning.

Signed-off-by: Cary Phillips <[email protected]>
* Fix coverage analysis for .c files

Looks like the coverage analysis has been completely missing .c files.

- Set CMAKE_C_FLAGS/CMAKE_C_OUTPUT_EXTENSION_REPLACE just like CXX

- Fix run_gcov.sh to deduce the source file by examining the .o.d file
  rather than simply replacing .gcno with .cpp, which misses .c files

- Add ImathHalfPerfTest to the test suite

Signed-off-by: Cary Phillips <[email protected]>

* confirm dependency file exists

Signed-off-by: Cary Phillips <[email protected]>

---------

Signed-off-by: Cary Phillips <[email protected]>
…twareFoundation#305)

* Extend test suite coverage

- Add ImathHalfPerfTest as a test (it was built but not executed)
- Box<T>::isInfinite() tests
- Box<T>::affineTransform() tests with empty+infinite boxes
- rgb2hsv/hsv2rgb

Signed-off-by: Cary Phillips <[email protected]>

* typo

Signed-off-by: Cary Phillips <[email protected]>

* typo AcademySoftwareFoundation#2

Signed-off-by: Cary Phillips <[email protected]>

* Extend test coverage of matrix classes

- Add test code to python test for various operators that were not covered

- In Matrix22 and Matrix33, the python bindings now call setScale(s)
  directly rather than calling setScale(Vec(s)). The behavior is the
  same, but this ensures the scalar version of the method gets test coverage.

- In Matrix44:

  * Call setScale(s) in place of setScale(Vec(s)), same as above.

  * Similarly, call setShear(s) in place of setShear(Shear(s)). Same
    behavior, better test.

  * Add bindings for setEulerAngles() and setAxisAngles(), and
    associated tests.

Signed-off-by: Cary Phillips <[email protected]>

* remove commented-out line

Signed-off-by: Cary Phillips <[email protected]>

* include <sstream>

Signed-off-by: Cary Phillips <[email protected]>

* Imath.half_perf_test

Signed-off-by: Cary Phillips <[email protected]>

---------

Signed-off-by: Cary Phillips <[email protected]>
* PyImathTestC

Signed-off-by: Cary Phillips <[email protected]>

* Random, Color, Frustum, PyImathTestC

Signed-off-by: Cary Phillips <[email protected]>

* Python_VERSION

Signed-off-by: Cary Phillips <[email protected]>

* set PYTHONPATH property

Signed-off-by: Cary Phillips <[email protected]>

* remove <iostream>

Signed-off-by: Cary Phillips <[email protected]>

---------

Signed-off-by: Cary Phillips <[email protected]>
Somehow, a couple methods got duplicate IMATH_HOSTDEVICE attributes,
presumably a benign typo.

Signed-off-by: Cary Phillips <[email protected]>
Export just the one non-line method, not the entire class.

Signed-off-by: Cary Phillips <[email protected]>
* Separate CI job for Docs

Signed-off-by: Cary Phillips <[email protected]>

* Replace macOS 10.15 with macOS 12.0

Signed-off-by: Cary Phillips <[email protected]>

---------

Signed-off-by: Cary Phillips <[email protected]>
…rations (AcademySoftwareFoundation#307)

* Conditionally include Matrix constructors duplicated by interop declarations

From the code coverage analysis, the ``Matrix44<>(const T a[4][4])``
constructors are overshadowed by the interoperability constructors
that match types with double-index operators. This change includes
them only if the interoperability constructors are disabled at compile
time.

It also adds a test to validate compilation with the interoperability
constructurs disabled.

Signed-off-by: Cary Phillips <[email protected]>

* testNoInterop.{cpp,h}

Signed-off-by: Cary Phillips <[email protected]>

* remove debugging code

Signed-off-by: Cary Phillips <[email protected]>

---------

Signed-off-by: Cary Phillips <[email protected]>
…ructors are, in fact, (AcademySoftwareFoundation#309)

necessary.  Although constructing a matrix from a 2D-array variable
invokes the interop constructor:
```
    const float a[2][2] = {{1,0},{0,1}};
    M22f m(a);
```
constructing a matrix from a 2D array *parameter* uses the array
constructor, which AcademySoftwareFoundation#307 thought was never used, because it was never
invoked by the test suite:
```
    void foo (const float a[2][2])
    {
        M22f m(a);
    }
```
This restores the constructors and adds a test.

Signed-off-by: Cary Phillips <[email protected]>
Copy link
Contributor

@meshula meshula left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@cary-ilm cary-ilm merged commit 3ec6904 into AcademySoftwareFoundation:RB-3.1 May 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants