# Numba Meeting: 2022-10-11
Attendees: Siu Kwan Lam, Andre Masella, Benjamin Graham, brandon willard, Graham Markall, Guilherme, Jim Pivarski, LI Da, Luk, stuart, Todd A. Anderson, Val, Shannon Quinn
FPOC (last week): @sklam
SCRIBE (FPOC next week): @guillherme
NOTE: All communication is subject to the [Numba Code of Conduct](https://github.com/numba/numba-governance/blob/accepted/code-of-conduct.md).
Please refer to [this calendar](https://calendar.google.com/calendar/embed?src=5rqnddm4gjrdfjm31fsv182epk%40group.calendar.google.com) for the next meeting date.
## 0. Discussion
- [#8483](https://github.com/numba/numba/issues/8483) - CUDA: Tuples of CAI exporters that aren't Numba device arrays are not recognized by typing (Graham)
- Long discussion in triage meeting. Suggested fix is to update typeof etc to do a "class"->impl based dispatch (as present now), and also add a "protocol"->impl based dispatch (new) to handle the use case above and also incorporate existing "protocol"-like things such as `cffi`, buffers and `_numba_type_`.
- Question about Python frontend work done by Val -- Guilherme
- Val: Update will be presented near the end of the month/early next month. Main aim is to restructure and regularise the CFG derived from the Python bytecode.
- Guilherme expressed interested in making some optimization passes run a bit faster.
- Siu: the RDSVG form has some properties which are very useful in terms of reducing analysis necessary for Numba's needs. Control flow is implicit, 3 kinds of regions, linear code, loop, if-else/switch. Loop opt is simplified (as it's a data dep graph), hoisting etc is easy, loops are pretty much rotated, SSA is implicit. Tail loop regions lead to loops that will always execute.
- Paper: https://dl.acm.org/doi/pdf/10.1145/2693261
- Work is expected to land in Q2/2023
- Motivation for this work in frontend is that it makes it more robust against changes in the CPython bytecode.
- CUDA array interface - Stuart (summary of discussion on #8483 above)
- Some objects can exports a `__cuda_array_interface__`
- To work with Numba, these objects needs to be registered in the `typeof` map. One solution would be to add CUDA target specific code in `typeof.py`
- Stencil
- Maintanence problem with stencils:
- Current tests require Python 3.7 AST
- Two different implementations: one for `@jit` and another when `parallel=True`
- If Numba drops 3.7, it will miss all the stencil specific tests
- Presented options for handlind stencils:
- Migrate all Python 3.7 specific tests to Python 3.8
- Collect all tests
- Move stencils to [numba-extras](https://github.com/numba/numba-extras) repo
- Todd asked why Numba has to use AST to generate tests and not write regular python tests?
- Stuart said we would have to write ~128 tests by hand and every single one have very specific characteristics.
- Jim suggested using https://github.com/rocky/python-uncompyle6 or `ast.unparse` in Python 3.9+
- Siu suggested generating source code from AST (going to do this)
- < add your topic here > -- < your name >
## 1. New Issues
- [#8487](https://github.com/numba/numba/issues/8487) - Not compatible with onetbb-2021.6.0
- [#8488](https://github.com/numba/numba/issues/8488) - Add advanced performance "tricks" page/notes to the docs or as a notebook
- [#8489](https://github.com/numba/numba/issues/8489) - test failure in numba.tests.test_mathlib.TestMathLib test_ldexp on ppc64el architecture.
- [#8492](https://github.com/numba/numba/issues/8492) - scalar ufuncs that have equivalents in the math module are not supported, but docs claim they are.
- [#8497](https://github.com/numba/numba/issues/8497) - List is considered as array
### Closed Issues
## 2. New PRs
- [#8491](https://github.com/numba/numba/pull/8491) - Added support for multidimensional array indexing
- [#8493](https://github.com/numba/numba/pull/8493) - Removes `context.compile_internal` where easy
- [#8494](https://github.com/numba/numba/pull/8494) - Remove `context.compile_internal` where easy on `numba/cpython/cmathimpl.py`
- [#8495](https://github.com/numba/numba/pull/8495) - Removes context.compile_internal where easy on `numba/cpython/listobj.py`
- [#8496](https://github.com/numba/numba/pull/8496) - Rewrite most of the set API to use overloads
- [#8499](https://github.com/numba/numba/pull/8499) - Deprecate numba.generated_jit
https://github.com/numba/numba-examples/pull/44
### Closed PRs
- merged - [#8490](https://github.com/numba/numba/pull/8490) - Restore installing SciPy from defaults instead of conda-forge on public CI
- [#8498](https://github.com/numba/numba/pull/8498) - Remove _DispatcherBase._types_active_call
## 3. Next Release: Version 0.57.0/0.40.0, RC Jan 2023