What did you do this week?
This week's work was divided into two parts: fixing some issues in the backends and patching up older PRs. While working on the PR for indexing routines we noticed a bug in the backends that caused some classes to not be dispatched properly. What was happening was that all the classes added in the PR were calling NumPy classes regardless of the backend being used instead of calling the equivalent classes in the respective backends. This issue also touched on another problem that I encountered while preparing the new PR for the random
module. The backends were also not dispatching the multimethods in modules correctly. This was apparent by the linalg
module's tests which at the time were fixed to the NumPy backend. Because of this I created a new PR that fixed both of these issues and extended the linalg
tests to other backends which allowed the PR for indexing routines to be patched and merged. I also worked on a previous PR that adds multimethods for statistical functions by adding default implementations to most of the reduction methods (e.g., median
, mean
, var
).
What is coming up next?
This week I was expected to start a new PR that adds multimethods for NumPy's random
module but as I talked about in the first part of this blog post, some issues had to be fixed first. Although this delayed the PR to the next week all work seems to be on schedule. If I have time in this upcoming week I will also start writing documentation for the unumpy project and my GSoC final report. In the latter I intend to add a short description of the work that was done, allow who reads it to easily find the code, summarize the current state of the project, discuss future work, and enumerated challenges and learnings.
Did you get stuck anywhere?
I was able to unblock from last week's default implementation of median
with some help. Overall, the other defaults were done without many difficulties.