<p dir="auto">As <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/giordano/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/giordano">@giordano</a> and I are working on microarchitecture-specific tarballs in BinaryBuilder, we are currently importing a modified version of <a href="https://github.com/m-j-w/CpuId.jl"><code class="notranslate">CpuId.jl</code></a>, however if <code class="notranslate">Base</code> is going to be selecting artifacts based on the current CPU type, it makes sense that something with similar capabilities to this <code class="notranslate">CpuId</code> package would become a stdlib at the least, if not a part of <code class="notranslate">Base</code>.</p>
<p dir="auto">We already have some CPUID code in <code class="notranslate">src/processor*.cpp</code>; should we export <code class="notranslate">jl_test_cpu_feature()</code> and simply maintain a Julia mapping of the flags?  The way I see it, we have three options:</p>
<ul dir="auto">
<li>Export the C function, create a simple wrapper stdlib that has various flag definitions and invokes a <code class="notranslate">ccall()</code> to probe CPUID bits.</li>
<li>Leave the C code alone, duplicate the functionality in pure Julia (similar to <a href="https://github.com/m-j-w/CpuId.jl"><code class="notranslate">CpuId.jl</code></a>), but have it shipped by default with Julia.</li>
<li>Force all packages that want to use microarchitecture-specific artifacts to do the artifact selection themselves (this will only work for lazy artifacts; no <code class="notranslate">Pkg.add()</code>-time artifacts allowed)</li>
</ul>
<p dir="auto">I am in favor of 1 or 2, and between the two of them I'm in favor of (2) because it is most maintainable.</p>
<p dir="auto">Julia should have linear/cubic/spline interpolation functions in 1+ dimensions, along the line of Matlab's <a href="http://www.mathworks.com/help/matlab/ref/interp1.html" rel="nofollow">interp1</a> and friends.</p>
<p dir="auto">This is a basic tool for numerical calculations, and shouldn't be too hard to implement.</p>