Skip to content
Stan Seibert edited this page Oct 2, 2018 · 1 revision

Numba Meeting: 2018-10-02

Attendees: Stuart, Siu, Todd, Ehsan, Stan

0. Feature Discussion

  • 0.40.1 patch release

    • rebuild PyPI wheels only to enable TBB
      • (Can't replace files on PyPI, so need to tag a new version)
    • cherry pick contributor list fix #3338
    • how to disable openmp in Linux wheels?
      • detect in setup.py if building wheel ... or check environment variable
      • Set existing flag to disable OpenMP
      • TODO(Siu): PR to detect wheel building; e.g. 'bdist_wheel' in sys.argv?
  • String status

    • sidestepping const type issues for now by implementing for str subclass (will fix that before completion)
    • Have:
      • nopython mode data model + boxing / unboxing
      • Logic for dealing with UCS1, 2, 4 unicode representations
      • ==, <, <=, >, >=, len()
      • Placeholder impl of find and in, but using naive algorithm
      • Allocation and reference counting internals for creating strings in nopython mode and unboxing them to Python
    • Need:
      • Slicing (is there code for ndarray to interpret negative indices and strides we can reuse?)
      • +, join()
      • Python FASTSEARCH algorithm for in, find
      • Refactoring to support bytes with similar implementations
      • Figure out what to do with wchar kind Unicode strings (??)
      • Replace current str type with this type, but preserve the "const" use cases
      • Write new Numba extension tutorial using str as example. (Current interval example is too simple)

1. New issues

  • 3370 - Recursive functions will not serialize/pickle
    • "known," but forgotten, so now we have an issue to remind us
  • 3369 - iteration over multidimensional array
    • known bug/missing feature
    • May not have been possible to implement in the past, but now should be doable (but few people have used it before now)
  • 3368 - lstsq sometimes overwrites its inputs
    • confirmed bug
    • aim to fix in 0.41
    • asfortranarray() is not copying, but code assumed it was
  • 3366 - Error message for unsupported comprehensions (e.g. generator) needs improving.
    • need better message for this case
  • 3364 - Error formatting text width is not padded to CPython/readline's 80chars
    • low priority, but probably easy to fix
  • 3361 - Fix warning from compiling C++ with a C compiler and invalid flags
    • might be a distutils bug as well
    • not harmful, just annoying
  • 3360 - Fix RuntimeWarning: 'numba.runtests' found in sys.modules
    • has fix suggestion in PR
  • 3359 - Unpacking of record fails in nopython mode
    • unsupported numpy trick, but could be added
  • 3358 - List modification is lost when list is passed with a tuple to a jitted function
    • The reflection machinery is not recursing into nested types.
    • Hard issue
    • (Editor's note: Reflection needs to go away in the long term.)
  • 3356 - With-objmode usability issue for long type string.
    • the excuse of "let type detection figure out the signature" doesn't apply here because we have to be explicit about type for data leaving object mode block
    • Hard to use other variable in nopython mode as "type example" because type inference hasn't finished when object mode block is being processed
    • Two passes? (is two enough?)
  • 3355 - Globals error in objmode context-manager for generated functions
    • objmode is likely to be reporting the wrong global to be missing.
    • Fix in PR (but may need more work?)
  • 3354 - Support list as index type
    • adds a dimension to the array
    • more fancy indexing...
  • 3353 - Implement .reshape to work on non-contiguous inputs
    • copies contents? (right??)
  • 3350 - CUDA shared array size limitations
    • should not be possible to request more than 48 kB for that hardware no matter the dimensionality
    • need to reproduce and see why the error is not reporting in some cases
  • 3349 - Document the container types
    • good idea
    • object mode blocks makes this more important
  • 3347 - Objmode with lifting not using custom pipeline
    • PR fix already merged
  • 3344 - AWS Lambda OSError: [Errno 38] Function not implemented
    • /dev/shm not writable on AWS Lambda, recent refactoring of thread backend causes problem with this due to RLock (which tries to use /dev/shm)
    • Can we make Numba still work (but perhaps not be fork safe?) on this unusual platform?
  • 3342 - Build against LLVM 7 stack
    • New patches to work with LLVM 7
    • Need to try them

2. Open PRs

New

  • 3367 - Allow non-global reference to objmode() context-manager
    • Siu needs to review
  • 3363 - [WIP] string support
    • see above discussion
  • 3362 - Fix #3360: RuntimeWarning: 'numba.runtests' found in sys.modules
    • Touches a lot of files
    • Needs review
  • 3348 - Support user pipeline class in with lifting
    • Merged this morning
  • 3345 - [WIP] Support for np.cov
    • still in progress
    • need feedback from Stuart

Old

  • 3337 - [WIP] Support for np.ediff1d
    • in progress
  • 3335 - Fix memory management of __cuda_array_interface__ views.
    • Needs review
  • 3325 - [WIP] Add location information to exceptions.
    • Fixed segfaults
    • Doesn't reconstruct entire stack of nopython frames, just the immediate location of the exception
  • 3320 - Support for np.partition
    • author has follow-up questions
  • 3307 - Adding NUMBA_ENABLE_PROFILING envvar, enabling jit event
    • Siu will review
  • 3228 - Reduce redundant module linking
    • Stuart will review
  • 3162 Support constant dtype string in nopython mode in functions like numpy.empty.
    • Need to resolve #3195
  • 3160 First attempt at parallel diagnostics
    • Stuart will implement Todd's suggestion
  • 3134 [WIP] Cfunc x86 abi
    • Needs re-review
  • 3046 Pairwise sum implementation.
  • #2999 Support LowLevelCallable
  • #2950 Fix dispatcher to only consider contiguous-ness.
  • #2942 Fix linkage nature (declspec(dllexport)) of some test functions
  • #2894: [WIP] Implement jitclass default constructor arguments.
  • #2817: [WIP] Emit LLVM optimization remarks

===========================

4. Next Release: Version 0.41, RC=Nov 19, Final=Nov 26, 2018

  • Type refactoring
  • Parallel diagnostics
  • LLVM 7
  • Initial string support
  • Finishing off stalled PRs
  • Usual collection of bug fixes and small features
Clone this wiki locally