<p dir="auto">There seem to be some performance regressions in compile time of <code class="notranslate">NTuple</code> in 1.0.  Note, for example,<br>
1.0:</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="using StaticArrays
julia&gt; @time @SMatrix rand(16,16)
 11.440824 seconds (1.41 M allocations: 85.987 MiB, 0.24% gc time)"><pre class="notranslate"><span class="pl-k">using</span> StaticArrays
julia<span class="pl-k">&gt;</span> <span class="pl-c1">@time</span> <span class="pl-c1">@SMatrix</span> <span class="pl-c1">rand</span>(<span class="pl-c1">16</span>,<span class="pl-c1">16</span>)
 <span class="pl-c1">11.440824</span> seconds (<span class="pl-c1">1.41</span> M allocations<span class="pl-k">:</span> <span class="pl-c1">85.987</span> MiB, <span class="pl-c1">0.24</span><span class="pl-k">%</span> gc time)</pre></div>
<p dir="auto">0.6.4:</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="using StaticArrays
julia&gt; @time @SMatrix rand(16,16);
  1.330479 seconds (356.50 k allocations: 13.710 MiB)"><pre class="notranslate"><span class="pl-k">using</span> StaticArrays
julia<span class="pl-k">&gt;</span> <span class="pl-c1">@time</span> <span class="pl-c1">@SMatrix</span> <span class="pl-c1">rand</span>(<span class="pl-c1">16</span>,<span class="pl-c1">16</span>);
  <span class="pl-c1">1.330479</span> seconds (<span class="pl-c1">356.50</span> k allocations<span class="pl-k">:</span> <span class="pl-c1">13.710</span> MiB)</pre></div>
<p dir="auto">We were speculating that this is due to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="328800340" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/27398" data-hovercard-type="pull_request" data-hovercard-url="/JuliaLang/julia/pull/27398/hovercard" href="https://github.com/JuliaLang/julia/pull/27398">#27398</a>.  While it doesn't seem unreasonable that the compiler really has to think about 256 type long signatures, we believe that the compiler may not know that all the types are guaranteed to be the same since (as far as I know) <code class="notranslate">NTuple</code> is nothing more than an alias.</p>
<p dir="auto">Am I getting the story here correct?  Would it be possible to make the compiler know that <code class="notranslate">NTuple</code> is promised to be homogeneous, but otherwise retain the current behavior?</p>
<p dir="auto">I apologize if this is somehow duplicating or echoing existing issues, I wasn't able to find anything that addressed this directly.</p>
<p dir="auto">(Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ChrisRackauckas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ChrisRackauckas">@ChrisRackauckas</a> for useful discussion on this.)</p>
<p dir="auto">I'd expect to be able to import with a depwarn, but get an error instead:</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="julia&gt; import Base.Test: record
WARNING: Base.Test is deprecated, run `using Test` instead.
  likely near no file:0
ERROR: invalid import path: &quot;Test&quot; does not name a module"><pre class="notranslate">julia<span class="pl-k">&gt;</span> <span class="pl-k">import</span> Base<span class="pl-k">.</span>Test<span class="pl-k">:</span> record
WARNING<span class="pl-k">:</span> Base<span class="pl-k">.</span>Test is deprecated, run <span class="pl-s"><span class="pl-pds">`</span>using Test<span class="pl-pds">`</span></span> instead.
  likely near no file<span class="pl-k">:</span><span class="pl-c1">0</span>
ERROR<span class="pl-k">:</span> invalid <span class="pl-k">import</span> path<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">"</span>Test<span class="pl-pds">"</span></span> does not name a <span class="pl-k">module</span></pre></div>