Skip to content
esc edited this page Aug 23, 2023 · 1 revision

Numba Meeting: 2023-08-22

Attendees: stuart, Siu Kwan Lam, Da Li, Val, Todd A. Anderson, Graham Markall, Jim Pivarski, Guilherme, brandon willard FPOC (last week): Stuart FPOC (incoming): Siu

NOTE: All communication is subject to the Numba Code of Conduct.

Please refer to this calendar for the next meeting date.

0. Discussion

  • (Val) Numba 0.58.0rc1 and llvmlite 0.41.0rc1

  • (Siu) What is the best practice for feature branch?

    • how to handle changes to AzureCI?
    • best way to merge?
    • Use 2 branches, one with Azure changes tracking another with code changes (2nd choice)
    • Use branch specific Azure CI config? (Siu to try this; tracking at https://github.com/numba/numba/issues/9150)
    • Avoid git rebase/reset/revert for history preserving which is confusing
  • (Graham) Potential error in find_file in the RC if the path does not exist:

    --- a/numba/misc/findlib.py
    +++ b/numba/misc/findlib.py
    @@ -53,7 +53,10 @@ def find_file(pat, libdir=None):
             libdirs = list(libdir)
         files = []
         for ldir in libdirs:
    -        entries = os.listdir(ldir)
    +        try:
    +            entries = os.listdir(ldir)
    +        except FileNotFoundError:
    +            continue
             candidates = [os.path.join(ldir, ent)
                           for ent in entries if pat.match(ent)]
             files.extend([c for c in candidates if os.path.isfile(c)])
    
    • resolution, fix for 0.58 final/RC2.
  • (Guilherme) How to handle array type promotion inside jit functions

    from numba import njit
    from numpy.polynomial import polynomial as pa
    import numpy as np
    
    #@njit
    def foo(p):
        p.window = np.asarray([1.0, 2.0])
        return p
    
    p = pa.Polynomial([4.0, 5.0])
    print(p)
    # Polynomial([4., 5.], domain=[-1,  1], window=[-1,  1], symbol='x')
    print(foo(p))
    # Polynomial([4., 5.], domain=[-1,  1], window=[1., 2.], symbol='x')
    # 'window' member changed from an int array to a double array
    
    • Q: Does Numba allows assigning array with different dtypes to .window and that the attribute changes its type.
    • A: no, Numba requires the field to be type-stable.
  • Discourse post 2078 and matrix post on "error capturing". 1. is the error message clear about why the deprecation is present and what action a user needs to take to fix the issue? 2. Also reported that warnings are present even in the case of no errors?

  • Can @overloads hold reference to the implementation?

    • Technically yes. But type inspection use case is covered by numba's --annotate-html already. (resolved, no discussion needed)

New "Ready for Review" PRs

ISSUES/PR TBD

1. New Issues

  • numba#9134 - numba.cuda.cudadrv.error.CudaSupportError: Error at driver init: Call to cuInit results in CUDA_ERROR_OPERATING_SYSTEM (30
  • numba#9143 - refcount error in test_np_randomgen.py
  • numba#9146 - NaN inverse raises unexpected ZeroDivisionError
  • numba#9147 - mean() returns incorrect dtype
  • llvmlite#984 - release github action is broken

Closed Issues

  • numba#9139 - Check reduction variables for Parfor Fusion

2. New PRs

  • numba#9135 - DO NOT MERGE Test towncrier rendering
  • numba#9136 - Updated Version support table for 0.58 release
  • **numba#9140 - Add support for Polynomial class
  • numba#9141 - Add support for as_series() from np.polynomial.polyutils and polydiv(), polyint(), polyval() from np.polynomial.polynomial
  • numba#9142 - Removed out of date comment handled by PR#8338
  • numba#9144 - Fix numba issue #9125
  • numba#9145 - Format towncrier notes to 80-char and remove trailing spaces
  • numba#9148 - bump llvmdev dependency to 0.42.0dev for next development cycle
  • numba#9149 - update release checklist post 0.58.0rc1
  • llvmlite#983 - adding RTD conf file V2 as per request
  • llvmlite#985 - Update release checklist post 0.41.0rc1

Closed PRs

(last numba: 9149;llvmlite 985)

3. Short-term Roadmap

gantt: https://github.com/numba/numba/issues/8971

Clone this wiki locally