Clean Up C Warnings
State: closed

Getting closer to no warnings (at least with clang). Changes in this PR get rid of the following warnings:

```sh
warning: pandas/_libs/window/aggregations.pyx:60:4: Buffer unpacking not optimized away.
warning: pandas/_libs/window/aggregations.pyx:60:4: Buffer unpacking not optimized away.
warning: pandas/_libs/window/aggregations.pyx:60:36: Buffer unpacking not optimized away.
warning: pandas/_libs/window/aggregations.pyx:60:36: Buffer unpacking not optimized away.

pandas/_libs/hashing.c:25100:20: warning: unused function '__pyx_memview_get_object' [-Wunused-function]
  static PyObject *__pyx_memview_get_object(const char *itemp) {
                   ^
pandas/_libs/hashing.c:25105:12: warning: unused function '__pyx_memview_set_object' [-Wunused-function]
static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {

pandas/_libs/algos.c:81410:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:83045:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:83951:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:84857:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:85034:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~
pandas/_libs/algos.c:85940:3: warning: code will never be executed [-Wunreachable-code]
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_arr.rcbuffer->pybuffer);
  ^~~~~~~~~~~~~~~~~~~~~~~

pandas/_libs/tslibs/conversion.c:33113:20: warning: unused function '__pyx_memview_get_object' [-Wunused-function]
  static PyObject *__pyx_memview_get_object(const char *itemp) {
                   ^
pandas/_libs/tslibs/conversion.c:33118:12: warning: unused function '__pyx_memview_set_object' [-Wunused-function]
static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
```

Only a handful left after this

Labels:
name: Build
description: Library building on various platforms
name: Clean

Comments:
If you'd like to remove the `warning: pandas/_libs/window/aggregations.pyx:60:4: Buffer unpacking not optimized away.` warnings, this worked locally for me (clang as well)

```
diff --git a/pandas/_libs/window/aggregations.pyx b/pandas/_libs/window/aggregations.pyx
index f67581859..b9283b7ee 100644
--- a/pandas/_libs/window/aggregations.pyx
+++ b/pandas/_libs/window/aggregations.pyx
@@ -56,9 +56,7 @@ cdef:
 cdef inline int int_max(int a, int b): return a if a >= b else b
 cdef inline int int_min(int a, int b): return a if a <= b else b

-cdef inline bint is_monotonic_start_end_bounds(
-    ndarray[int64_t, ndim=1] start, ndarray[int64_t, ndim=1] end
-):
+cdef inline bint is_monotonic_start_end_bounds(int64_t[:] start, int64_t[:] end):
     return is_monotonic(start, False)[0] and is_monotonic(end, False)[0]
```
Nice - I think that's a better solution
Darn. Sorry, looks like my suggestion didn't work @WillAyd.

I only compiled + tested the tests in `pandas/tests/window`. Guess the way you had it before works.
I think the failure is from something else. Giving it a closer look
@jreback here are the ASV results after this change. Mixed bag but generally my interpretation would be generally better performance

```
.       before           after         ratio
     [5dd27ed7]       [644055bb]
     <master>         <memview-warnings>
+     3.50±0.02ms       4.21±0.9ms     1.21  rolling.Quantile.time_quantile('DataFrame', 1000, 'float', 1, 'linear')
+     3.10±0.01ms       3.71±0.3ms     1.20  rolling.Quantile.time_quantile('Series', 1000, 'int', 1, 'nearest')
+      2.70±0.2ms       3.22±0.3ms     1.19  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'float', 'count')
+     1.81±0.05ms      2.13±0.09ms     1.18  rolling.EWMMethods.time_ewm('DataFrame', 1000, 'int', 'mean')
+      3.27±0.1ms       3.80±0.3ms     1.16  rolling.Quantile.time_quantile('Series', 1000, 'int', 0, 'nearest')
+         164±4ms         189±10ms     1.15  rolling.Apply.time_rolling('Series', 3, 'float', <function Apply.<lambda>>, False)
+      2.76±0.1ms       3.13±0.3ms     1.14  rolling.Quantile.time_quantile('DataFrame', 1000, 'int', 0, 'nearest')
+      52.6±0.4ms         58.3±8ms     1.11  rolling.Quantile.time_quantile('Series', 10, 'int', 0.5, 'linear')
-         245±9ms        222±0.5ms     0.91  rolling.Engine.time_rolling_apply('DataFrame', 'int', <function sum>, 'numba')
-     3.09±0.07ms      2.81±0.02ms     0.91  rolling.Methods.time_rolling('Series', 1000, 'int', 'skew')
-      2.85±0.9ms      2.58±0.02ms     0.90  rolling.Quantile.time_quantile('DataFrame', 10, 'int', 1, 'higher')
-      2.94±0.1ms      2.65±0.04ms     0.90  rolling.ExpandingMethods.time_expanding('DataFrame', 'float', 'count')
-      3.26±0.2ms      2.91±0.08ms     0.89  rolling.ExpandingMethods.time_expanding('Series', 'float', 'skew')
-        4.01±2ms      3.58±0.07ms     0.89  rolling.Apply.time_rolling('Series', 300, 'float', <function Apply.<lambda>>, True)
-      4.57±0.1ms      4.02±0.03ms     0.88  rolling.ExpandingMethods.time_expanding('Series', 'float', 'count')
-      5.44±0.3ms      4.74±0.04ms     0.87  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'float', 'min')
-      2.53±0.1ms      2.20±0.06ms     0.87  rolling.ExpandingMethods.time_expanding('Series', 'int', 'sum')
-      2.13±0.3ms      1.85±0.01ms     0.87  rolling.Methods.time_rolling('DataFrame', 10, 'int', 'mean')
-      2.59±0.2ms      2.20±0.02ms     0.85  rolling.Methods.time_rolling('Series', 1000, 'float', 'mean')
-        21.8±2ms       18.3±0.1ms     0.84  rolling.Pairwise.time_pairwise(None, 'corr', True)
-      3.57±0.2ms       2.93±0.1ms     0.82  rolling.Apply.time_rolling('Series', 300, 'float', <function sum>, True)
-      3.38±0.4ms       2.77±0.1ms     0.82  rolling.VariableWindowMethods.time_rolling('Series', '50s', 'float', 'count')
-        4.41±1ms      3.56±0.09ms     0.81  rolling.Quantile.time_quantile('Series', 10, 'float', 1, 'lower')
-      4.20±0.1ms      3.39±0.01ms     0.81  rolling.Quantile.time_quantile('DataFrame', 1000, 'float', 0, 'lower')
-      4.78±0.9ms       3.81±0.2ms     0.80  rolling.Methods.time_rolling('Series', 1000, 'float', 'max')
-      5.22±0.2ms       4.10±0.2ms     0.79  rolling.ExpandingMethods.time_expanding('Series', 'int', 'count')
-     3.71±0.04ms      2.90±0.02ms     0.78  rolling.VariableWindowMethods.time_rolling('Series', '1d', 'float', 'sum')
-      5.54±0.5ms       4.32±0.4ms     0.78  rolling.Quantile.time_quantile('Series', 10, 'float', 0, 'nearest')
-      3.67±0.7ms      2.84±0.07ms     0.77  rolling.VariableWindowMethods.time_rolling('DataFrame', '1d', 'float', 'sum')
-      3.89±0.2ms      2.90±0.05ms     0.75  rolling.ExpandingMethods.time_expanding('Series', 'float', 'std')
-      4.75±0.6ms       3.43±0.2ms     0.72  rolling.Methods.time_rolling('DataFrame', 10, 'int', 'min')

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE DECREASED.
```
@mroeschke of the asv results Will posted, are any of those benchmarks more important than others?  i.e. are the few that are slower deal-breakers?
None that are concerning IMO. And the Numba engine benchmarks improved which I'm happy about :)
LGTM
thanks @WillAyd